[ 
https://issues.apache.org/jira/browse/BEAM-3942?focusedWorklogId=91950&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-91950
 ]

ASF GitHub Bot logged work on BEAM-3942:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Apr/18 22:04
            Start Date: 17/Apr/18 22:04
    Worklog Time Spent: 10m 
      Work Description: chamikaramj closed pull request #5003: [BEAM-3942] 
Update performance testing framework to use Gradle
URL: https://github.com/apache/beam/pull/5003
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/build.gradle b/build.gradle
index 1eca8b0ce72..6d32af17922 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,6 +23,10 @@
 
 apply from: project(":").file("build_rules.gradle")
 
+// Add performanceTest task to this build.gradle file
+// so that running Performance tests using PerfKitBenchmarker is possible.
+createPerformanceTestHarness()
+
 // Define the set of repositories and dependencies required to
 // fetch and enable plugins.
 buildscript {
diff --git a/build_rules.gradle b/build_rules.gradle
index 8f54fe0f478..647cded120f 100644
--- a/build_rules.gradle
+++ b/build_rules.gradle
@@ -837,6 +837,180 @@ ext.applyJavaNature = {
   }
 }
 
+// Reads and contains all necessary performance test parameters
+class JavaPerformanceTestConfiguration {
+
+  /* Optional properties (set only if needed in your case): */
+
+  // Path to PerfKitBenchmarker application (pkb.py).
+  // It is only required when running Performance Tests with PerfKitBenchmarker
+  String pkbLocation = System.getProperty('pkbLocation')
+
+  // Data Processing Backend's log level.
+  String logLevel = System.getProperty('logLevel', 'INFO')
+
+  // Path to gradle binary.
+  String gradleBinary = System.getProperty('gradleBinary', './gradlew')
+
+  // If benchmark is official or not.
+  // Official benchmark results are meant to be displayed on PerfKitExplorer 
dashboards.
+  String isOfficial = System.getProperty('official', 'false')
+
+  // Specifies names of benchmarks to be run by PerfKitBenchmarker.
+  String benchmarks = System.getProperty('benchmarks', 
'beam_integration_benchmark')
+
+  // If beam is not "prebuilt" then PerfKitBenchmarker runs the build task 
before running the tests.
+  String beamPrebuilt = System.getProperty('beamPrebuilt', 'true')
+
+  // Beam's sdk to be used by PerfKitBenchmarker.
+  String beamSdk = System.getProperty('beamSdk', 'java')
+
+  // Timeout (in seconds) after which PerfKitBenchmarker will stop executing 
the benchmark (and will fail).
+  String timeout = System.getProperty('itTimeout', '1200')
+
+  // Path to kubernetes configuration file.
+  String kubeconfig = System.getProperty('kubeconfig', 
System.getProperty('user.home') + '/.kube/config')
+
+  // Path to kubernetes executable.
+  String kubectl = System.getProperty('kubectl', 'kubectl')
+
+  // Paths to files with kubernetes infrastructure to setup before the test 
runs.
+  // PerfKitBenchmarker will have trouble reading 'null' path. It expects 
empty string if no scripts are expected.
+  String kubernetesScripts = System.getProperty('kubernetesScripts', '')
+
+  // Path to file with 'dynamic' and 'static' pipeline options.
+  // that will be appended by PerfKitBenchmarker to the test running command.
+  // PerfKitBenchmarker will have trouble reading 'null' path. It expects 
empty string if no config file is expected.
+  String optionsConfigFile = System.getProperty('beamITOptions', '')
+
+  // Any additional properties to be appended to benchmark execution command.
+  String extraProperties = System.getProperty('beamExtraProperties', '')
+
+  // Runner which will be used for running the tests. Possible values: 
dataflow/direct.
+  // PerfKitBenchmarker will have trouble reading 'null' value. It expects 
empty string if no config file is expected.
+  String runner = System.getProperty('integrationTestRunner', '')
+
+  // Filesystem which will be used for running the tests. Possible values: 
hdfs.
+  // if not specified runner's local filesystem will be used.
+  String filesystem = System.getProperty('filesystem')
+
+  /* Always required properties: */
+
+  // Pipeline options to be used by the tested pipeline.
+  String integrationTestPipelineOptions = 
System.getProperty('integrationTestPipelineOptions')
+
+  // Fully qualified name of the test to be run, eg:
+  // 'org.apache.beam.sdks.java.io.jdbc.JdbcIOIT'.
+  String integrationTest = System.getProperty('integrationTest')
+
+  // Relative path to module where the test is, eg. 'sdks/java/io/jdbc.
+  String itModule = System.getProperty('itModule')
+}
+
+// When applied in a module's build.gradle file, this closure provides task 
for running
+// IO integration tests (manually, without PerfKitBenchmarker).
+ext.enableJavaPerformanceTesting = {
+  println "enableJavaPerformanceTesting with ${it ? "$it" : "default 
configuration"} for project ${project.name}"
+
+  // Use the implicit it parameter of the closure to handle zero argument or 
one argument map calls.
+  // See: http://groovy-lang.org/closures.html#implicit-it
+  JavaPerformanceTestConfiguration configuration = it ? it as 
JavaPerformanceTestConfiguration : new JavaPerformanceTestConfiguration()
+
+  // Task for running integration tests
+  task integrationTest(type: Test) {
+    include "**/*IT.class"
+    systemProperties.beamTestPipelineOptions = 
configuration.integrationTestPipelineOptions
+  }
+}
+
+// When applied in a module's build.gradle file, this closure adds task 
providing
+// additional dependencies that might be needed while running integration 
tests.
+ext.provideIntegrationTestingDependencies = {
+  println "provideIntegrationTestingDependencies with ${it ? "$it" : "default 
configuration"} for project ${project.name}"
+
+  // Use the implicit it parameter of the closure to handle zero argument or 
one argument map calls.
+  // See: http://groovy-lang.org/closures.html#implicit-it
+  JavaPerformanceTestConfiguration configuration = it ? it as 
JavaPerformanceTestConfiguration : new JavaPerformanceTestConfiguration()
+
+  // Add runners needed to run integration tests on
+  task packageIntegrationTests(type: Jar) {
+    def runner = configuration.runner
+    def filesystem = configuration.filesystem
+
+    dependencies {
+
+      /* include dependencies required by runners */
+      //if (runner?.contains('dataflow')) {
+      if (runner?.equalsIgnoreCase('dataflow')) {
+        testCompile project(path: ":beam-runners-google-cloud-dataflow-java", 
configuration: 'shadowTest')
+      }
+
+      if (runner?.equalsIgnoreCase('direct')) {
+        testCompile project(path: ":beam-runners-direct-java", configuration: 
'shadowTest')
+      }
+
+      /* include dependencies required by filesystems */
+      if (filesystem?.equalsIgnoreCase('hdfs')) {
+        testCompile project(path: ":beam-sdks-java-io-hadoop-file-system", 
configuration: 'shadowTest')
+        shadowTest library.java.hadoop_client
+      }
+    }
+  }
+}
+
+// When applied in a module's build gradle file, this closure provides a task
+// that will involve PerfKitBenchmarker for running integrationTests.
+ext.createPerformanceTestHarness = {
+  println "createPerformanceTestHarness with ${it ? "$it" : "default 
configuration"} for project ${project.name}"
+
+  // Use the implicit it parameter of the closure to handle zero argument or 
one argument map calls.
+  // See: http://groovy-lang.org/closures.html#implicit-it
+  JavaPerformanceTestConfiguration configuration = it ? it as 
JavaPerformanceTestConfiguration : new JavaPerformanceTestConfiguration()
+
+  // This task runs PerfKitBenchmarker, which does benchmarking of the IO ITs.
+  // The arguments passed to it allows it to invoke gradle again with the 
desired benchmark.
+  //
+  // To invoke this, run:
+  //
+  // ./gradlew performanceTest \
+  //  -DpkbLocation="<path to pkb.py>"
+  //  -DintegrationTestPipelineOptions='["--numberOfRecords=1000", "<more 
options>"]' \
+  //  -DintegrationTest=<io test, eg. org.apache.beam.sdk.io.text.TextIOIT> \
+  //  -DitModule=<directory containing desired test, eg. 
sdks/java/io/file-based-io-tests> \
+  //  -DintegrationTestRunner=<runner to be used for testing, eg. dataflow>
+  //
+  // There are more options with default values that can be tweaked if needed 
(see below).
+  task performanceTest(type: Exec) {
+
+    // PerfKitBenchmarker needs to work in the Beam's root directory,
+    // otherwise it requires absolute paths ./gradlew, kubernetes scripts etc.
+    commandLine "${configuration.pkbLocation}",
+            "--dpb_log_level=${configuration.logLevel}",
+            "--gradle_binary=${configuration.gradleBinary}",
+            "--official=${configuration.isOfficial}",
+            "--benchmarks=${configuration.benchmarks}",
+            "--beam_location=${rootProject.projectDir}",
+
+            "--beam_prebuilt=${configuration.beamPrebuilt}",
+            "--beam_sdk=${configuration.beamSdk}",
+
+            "--beam_it_timeout=${configuration.timeout}",
+
+            "--kubeconfig=${configuration.kubeconfig}",
+            "--kubectl=${configuration.kubectl}",
+            "--beam_kubernetes_scripts=${configuration.kubernetesScripts}",
+
+            
"--beam_it_options=${configuration.integrationTestPipelineOptions}",
+            "--beam_options_config_file=${configuration.optionsConfigFile}",
+
+            "--beam_it_class=${configuration.integrationTest}",
+            "--beam_it_module=${configuration.itModule}",
+
+            "--beam_extra_properties=${configuration.extraProperties}",
+            "--beam_runner=${configuration.runner}"
+  }
+}
+
 
