<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.ozone</groupId>
    <artifactId>ozone</artifactId>
    <version>1.4.0</version>
  </parent>
  <artifactId>ozone-interface-client</artifactId>
  <version>1.4.0</version>
  <description>Apache Ozone Client interface</description>
  <name>Apache Ozone Client Interface</name>
  <packaging>jar</packaging>

  <properties>
    <maven.test.skip>true</maven.test.skip> <!-- no tests in this module so far -->
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.ozone</groupId>
      <artifactId>hdds-interface-client</artifactId>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-protobuf</artifactId>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-stub</artifactId>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-codec-http2</artifactId>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-handler-proxy</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>com.salesforce.servicelibs</groupId>
        <artifactId>proto-backwards-compatibility</artifactId>
      </plugin>
      <plugin>
        <groupId>org.xolstice.maven.plugins</groupId>
        <artifactId>protobuf-maven-plugin</artifactId>
        <version>${protobuf-maven-plugin.version}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>compile-protoc-OmGrpc</id>
            <goals>
              <goal>compile</goal>
              <goal>test-compile</goal>
              <goal>compile-custom</goal>
              <goal>test-compile-custom</goal>
            </goals>
            <configuration>
              <protocArtifact>
                com.google.protobuf:protoc:${proto2.hadooprpc.protobuf.version}:exe:${os.detected.classifier}
              </protocArtifact>
              <protoSourceRoot>${basedir}/src/main/proto/</protoSourceRoot>
              <outputDirectory>target/generated-sources/protobuf/java</outputDirectory>
              <clearOutputDirectory>false</clearOutputDirectory>
              <pluginId>grpc-java</pluginId>
              <pluginArtifact>
                io.grpc:protoc-gen-grpc-java:${io.grpc.version}:exe:${os.detected.classifier}
              </pluginArtifact>
            </configuration>
          </execution>
          <execution>
            <id>compile-protoc3</id>
            <goals>
              <goal>compile</goal>
              <goal>test-compile</goal>
            </goals>
            <configuration>
              <protoSourceRoot>${basedir}/src/main/proto/</protoSourceRoot>
              <protocArtifact>
                com.google.protobuf:protoc:${proto3.hadooprpc.protobuf.version}:exe:${os.detected.classifier}
              </protocArtifact>
              <outputDirectory>target/generated-sources/protobuf/java/proto3</outputDirectory>
              <clearOutputDirectory>false</clearOutputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>${maven-antrun-plugin.version}</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <configuration>
              <target>
                <replace token="com.google.protobuf"
                         value="org.apache.hadoop.thirdparty.protobuf"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto">
                </replace>
                <replace token="com.google.protobuf"
                         value="org.apache.hadoop.thirdparty.protobuf"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/security/proto">
                </replace>
                <replace token="org.apache.hadoop.ozone.protocol.proto"
                         value="org.apache.hadoop.ozone.protocol.proto3"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto">
                </replace>
                <replace token="org.apache.hadoop.ozone.security.proto"
                         value="org.apache.hadoop.ozone.security.proto3"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/security/proto">
                </replace>
                <replace token="org.apache.hadoop.hdds.protocol.proto"
                         value="org.apache.hadoop.hdds.protocol.proto3"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto">
                </replace>
                <replace token="org.apache.hadoop.ozone.security.proto"
                         value="org.apache.hadoop.ozone.security.proto3"
                         dir="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto">
                </replace>
                <move file="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto"
                      tofile="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/protocol/proto3"/>
                <move file="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/security/proto"
                      tofile="target/generated-sources/protobuf/java/proto3/org/apache/hadoop/ozone/security/proto3"/>
                <move file="target/generated-sources/protobuf/java/proto3"
                      tofile="target/generated-sources/protobuf/java/"/>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <configuration>
          <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
