<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <artifactId>apache</artifactId>
    <groupId>org.apache</groupId>
    <version>29</version>
    <relativePath>../pom.xml/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.orc</groupId>
  <artifactId>orc-format</artifactId>
  <name>Apache ORC Format</name>
  <version>1.1.0</version>
  <description>ORC is a self-describing type-aware columnar file format designed
        for Hadoop workloads. It is optimized for large streaming reads,
        but with integrated support for finding required rows
        quickly. Storing data in a columnar format lets the reader read,
        decompress, and process only the values that are required for the
        current query.</description>
  <url>https://orc.apache.org</url>
  <inceptionYear>2013</inceptionYear>
  <mailingLists>
    <mailingList>
      <name>ORC User List</name>
      <subscribe>user-subscribe@orc.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@orc.apache.org</unsubscribe>
      <post>user@orc.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/orc-user/</archive>
    </mailingList>
    <mailingList>
      <name>ORC Developer List</name>
      <subscribe>dev-subscribe@orc.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@orc.apache.org</unsubscribe>
      <post>dev@orc.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/orc-dev/</archive>
    </mailingList>
  </mailingLists>
  <build>
    <plugins>
      <plugin>
        <groupId>com.github.os72</groupId>
        <artifactId>protoc-jar-maven-plugin</artifactId>
        <version>3.11.4</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <protocVersion>${protoc.version}</protocVersion>
              <protocArtifact>com.google.protobuf:protoc:${protoc.version}</protocArtifact>
              <addSources>none</addSources>
              <inputDirectories>
                <include>src/main/proto/</include>
              </inputDirectories>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.4.0</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>${maven.version}</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>${java.version}</version>
                </requireJavaVersion>
                <enforceBytecodeVersion>
                  <maxJdkVersion>${java.version}</maxJdkVersion>
                </enforceBytecodeVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.7.0</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <sourceFileExcludes>
            <exclude>**/OrcProto.java</exclude>
          </sourceFileExcludes>
          <destDir>${project.artifactId}</destDir>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${maven-shade-plugin.version}</version>
        <executions>
          <execution>
            <id>shaded-protobuf</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <includes>
                  <include>com.google.protobuf:protobuf-java</include>
                </includes>
              </artifactSet>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>shaded-protobuf</shadedClassifierName>
              <relocations>
                <relocation>
                  <pattern>com.google.protobuf</pattern>
                  <shadedPattern>org.apache.orc.protobuf</shadedPattern>
                </relocation>
              </relocations>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>module-info.class</exclude>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                    <exclude>META-INF/DEPENDENCIES</exclude>
                    <exclude>META-INF/LICENSE</exclude>
                    <exclude>META-INF/NOTICE</exclude>
                    <exclude>google/protobuf/**</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
          <execution>
            <id>nohive</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <includes>
                  <include>com.google.protobuf:protobuf-java</include>
                  <include>org.apache.hive:hive-storage-api</include>
                </includes>
              </artifactSet>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>nohive</shadedClassifierName>
              <relocations>
                <relocation>
                  <pattern>com.google.protobuf</pattern>
                  <shadedPattern>org.apache.orc.protobuf</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hadoop.hive</pattern>
                  <shadedPattern>org.apache.orc.storage</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.hive</pattern>
                  <shadedPattern>org.apache.orc.storage</shadedPattern>
                </relocation>
              </relocations>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>module-info.class</exclude>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                    <exclude>META-INF/DEPENDENCIES</exclude>
                    <exclude>META-INF/LICENSE</exclude>
                    <exclude>META-INF/NOTICE</exclude>
                    <exclude>google/protobuf/**</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.4.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-sources</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.cyclonedx</groupId>
        <artifactId>cyclonedx-maven-plugin</artifactId>
        <version>2.7.6</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>makeBom</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <repositories>
    <repository>
      <releases />
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>gcs-maven-central-mirror</id>
      <name>GCS Maven Central mirror</name>
      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
    </repository>
    <repository>
      <releases />
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Maven Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
    </repository>
  </repositories>
  <properties>
    <maven.compiler.release>17</maven.compiler.release>
    <java.version>17</java.version>
    <maven.version>3.9.6</maven.version>
    <maven-shade-plugin.version>3.5.1</maven-shade-plugin.version>
    <protoc.version>3.17.3</protoc.version>
    <maven-assembly-plugin.version>3.6.0</maven-assembly-plugin.version>
    <maven-dependency-plugin.version>3.6.0</maven-dependency-plugin.version>
    <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
    <test.tmp.dir>${project.build.directory}/testing-tmp</test.tmp.dir>
  </properties>
</project>