/*************************************************************************************************/
 
 ext.applyGoNature = {
diff --git a/sdks/java/io/cassandra/build.gradle 
b/sdks/java/io/cassandra/build.gradle
index 91abf95326e..43564634eec 100644
--- a/sdks/java/io/cassandra/build.gradle
+++ b/sdks/java/io/cassandra/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Cassandra"
 ext.summary = "IO to read and write with Apache Cassandra database"
diff --git 
a/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
 
b/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
index 7857ae89b53..f323bbcafa4 100644
--- 
a/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
+++ 
b/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
@@ -60,9 +60,11 @@
  * <p>You can run this test directly using Maven with:
  *
  * <pre>{@code
- * mvn -e -Pio-it verify -pl sdks/java/io/cassandra 
-DintegrationTestPipelineOptions='[
+ * ./gradlew integrationTest -p sdks/java/io/cassandra 
-DintegrationTestPipelineOptions='[
  * "--cassandraHost=1.2.3.4",
  * "--cassandraPort=9042"]'
+ * --tests org.apache.beam.sdk.io.cassandra.CassandraIOIT
+ * -DintegrationTestRunner=direct
  * }</pre>
  */
 @RunWith(JUnit4.class)
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
index 1f47bd6ef16..de799869d4d 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 2.x"
 ext.summary = "Tests of ElasticsearchIO on Elasticsearch 2.x"
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
index 4835ddaf43a..bd766c3fc04 100644
--- 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
+++ 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
@@ -45,10 +45,11 @@
  * correct server IP:
  *
  * <pre>
