<!--

    Copyright 2017-2022 O2 Czech Republic, a.s.

    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.

-->
<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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>cz.o2.proxima</groupId>
    <artifactId>platform-parent</artifactId>
    <version>0.9.0</version>
  </parent>

  <artifactId>proxima-beam</artifactId>
  <packaging>pom</packaging>

  <name>${project.groupId}:${project.artifactId}</name>

  <description>Proxima platform's Apache Beam module.</description>

  <properties>
    <scala.version>2.12</scala.version>
    <jackson.version>2.12.6</jackson.version>
    <apache.flink.version>1.13.5</apache.flink.version>
  </properties>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>proxima-core</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>proxima-direct-core</artifactId>
        <version>${project.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-sdks-java-core</artifactId>
        <version>${apache.beam.version}</version>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-sdks-java-extensions-euphoria</artifactId>
        <version>${apache.beam.version}</version>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-sdks-java-extensions-join-library</artifactId>
        <version>${apache.beam.version}</version>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-sdks-java-extensions-kryo</artifactId>
        <version>${apache.beam.version}</version>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
        <version>${apache.beam.version}</version>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-runners-direct-java</artifactId>
        <version>${apache.beam.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-runners-flink-1.13</artifactId>
        <version>${apache.beam.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-clients_${scala.version}</artifactId>
        <version>${apache.flink.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-runtime_${scala.version}</artifactId>
        <version>${apache.flink.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-java_${scala.version}</artifactId>
        <version>${apache.flink.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-optimizer_${scala.version}</artifactId>
        <version>${apache.flink.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>${apache.beam.groupId}</groupId>
        <artifactId>beam-runners-spark</artifactId>
        <version>${apache.beam.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-all</artifactId>
        <version>${grpc.version}</version>
        <exclusions>
          <!-- do not use protobuf-lite, use protobuf-java -->
          <exclusion>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-lite</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-paranamer</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-scala_${scala.version}</artifactId>
        <version>${jackson.version}</version>
      </dependency>

    </dependencies>

  </dependencyManagement>

  <modules>
    <module>core</module>
    <module>core-testing</module>
    <module>io-pubsub</module>
    <module>tools</module>
  </modules>

</project>

