<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>tech.streamfusion</groupId>
    <artifactId>StreamFusion</artifactId>
    <version>0.1.0-rc3</version>
  </parent>
  <artifactId>streamfusion-core</artifactId>
  <version>0.1.0-rc3</version>
  <name>StreamFusion Core</name>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <build>
    <sourceDirectory>${project.basedir}/../src/main/java</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.13.0</version>
        <configuration>
          <excludes>
            <exclude>tech/streamfusion/kafka/**</exclude>
            <exclude>tech/streamfusion/parquet/**</exclude>
            <exclude>tech/streamfusion/orc/**</exclude>
            <exclude>tech/streamfusion/delta/**</exclude>
            <exclude>tech/streamfusion/paimon/**</exclude>
            <exclude>tech/streamfusion/planner/Paimon*.java</exclude>
            <exclude>tech/streamfusion/planner/NativePaimon*.java</exclude>
            <exclude>tech/streamfusion/planner/StreamPhysicalNativePaimon*.java</exclude>
            <exclude>tech/streamfusion/format/avro/**</exclude>
            <exclude>tech/streamfusion/format/avroconfluent/**</exclude>
            <exclude>tech/streamfusion/format/csv/**</exclude>
            <exclude>tech/streamfusion/format/json/**</exclude>
            <exclude>tech/streamfusion/format/protobuf/**</exclude>
            <exclude>tech/streamfusion/format/raw/**</exclude>
            <exclude>tech/streamfusion/planner/KafkaPlannerExtension.java</exclude>
            <exclude>tech/streamfusion/planner/KafkaSinkMatcher.java</exclude>
            <exclude>tech/streamfusion/planner/KafkaSinkTranslator.java</exclude>
            <exclude>tech/streamfusion/planner/KafkaTables.java</exclude>
            <exclude>tech/streamfusion/planner/KeyedDecodeSpec.java</exclude>
            <exclude>tech/streamfusion/planner/NativeKafkaDecodeExecNode.java</exclude>
            <exclude>tech/streamfusion/planner/NativeKafkaSinkExecNode.java</exclude>
            <exclude>tech/streamfusion/planner/DeltaPlannerExtension.java</exclude>
            <exclude>tech/streamfusion/planner/DeltaSinkMatcher.java</exclude>
            <exclude>tech/streamfusion/planner/NativeDeltaSinkExecNode.java</exclude>
            <exclude>tech/streamfusion/planner/ParquetPlannerExtension.java</exclude>
            <exclude>tech/streamfusion/planner/OrcPlannerExtension.java</exclude>
            <exclude>tech/streamfusion/planner/OrcSinkTranslator.java</exclude>
            <exclude>tech/streamfusion/planner/ParquetSinkTranslator.java</exclude>
            <exclude>tech/streamfusion/planner/ProtobufDescriptors.java</exclude>
            <exclude>tech/streamfusion/planner/StreamPhysicalNativeKafkaDecode.java</exclude>
            <exclude>tech/streamfusion/planner/StreamPhysicalNativeKafkaSink.java</exclude>
            <exclude>tech/streamfusion/planner/StreamPhysicalNativeDeltaSink.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.4.1</version>
        <executions>
          <execution>
            <id>default-jar</id>
            <phase>process-classes</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.5.3</version>
        <executions>
          <execution>
            <id>attach-runtime-payload</id>
            <phase>none</phase>
          </execution>
          <execution>
            <id>shade-core-payload</id>
            <phase>process-classes</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>runtime</shadedClassifierName>
              <createDependencyReducedPom>false</createDependencyReducedPom>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