- *  mvn -e -Pio-it verify -pl 
sdks/java/io/elasticsearch-tests/elasticsearch-tests-2 \
- *    -DintegrationTestPipelineOptions='[
- *      "--elasticsearchServer=127.0.0.1",
- *      "--elasticsearchHttpPort=9200"]'
+ *  ./gradlew integrationTest -p sdks/java/io/elasticsearch 
-DintegrationTestPipelineOptions='[
+ *  "--elasticsearchServer=1.2.3.4",
+ *  "--elasticsearchHttpPort=9200"]'
+ *  --tests org.apache.beam.sdk.io.elasticsearch.ElasticsearchIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
  * <p>It is likely that you will need to configure 
<code>thread_pool.bulk.queue_size: 250</code> (or
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
index ad6b1f2017e..db4f2651296 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 5.x"
 ext.summary = "Tests of ElasticsearchIO on Elasticsearch 5.x"
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
index ea9991bc9bc..5c187e3ba37 100644
--- 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
+++ 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOIT.java
@@ -45,10 +45,11 @@
  * correct server IP:
  *
  * <pre>
- *  mvn -e -Pio-it verify -pl 
sdks/java/io/elasticsearch-tests/elasticsearch-tests-5 \
- *    -DintegrationTestPipelineOptions='[
- *      "--elasticsearchServer=127.0.0.1",
- *      "--elasticsearchHttpPort=9200"]'
+ *  ./gradlew integrationTest -p sdks/java/io/elasticsearch 
-DintegrationTestPipelineOptions='[
+ *  "--elasticsearchServer=1.2.3.4",
+ *  "--elasticsearchHttpPort=9200"]'
+ *  --tests org.apache.beam.sdk.io.elasticsearch.ElasticsearchIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
  * <p>It is likely that you will need to configure 
