| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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>org.apache.beam</groupId> |
| <artifactId>beam-sdks-java-io-parent</artifactId> |
| <version>2.3.0</version> |
| <relativePath>../pom.xml</relativePath> |
| </parent> |
| |
| <artifactId>beam-sdks-java-io-jdbc</artifactId> |
| <name>Apache Beam :: SDKs :: Java :: IO :: JDBC</name> |
| <description>IO to read and write on JDBC datasource.</description> |
| |
| <!-- |
| The dataflow-runner and spark-runner profiles support using those runners during an integration test. These are |
| not the long-term way we want to support using runners in ITs (e.g. it is annoying to add to all IO modules.) |
| We cannot create a dependency IO -> Runners since the runners depend on IO (e.g. kafka depends on spark.) |
| --> |
| |
| <profiles> |
| <!-- Include the Apache Spark runner -P spark-runner --> |
| <profile> |
| <id>spark-runner</id> |
| <properties> |
| <netty.version>4.0.43.Final</netty.version> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-runners-spark</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-streaming_2.11</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-core_2.11</artifactId> |
| <scope>runtime</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>jul-to-slf4j</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| </dependencies> |
| </profile> |
| |
| <!-- |
| This profile invokes PerfKitBenchmarker, which does benchmarking of |
| the IO ITs. The arguments passed to it allow it to invoke mvn again |
| with the desired benchmark. |
| |
| To invoke this, run: |
| |
| mvn verify -Dio-it-suite -pl sdks/java/io/jdbc |
| -DpkbLocation="path-to-pkb.py" \ |
| -DintegrationTestPipelineOptions='["-tempRoot=gs://bucket/staging"]' |
| --> |
| <profile> |
| <id>io-it-suite</id> |
| <activation> |
| <property><name>io-it-suite</name></property> |
| </activation> |
| <properties> |
| <!-- This is based on the location of the current pom relative to the root |
| See discussion in BEAM-2460 --> |
| <beamRootProjectDir>${project.parent.parent.parent.parent.basedir}</beamRootProjectDir> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <version>${groovy-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>find-supported-python-for-compile</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <source>${beamRootProjectDir}/sdks/python/findSupportedPython.groovy</source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${maven-exec-plugin.version}</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <executable>${python.interpreter.bin}</executable> |
| <arguments> |
| <argument>${pkbLocation}</argument> |
| <argument>-beam_it_timeout=1800</argument> |
| <argument>-benchmarks=beam_integration_benchmark</argument> |
| <argument>-beam_it_profile=io-it</argument> |
| <argument>-beam_location=${beamRootProjectDir}</argument> |
| <argument>-beam_prebuilt=true</argument> |
| <argument>-beam_sdk=java</argument> |
| <argument>-kubeconfig=${kubeconfig}</argument> |
| <argument>-kubectl=${kubectl}</argument> |
| <!-- runner overrides, controlled via forceDirectRunner --> |
| <argument>${pkbBeamRunnerProfile}</argument> |
| <argument>${pkbBeamRunnerOption}</argument> |
| <!-- specific to this IO --> |
| <argument>-beam_options_config_file=${beamRootProjectDir}/.test-infra/kubernetes/postgres/pkb-config.yml</argument> |
| <argument>-beam_kubernetes_scripts=${beamRootProjectDir}/.test-infra/kubernetes/postgres/postgres.yml</argument> |
| <argument>-beam_it_module=sdks/java/io/jdbc</argument> |
| <argument>-beam_it_class=org.apache.beam.sdk.io.jdbc.JdbcIOIT</argument> |
| <!-- arguments typically defined by user --> |
| <argument>-beam_it_options=${integrationTestPipelineOptions}</argument> |
| </arguments> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire-plugin.version}</version> |
| <configuration> |
| <skipTests>true</skipTests> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- |
| io-it-suite-local overrides part of io-it-suite, allowing users to run tests |
| when they are on a separate network from the kubernetes cluster by |
| creating a LoadBalancer service. |
| --> |
| <profile> |
| <id>io-it-suite-local</id> |
| <activation><property><name>io-it-suite-local</name></property></activation> |
| <properties> |
| <!-- This is based on the location of the current pom relative to the root |
| See discussion in BEAM-2460 --> |
| <beamRootProjectDir>${project.parent.parent.parent.parent.basedir}</beamRootProjectDir> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <version>${groovy-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>find-supported-python-for-compile</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <source>${beamRootProjectDir}/sdks/python/findSupportedPython.groovy</source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${maven-exec-plugin.version}</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <executable>${python.interpreter.bin}</executable> |
| <arguments> |
| <argument>${pkbLocation}</argument> |
| <argument>-beam_it_timeout=1800</argument> |
| <argument>-benchmarks=beam_integration_benchmark</argument> |
| <argument>-beam_it_profile=io-it</argument> |
| <argument>-beam_location=${beamRootProjectDir}</argument> |
| <argument>-beam_prebuilt=true</argument> |
| <argument>-beam_sdk=java</argument> |
| <argument>-kubeconfig=${kubeconfig}</argument> |
| <argument>-kubectl=${kubectl}</argument> |
| <!-- runner overrides, controlled via forceDirectRunner --> |
| <argument>${pkbBeamRunnerProfile}</argument> |
| <argument>${pkbBeamRunnerOption}</argument> |
| <!-- specific to this IO --> |
| <argument>-beam_options_config_file=${beamRootProjectDir}/.test-infra/kubernetes/postgres/pkb-config-local.yml</argument> |
| <argument>-beam_kubernetes_scripts=${beamRootProjectDir}/.test-infra/kubernetes/postgres/postgres.yml,${beamRootProjectDir}/.test-infra/kubernetes/postgres/postgres-service-for-local-dev.yml</argument> |
| <argument>-beam_it_module=sdks/java/io/jdbc</argument> |
| <argument>-beam_it_class=org.apache.beam.sdk.io.jdbc.JdbcIOIT</argument> |
| <!-- arguments typically defined by user --> |
| <argument>-beam_it_options=${integrationTestPipelineOptions}</argument> |
| </arguments> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire-plugin.version}</version> |
| <configuration> |
| <skipTests>true</skipTests> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- Include the Google Cloud Dataflow runner -P dataflow-runner --> |
| <profile> |
| <id>dataflow-runner</id> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-runners-google-cloud-dataflow-java</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| </profiles> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-sdks-java-core</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.google.code.findbugs</groupId> |
| <artifactId>jsr305</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-dbcp2</artifactId> |
| <version>2.1.1</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| </dependency> |
| |
| <!-- compile dependencies --> |
| <dependency> |
| <groupId>com.google.auto.value</groupId> |
| <artifactId>auto-value</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <!-- test dependencies --> |
| <dependency> |
| <groupId>org.apache.derby</groupId> |
| <artifactId>derby</artifactId> |
| <version>10.12.1.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.derby</groupId> |
| <artifactId>derbyclient</artifactId> |
| <version>10.12.1.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.derby</groupId> |
| <artifactId>derbynet</artifactId> |
| <version>10.12.1.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-runners-direct-java</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-all</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-jdk14</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.postgresql</groupId> |
| <artifactId>postgresql</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-sdks-java-core</artifactId> |
| <scope>test</scope> |
| <classifier>tests</classifier> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-sdks-java-io-common</artifactId> |
| <scope>test</scope> |
| <classifier>tests</classifier> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.beam</groupId> |
| <artifactId>beam-sdks-java-io-common</artifactId> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| </project> |