<code>thread_pool.bulk.queue_size: 250</code> (or
diff --git a/sdks/java/io/file-based-io-tests/build.gradle 
b/sdks/java/io/file-based-io-tests/build.gradle
index ed18b8689c2..21a60505b6e 100644
--- a/sdks/java/io/file-based-io-tests/build.gradle
+++ b/sdks/java/io/file-based-io-tests/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: File-based-io-tests"
 ext.summary = "Integration tests for reading/writing using file-based 
sources/sinks."
@@ -33,7 +35,6 @@ evaluationDependsOn(":beam-sdks-java-io-common")
 
 dependencies {
   shadowTest project(":beam-sdks-java-core")
-  shadowTest project(":beam-runners-direct-java").sourceSets.test.output
   shadowTest project(":beam-sdks-java-io-common")
   shadowTest project(":beam-sdks-java-io-common").sourceSets.test.output
   shadowTest project(":beam-sdks-java-io-xml")
diff --git 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/avro/AvroIOIT.java
 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/avro/AvroIOIT.java
index 19f4a68b5ff..9686e75130e 100644
--- 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/avro/AvroIOIT.java
+++ 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/avro/AvroIOIT.java
@@ -51,15 +51,17 @@
  *
  * <p>Run this test using the command below. Pass in connection information 
via PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/file-based-io-tests
- *  -Dit.test=org.apache.beam.sdk.io.avro.AvroIOIT
+ *  ./gradlew integrationTest -p sdks/java/io/file-based-io-tests
  *  -DintegrationTestPipelineOptions='[
  *  "--numberOfRecords=100000",
  *  "--filenamePrefix=output_file_path"
  *  ]'
+ *  --tests org.apache.beam.sdk.io.avro.AvroIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  * </p>
- * <p>Please see 'sdks/java/io/file-based-io-tests/pom.xml' for instructions 
regarding
+ *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
  * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
diff --git 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/text/TextIOIT.java
 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/text/TextIOIT.java
index f6e27cdb356..c7808bc0c39 100644
--- 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/text/TextIOIT.java
+++ 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/text/TextIOIT.java
@@ -49,16 +49,18 @@
  *
  * <p>Run this test using the command below. Pass in connection information 
via PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/file-based-io-tests
- *  -Dit.test=org.apache.beam.sdk.io.text.TextIOIT
+ *  ./gradlew integrationTest -p sdks/java/io/file-based-io-tests
  *  -DintegrationTestPipelineOptions='[
  *  "--numberOfRecords=100000",
  *  "--filenamePrefix=output_file_path",
  *  "--compressionType=GZIP"
  *  ]'
+ *  --tests org.apache.beam.sdk.io.text.TextIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  * </p>
- * <p>Please see 'sdks/java/io/file-based-io-tests/pom.xml' for instructions 
regarding
+ *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
  * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
diff --git 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/tfrecord/TFRecordIOIT.java
 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/tfrecord/TFRecordIOIT.java
index 1ce155912ca..b9d8be90a20 100644
--- 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/tfrecord/TFRecordIOIT.java
+++ 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/tfrecord/TFRecordIOIT.java
@@ -51,16 +51,18 @@
  *
  * <p>Run this test using the command below. Pass in connection information 
via PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/file-based-io-tests
- *  -Dit.test=org.apache.beam.sdk.io.tfrecord.TFRecordIOIT
+ *  ./gradlew integrationTest -p sdks/java/io/file-based-io-tests
  *  -DintegrationTestPipelineOptions='[
  *  "--numberOfRecords=100000",
  *  "--filenamePrefix=output_file_path",
  *  "--compressionType=GZIP"
  *  ]'
+ *  --tests org.apache.beam.sdk.io.tfrecord.TFRecordIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  * </p>
- * <p>Please {@see 'sdks/java/io/file-based-io-tests/pom.xml'} for 
instructions regarding
+ *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
  * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
diff --git 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/xml/XmlIOIT.java
 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/xml/XmlIOIT.java
index 3ea27aa88c9..73d028fd4fd 100644
--- 
a/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/xml/XmlIOIT.java
+++ 
b/sdks/java/io/file-based-io-tests/src/test/java/org/apache/beam/sdk/io/xml/XmlIOIT.java
@@ -54,15 +54,19 @@
  *
  * <p>Run those tests using the command below. Pass in connection information 
via PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/file-based-io-tests
- *  -Dit.test=org.apache.beam.sdk.io.xml.XmlIOIT
+ *  ./gradlew integrationTest -p sdks/java/io/file-based-io-tests
  *  -DintegrationTestPipelineOptions='[
  *  "--numberOfRecords=100000",
  *  "--filenamePrefix=output_file_path",
  *  "--charset=UTF-8",
  *  ]'
+ *  --tests org.apache.beam.sdk.io.xml.XmlIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  * </p>
+ *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
+ * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
 public class XmlIOIT {
diff --git a/sdks/java/io/hadoop-input-format/build.gradle 
b/sdks/java/io/hadoop-input-format/build.gradle
index 8597a280428..68f689404a1 100644
--- a/sdks/java/io/hadoop-input-format/build.gradle
+++ b/sdks/java/io/hadoop-input-format/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop Input Format"
 ext.summary = "IO to read data from sources that implement Hadoop Input 
Format."
diff --git 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOCassandraIT.java
 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOCassandraIT.java
index db4b5cb24c6..76537cfa8bd 100644
--- 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOCassandraIT.java
+++ 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOCassandraIT.java
@@ -46,13 +46,15 @@
  *
  * <p>You can run this test by doing the following:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/hadoop-input-format
+ *  ./gradlew integrationTest -p sdks/java/io/hadoop-input-format
  *  -Dit.test=org.apache.beam.sdk.io.hadoop.inputformat.HIFIOCassandraIT
  *  -DintegrationTestPipelineOptions='[
  *  "--cassandraServerIp=1.2.3.4",
  *  "--cassandraServerPort=port",
  *  "--cassandraUserName=user",
  *  "--cassandraPassword=mypass" ]'
+ *  --tests org.apache.beam.sdk.io.hadoop.inputformat.HIFIOCassandraIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
  * <p>If you want to run this with a runner besides directrunner, there are 
profiles for dataflow
diff --git 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOElasticIT.java
 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOElasticIT.java
index 50d6d2a9e3a..59595513db7 100644
--- 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOElasticIT.java
+++ 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HIFIOElasticIT.java
@@ -48,13 +48,15 @@
  *
  * <p>You can run this test by doing the following:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/hadoop-input-format
+ *  ./gradlew integrationTest -p sdks/java/io/hadoop-input-format
  *  -Dit.test=org.apache.beam.sdk.io.hadoop.inputformat.HIFIOElasticIT
  *  -DintegrationTestPipelineOptions='[
  *  "--elasticServerIp=1.2.3.4",
  *  "--elasticServerPort=port",
  *  "--elasticUserName=user",
  *  "--elasticPassword=mypass" ]'
+ *  --tests org.apache.beam.sdk.io.hadoop.inputformat.HIFIOElasticIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
  * <p>If you want to run this with a runner besides directrunner, there are 
profiles for dataflow
diff --git 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HadoopInputFormatIOIT.java
 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HadoopInputFormatIOIT.java
index 3b60f08e7aa..58f3b0dafa0 100644
--- 
a/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HadoopInputFormatIOIT.java
+++ 
b/sdks/java/io/hadoop-input-format/src/test/java/org/apache/beam/sdk/io/hadoop/inputformat/HadoopInputFormatIOIT.java
@@ -57,14 +57,20 @@
  * <p>This test requires a running instance of Postgres. Pass in connection 
information using
  * PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/hadoop/input-format/ 
-DintegrationTestPipelineOptions='[
- *  "--postgresServerName=1.2.3.4",
- *  "--postgresUsername=postgres",
- *  "--postgresDatabaseName=myfancydb",
- *  "--postgresPassword=mypass",
- *  "--postgresSsl=false",
- *  "--numberOfRecords=1000" ]'
+ *  ./gradlew integrationTest -p sdks/java/io/hadoop/input-format/
+ *   -DintegrationTestPipelineOptions='[
+ *     "--postgresServerName=1.2.3.4",
+ *     "--postgresUsername=postgres",
+ *     "--postgresDatabaseName=myfancydb",
+ *     "--postgresPassword=mypass",
+ *     "--postgresSsl=false",
+ *     "--numberOfRecords=1000" ]'
+ *  --tests org.apache.beam.sdk.io.hadoop.inputformat.HadoopInputFormatIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
+ *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
+ * running this test using Beam performance testing framework.</p>
  */
 public class HadoopInputFormatIOIT {
 
diff --git a/sdks/java/io/jdbc/build.gradle b/sdks/java/io/jdbc/build.gradle
index 04180d7f828..a21405a839e 100644
--- a/sdks/java/io/jdbc/build.gradle
+++ b/sdks/java/io/jdbc/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: JDBC"
 ext.summary = "IO to read and write on JDBC datasource."
diff --git 
a/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOIT.java 
b/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOIT.java
index 8e80ddd6aad..7c4ef4012d8 100644
--- a/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOIT.java
+++ b/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOIT.java
@@ -47,18 +47,19 @@
  * <p>This test requires a running instance of Postgres. Pass in connection 
information using
  * PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/jdbc 
-DintegrationTestPipelineOptions='[
+ *  ./gradlew integrationTest -p sdks/java/io/jdbc 
-DintegrationTestPipelineOptions='[
  *  "--postgresServerName=1.2.3.4",
  *  "--postgresUsername=postgres",
  *  "--postgresDatabaseName=myfancydb",
  *  "--postgresPassword=mypass",
  *  "--postgresSsl=false",
  *  "--numberOfRecords=1000" ]'
+ *  --tests org.apache.beam.sdk.io.jdbc.JdbcIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
- * <p>If you want to run this with a runner besides directrunner, there are 
profiles for dataflow
- * and spark in the jdbc pom. You'll want to activate those in addition to the 
normal test runner
- * invocation pipeline options.
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
+ * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
 public class JdbcIOIT {
diff --git a/sdks/java/io/kinesis/build.gradle 
b/sdks/java/io/kinesis/build.gradle
index 074de9bfbcb..05e49569185 100644
--- a/sdks/java/io/kinesis/build.gradle
+++ b/sdks/java/io/kinesis/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Kinesis"
 ext.summary = "Library to read Kinesis streams."
diff --git a/sdks/java/io/mongodb/build.gradle 
b/sdks/java/io/mongodb/build.gradle
index a2ece375229..8a552215fbe 100644
--- a/sdks/java/io/mongodb/build.gradle
+++ b/sdks/java/io/mongodb/build.gradle
@@ -18,6 +18,8 @@
 
 apply from: project(":").file("build_rules.gradle")
 applyJavaNature()
+provideIntegrationTestingDependencies()
+enableJavaPerformanceTesting()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: MongoDB"
 ext.summary = "IO to read and write on MongoDB."
diff --git 
a/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBIOIT.java
 
b/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBIOIT.java
index 4f425a38a4d..23f5fe40fed 100644
--- 
a/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBIOIT.java
+++ 
b/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBIOIT.java
@@ -48,13 +48,17 @@
  * <p>This test requires a running instance of MongoDB. Pass in connection 
information using
  * PipelineOptions:
  * <pre>
- *  mvn -e -Pio-it verify -pl sdks/java/io/mongodb 
-DintegrationTestPipelineOptions='[
+ *  ./gradlew integrationTest -p sdks/java/io/mongodb 
-DintegrationTestPipelineOptions='[
  *  "--mongoDBHostName=1.2.3.4",
  *  "--mongoDBPort=27017",
  *  "--mongoDBDatabaseName=mypass",
  *  "--numberOfRecords=1000" ]'
+ *  --tests org.apache.beam.sdk.io.mongodb.MongoDbIOIT
+ *  -DintegrationTestRunner=direct
  * </pre>
  *
+ * <p>Please see 'build_rules.gradle' file for instructions regarding
+ * running this test using Beam performance testing framework.</p>
  */
 @RunWith(JUnit4.class)
 public class MongoDBIOIT {


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 91950)
    Time Spent: 12h 20m  (was: 12h 10m)

> Update performance testing framework to use Gradle.
> ---------------------------------------------------
>
>                 Key: BEAM-3942
>                 URL: https://issues.apache.org/jira/browse/BEAM-3942
>             Project: Beam
>          Issue Type: Sub-task
>          Components: testing
>            Reporter: Chamikara Jayalath
>            Assignee: Ɓukasz Gajowy
>            Priority: Major
>          Time Spent: 12h 20m
>  Remaining Estimate: 0h
>
> This requires performing updates to PerfKitBenchmarker and Beam so that we 
> can execute performance tests using Gradle.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to