This is an automated email from the ASF dual-hosted git repository.

kenn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 531cdf5  [BEAM-4102] use plugins DSL instead of manual classpath
     new 7940259  Merge pull request #7781: [BEAM-4102] use plugins DSL instead 
of manual classpath
531cdf5 is described below

commit 531cdf57c4f308482b2137f35ca8c77c96c64ffe
Author: Michael Luckey <25622840+adude3...@users.noreply.github.com>
AuthorDate: Fri Feb 8 00:39:44 2019 +0100

    [BEAM-4102] use plugins DSL instead of manual classpath
---
 .test-infra/metrics/build.gradle                   |  9 +--
 build.gradle                                       | 81 ++++------------------
 buildSrc/build.gradle                              | 55 ++++++++++++---
 .../org/apache/beam/gradle/BeamModulePlugin.groovy |  2 +-
 examples/java/build.gradle                         |  2 +-
 model/fn-execution/build.gradle                    |  2 +-
 model/job-management/build.gradle                  |  2 +-
 model/pipeline/build.gradle                        |  2 +-
 release/build.gradle                               |  2 +-
 runners/apex/build.gradle                          |  2 +-
 runners/core-construction-java/build.gradle        |  2 +-
 runners/core-java/build.gradle                     |  2 +-
 runners/direct-java/build.gradle                   |  2 +-
 runners/extensions-java/metrics/build.gradle       |  2 +-
 runners/flink/flink_runner.gradle                  |  2 +-
 .../flink_job_server_container.gradle              |  2 +-
 runners/flink/job-server/flink_job_server.gradle   |  4 +-
 runners/gearpump/build.gradle                      |  2 +-
 runners/google-cloud-dataflow-java/build.gradle    |  2 +-
 .../examples-streaming/build.gradle                |  2 +-
 .../examples/build.gradle                          |  2 +-
 .../google-cloud-dataflow-java/worker/build.gradle |  2 +-
 .../worker/legacy-worker/build.gradle              |  2 +-
 .../worker/windmill/build.gradle                   |  2 +-
 runners/java-fn-execution/build.gradle             |  2 +-
 runners/local-java/build.gradle                    |  2 +-
 runners/reference/java/build.gradle                |  2 +-
 runners/reference/job-server/build.gradle          |  6 +-
 runners/samza/build.gradle                         |  2 +-
 runners/spark/build.gradle                         |  2 +-
 sdks/go/build.gradle                               |  2 +-
 sdks/go/container/build.gradle                     |  2 +-
 sdks/go/examples/build.gradle                      |  2 +-
 sdks/go/test/build.gradle                          |  2 +-
 sdks/java/bom/build.gradle                         |  9 +--
 sdks/java/build-tools/build.gradle                 |  2 +-
 sdks/java/container/build.gradle                   |  2 +-
 sdks/java/core/build.gradle                        |  2 +-
 sdks/java/extensions/euphoria/build.gradle         |  2 +-
 .../google-cloud-platform-core/build.gradle        |  2 +-
 sdks/java/extensions/jackson/build.gradle          |  2 +-
 sdks/java/extensions/join-library/build.gradle     |  2 +-
 sdks/java/extensions/kryo/build.gradle             |  2 +-
 sdks/java/extensions/protobuf/build.gradle         |  2 +-
 sdks/java/extensions/sketching/build.gradle        |  2 +-
 sdks/java/extensions/sorter/build.gradle           |  2 +-
 sdks/java/extensions/sql/build.gradle              |  6 +-
 sdks/java/extensions/sql/jdbc/build.gradle         |  2 +-
 sdks/java/extensions/sql/shell/build.gradle        |  7 +-
 sdks/java/fn-execution/build.gradle                |  2 +-
 sdks/java/harness/build.gradle                     |  2 +-
 sdks/java/io/amazon-web-services/build.gradle      |  2 +-
 sdks/java/io/amqp/build.gradle                     |  2 +-
 sdks/java/io/cassandra/build.gradle                |  2 +-
 sdks/java/io/clickhouse/build.gradle               |  7 +-
 sdks/java/io/common/build.gradle                   |  2 +-
 .../elasticsearch-tests-2/build.gradle             |  2 +-
 .../elasticsearch-tests-5/build.gradle             |  2 +-
 .../elasticsearch-tests-6/build.gradle             |  2 +-
 .../elasticsearch-tests-common/build.gradle        |  2 +-
 sdks/java/io/elasticsearch/build.gradle            |  2 +-
 sdks/java/io/file-based-io-tests/build.gradle      |  2 +-
 sdks/java/io/google-cloud-platform/build.gradle    |  2 +-
 sdks/java/io/hadoop-common/build.gradle            |  2 +-
 sdks/java/io/hadoop-file-system/build.gradle       |  2 +-
 sdks/java/io/hadoop-format/build.gradle            |  2 +-
 sdks/java/io/hadoop-input-format/build.gradle      |  2 +-
 sdks/java/io/hbase/build.gradle                    |  2 +-
 sdks/java/io/hcatalog/build.gradle                 |  2 +-
 sdks/java/io/jdbc/build.gradle                     |  2 +-
 sdks/java/io/jms/build.gradle                      |  2 +-
 sdks/java/io/kafka/build.gradle                    |  2 +-
 sdks/java/io/kinesis/build.gradle                  |  2 +-
 sdks/java/io/kudu/build.gradle                     |  2 +-
 sdks/java/io/mongodb/build.gradle                  |  2 +-
 sdks/java/io/mqtt/build.gradle                     |  2 +-
 sdks/java/io/parquet/build.gradle                  |  2 +-
 sdks/java/io/rabbitmq/build.gradle                 |  2 +-
 sdks/java/io/redis/build.gradle                    |  2 +-
 sdks/java/io/solr/build.gradle                     |  2 +-
 sdks/java/io/synthetic/build.gradle                |  2 +-
 sdks/java/io/tika/build.gradle                     |  2 +-
 sdks/java/io/xml/build.gradle                      |  2 +-
 sdks/java/javadoc/build.gradle                     |  2 +-
 sdks/java/maven-archetypes/examples/build.gradle   |  2 +-
 sdks/java/maven-archetypes/starter/build.gradle    |  2 +-
 sdks/java/testing/load-tests/build.gradle          |  2 +-
 sdks/java/testing/nexmark/build.gradle             |  2 +-
 sdks/java/testing/test-utils/build.gradle          |  2 +-
 sdks/python/build.gradle                           |  2 +-
 sdks/python/container/build.gradle                 |  2 +-
 sdks/python/container/py3/build.gradle             |  6 +-
 sdks/python/precommit/dataflow/build.gradle        |  2 +-
 sdks/python/precommit/direct/py3/build.gradle      |  2 +-
 vendor/grpc-1_13_1/build.gradle                    |  2 +-
 vendor/guava-20_0/build.gradle                     |  2 +-
 vendor/sdks-java-extensions-protobuf/build.gradle  |  2 +-
 website/build.gradle                               |  9 ++-
 98 files changed, 183 insertions(+), 190 deletions(-)

diff --git a/.test-infra/metrics/build.gradle b/.test-infra/metrics/build.gradle
index 4ae1a9e..64fff94 100644
--- a/.test-infra/metrics/build.gradle
+++ b/.test-infra/metrics/build.gradle
@@ -16,14 +16,15 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins {
+  id 'org.apache.beam.module'
+  // https://github.com/avast/gradle-docker-compose-plugin
+  id 'com.avast.gradle.docker-compose'
+}
 applyGroovyNature()
 
 repositories { mavenCentral() }
 
-// https://github.com/avast/gradle-docker-compose-plugin
-apply plugin: "com.avast.gradle.docker-compose"
-
 dependencies {
   testCompile library.groovy.groovy_all
   testCompile library.java.junit
diff --git a/build.gradle b/build.gradle
index 91fc174..23373a5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,81 +15,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-// See build_rules.gradle for documentation on default build tasks
-// and properties that are enabled in addition to natures
-// that can be applied to configure a project for certain common
-// tasks.
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins {
+  id 'base'
+  // Enable publishing build scans
+  id 'com.gradle.build-scan' version '1.13.1' apply false
+  // This plugin provides a task to determine which dependencies have updates.
+  // Additionally, the plugin checks for updates to Gradle itself.
+  //
+  // See https://github.com/ben-manes/gradle-versions-plugin for further 
details.
+  id 'com.github.ben-manes.versions' version '0.17.0'
+  // Apply one top level rat plugin to perform any required license 
enforcement analysis
+  id 'org.nosphere.apache.rat' version '0.3.1'
+  // Enable gradle-based release management
+  id 'net.researchgate.release' version '2.6.0'
+  id 'org.apache.beam.module'
+}
 
 // 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 {
-  repositories {
-    maven { url offlineRepositoryRoot }
-
-    // To run gradle in offline mode, one must first invoke
-    // 'updateOfflineRepository' to create an offline repo
-    // inside the root project directory. See the application
-    // of the offline repo plugin within build_rules.gradle
-    // for further details.
-    if (gradle.startParameter.isOffline()) {
-      return
-    }
-
-    mavenLocal()
-    mavenCentral()
-    jcenter()
-    maven { url "https://plugins.gradle.org/m2/"; }
-    maven { url "http://repo.spring.io/plugins-release"; }
-  }
-  dependencies {
-    classpath 'net.researchgate:gradle-release:2.6.0'                          
                         // Enable gradle-based release management
-    classpath "net.ltgt.gradle:gradle-apt-plugin:0.20"                         
                         // Enable a Java annotation processor
-    classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.5"               
                         // Enable proto code generation
-    classpath "io.spring.gradle:propdeps-plugin:0.0.9.RELEASE"                 
                         // Enable provided and optional configurations
-    classpath "gradle.plugin.org.nosphere.apache:creadur-rat-gradle:0.3.1"     
                         // Enable Apache license enforcement
-    classpath "com.commercehub.gradle.plugin:gradle-avro-plugin:0.11.0"        
                         // Enable Avro code generation
-    classpath "com.diffplug.spotless:spotless-plugin-gradle:3.17.0"            
                         // Enable a code formatting plugin
-    classpath "gradle.plugin.com.github.blindpirate:gogradle:0.11.2"           
                         // Enable Go code compilation
-    classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.20.1"  
                         // Enable building Docker containers
-    classpath "gradle.plugin.com.dorongold.plugins:task-tree:1.3.1"            
                         // Adds a 'taskTree' task to print task dependency tree
-    classpath "com.github.jengelman.gradle.plugins:shadow:4.0.3"               
                         // Enable shading Java dependencies
-    classpath "ca.coglinc:javacc-gradle-plugin:2.4.0"                          
                         // Enable the JavaCC parser generator
-    classpath 
"gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.3"
 // Enable creating an offline repository
-    classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"                
                         // Enable errorprone Java static analysis
-    classpath "com.github.ben-manes:gradle-versions-plugin:0.17.0"             
                         // Enable dependency checks
-    classpath "org.ajoberstar.grgit:grgit-gradle:3.0.0"                        
                         // Enable website git publish to asf-site branch
-    classpath "com.avast.gradle:gradle-docker-compose-plugin:0.8.8"            
                         // Enable docker compose tasks
-    classpath "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"          
                         // Enable dep analysis
-
-    // Plugins which require online access should not be enabled when running 
in offline mode.
-    if (!gradle.startParameter.isOffline()) {
-      classpath "com.gradle:build-scan-plugin:1.13.1"                          
                         // Enable publishing build scans
-    }
-  }
-}
-
 
/*************************************************************************************************/
 // Configure the root project
 
-apply plugin: "base"
-
 // Plugins which require online access should not be enabled when running in 
offline mode.
 if (!gradle.startParameter.isOffline()) {
   apply plugin: "com.gradle.build-scan"
 }
 
-// This plugin provides a task to determine which dependencies have updates.
-// Additionally, the plugin checks for updates to Gradle itself.
-//
-// See https://github.com/ben-manes/gradle-versions-plugin for further details.
-apply plugin: 'com.github.ben-manes.versions'
-
 // JENKINS_HOME and BUILD_ID set automatically during Jenkins execution
 def isCIBuild = ['JENKINS_HOME', 'BUILD_ID'].every System.&getenv
 if (isCIBuild) {
@@ -102,9 +56,6 @@ if (isCIBuild) {
   }
 }
 
-// Apply one top level rat plugin to perform any required license enforcement 
analysis
-apply plugin: "org.nosphere.apache.rat"
-
 rat {
   // Set input directory to that of the root project instead of the CWD. This
   // makes .gitignore rules (added below) work properly.
@@ -272,8 +223,6 @@ task runBeamDependencyCheck() {
   dependsOn ":beam-sdks-python:dependencyUpdates"
 }
 
-apply plugin: 'net.researchgate.release'
-
 // Configure the release plugin to do only local work; the release manager 
determines what, if
 // anything, to push. On failure, the release manager can reset the branch 
without pushing.
 release {
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 90731b8..ec38e9d 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -16,23 +16,41 @@
  * limitations under the License.
  */
 
-// Define the set of repositories and dependencies required to
-// fetch and enable plugins.
-buildscript { dependencies { classpath 
"com.diffplug.spotless:spotless-plugin-gradle:3.17.0" } }
-
 // Plugins for configuring _this build_ of the module
-plugins { id 'groovy' }
-
-apply plugin: "com.diffplug.gradle.spotless"
+plugins {
+  id 'java-gradle-plugin'
+  id 'groovy'
+  id "com.diffplug.gradle.spotless" version "3.17.0"
+}
 
-// Dependencies on other plugins used when this plugin
-// is invoked
-repositories { jcenter() }
+// Define the set of repositories required to fetch and enable plugins.
+repositories {
+  jcenter()
+  maven { url "https://plugins.gradle.org/m2/"; }
+  maven { url "http://repo.spring.io/plugins-release"; }
+}
 
+// Dependencies on other plugins used when this plugin is invoked
 dependencies {
   compile gradleApi()
   compile localGroovy()
   compile 'com.github.jengelman.gradle.plugins:shadow:4.0.3'
+
+  runtime "net.ltgt.gradle:gradle-apt-plugin:0.20"                             
                     // Enable a Java annotation processor
+  runtime "com.google.protobuf:protobuf-gradle-plugin:0.8.5"                   
                     // Enable proto code generation
+  runtime "io.spring.gradle:propdeps-plugin:0.0.9.RELEASE"                     
                     // Enable provided and optional configurations
+  runtime "com.commercehub.gradle.plugin:gradle-avro-plugin:0.11.0"            
                     // Enable Avro code generation
+  runtime "com.diffplug.spotless:spotless-plugin-gradle:3.17.0"                
                     // Enable a code formatting plugin
+  runtime "gradle.plugin.com.github.blindpirate:gogradle:0.11.2"               
                     // Enable Go code compilation
+  runtime "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.20.1"      
                     // Enable building Docker containers
+  runtime "gradle.plugin.com.dorongold.plugins:task-tree:1.3.1"                
                     // Adds a 'taskTree' task to print task dependency tree
+  runtime "com.github.jengelman.gradle.plugins:shadow:4.0.3"                   
                     // Enable shading Java dependencies
+  runtime "ca.coglinc:javacc-gradle-plugin:2.4.0"                              
                     // Enable the JavaCC parser generator
+  runtime 
"gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.3"
 // Enable creating an offline repository
+  runtime "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"                    
                     // Enable errorprone Java static analysis
+  runtime "org.ajoberstar.grgit:grgit-gradle:3.0.0"                            
                     // Enable website git publish to asf-site branch
+  runtime "com.avast.gradle:gradle-docker-compose-plugin:0.8.8"                
                     // Enable docker compose tasks
+  runtime "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"              
                     // Enable dep analysis
 }
 
 // Because buildSrc is built and tested automatically _before_ gradle
@@ -54,3 +72,20 @@ spotless {
     greclipse().configFile('greclipse.properties')
   }
 }
+
+gradlePlugin {
+  plugins {
+    beamModule {
+      id = 'org.apache.beam.module'
+      implementationClass = 'org.apache.beam.gradle.BeamModulePlugin'
+    }
+    vendorJava {
+      id = 'org.apache.beam.vendor-java'
+      implementationClass = 'org.apache.beam.gradle.VendorJavaPlugin'
+    }
+    beamJenkins {
+      id = 'org.apache.beam.jenkins'
+      implementationClass = 'org.apache.beam.gradle.BeamJenkinsPlugin'
+    }
+  }
+}
diff --git 
a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy 
b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index 43c504a..fca26fd 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -291,7 +291,7 @@ class BeamModulePlugin implements Plugin<Project> {
       project.version += '-SNAPSHOT'
     }
 
-    project.apply plugin: BeamJenkinsPlugin
+    project.apply plugin: 'org.apache.beam.jenkins'
 
     // Register all Beam repositories and configuration tweaks
     Repositories.register(project)
diff --git a/examples/java/build.gradle b/examples/java/build.gradle
index 6dba5f3..fc46a2d 100644
--- a/examples/java/build.gradle
+++ b/examples/java/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/model/fn-execution/build.gradle b/model/fn-execution/build.gradle
index faf674c..1d94537 100644
--- a/model/fn-execution/build.gradle
+++ b/model/fn-execution/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPortabilityNature(shadowJarValidationExcludes: 
["org/apache/beam/model/fnexecution/v1/**"])
 
 description = "Apache Beam :: Model :: Fn Execution"
diff --git a/model/job-management/build.gradle 
b/model/job-management/build.gradle
index 4f81152..07e9c2a 100644
--- a/model/job-management/build.gradle
+++ b/model/job-management/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPortabilityNature(shadowJarValidationExcludes:[
     "org/apache/beam/model/expansion/v1/**",
     "org/apache/beam/model/jobmanagement/v1/**",
diff --git a/model/pipeline/build.gradle b/model/pipeline/build.gradle
index 2a72cd6..a305985 100644
--- a/model/pipeline/build.gradle
+++ b/model/pipeline/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPortabilityNature(shadowJarValidationExcludes: 
["org/apache/beam/model/pipeline/v1/**"])
 
 description = "Apache Beam :: Model :: Pipeline"
diff --git a/release/build.gradle b/release/build.gradle
index f658d27..eabed5b 100644
--- a/release/build.gradle
+++ b/release/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: 'groovy'
+plugins { id 'groovy' }
 
 repositories {
   mavenCentral()
diff --git a/runners/apex/build.gradle b/runners/apex/build.gradle
index a2bfdec..a2d96a9 100644
--- a/runners/apex/build.gradle
+++ b/runners/apex/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Apex"
diff --git a/runners/core-construction-java/build.gradle 
b/runners/core-construction-java/build.gradle
index 7ac38e0..2716ebf 100644
--- a/runners/core-construction-java/build.gradle
+++ b/runners/core-construction-java/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Core Construction Java"
diff --git a/runners/core-java/build.gradle b/runners/core-java/build.gradle
index 3468c01..1ab97a3 100644
--- a/runners/core-java/build.gradle
+++ b/runners/core-java/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Core Java"
diff --git a/runners/direct-java/build.gradle b/runners/direct-java/build.gradle
index be88efc..b6fbbff 100644
--- a/runners/direct-java/build.gradle
+++ b/runners/direct-java/build.gradle
@@ -17,6 +17,7 @@
  */
 
 import groovy.json.JsonOutput
+plugins { id 'org.apache.beam.module' }
 
 // Shade away runner execution utilities till because this causes 
ServiceLoader conflicts with
 // TransformPayloadTranslatorRegistrar amongst other runners. This only 
happens in the DirectRunner
@@ -27,7 +28,6 @@ def dependOnProjects = 
[":beam-runners-core-construction-java",
                         ":beam-runners-java-fn-execution",
                         ":beam-sdks-java-fn-execution"]
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
 applyJavaNature(shadowClosure: DEFAULT_SHADOW_CLOSURE << {
   dependencies {
     dependOnProjects.each {
diff --git a/runners/extensions-java/metrics/build.gradle 
b/runners/extensions-java/metrics/build.gradle
index 35eab95..a987b82 100644
--- a/runners/extensions-java/metrics/build.gradle
+++ b/runners/extensions-java/metrics/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: Runners :: Extensions Java :: Metrics"
diff --git a/runners/flink/flink_runner.gradle 
b/runners/flink/flink_runner.gradle
index add6162..c94ab05 100644
--- a/runners/flink/flink_runner.gradle
+++ b/runners/flink/flink_runner.gradle
@@ -25,7 +25,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+apply plugin: 'org.apache.beam.module'
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Flink $flink_version"
diff --git 
a/runners/flink/job-server-container/flink_job_server_container.gradle 
b/runners/flink/job-server-container/flink_job_server_container.gradle
index a768ac0..a4353dc 100644
--- a/runners/flink/job-server-container/flink_job_server_container.gradle
+++ b/runners/flink/job-server-container/flink_job_server_container.gradle
@@ -22,7 +22,7 @@
  * or by directly running the generated JAR file.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+apply plugin: 'org.apache.beam.module'
 applyDockerNature()
 
 // Resolve the Flink project name (and version) the job-server-container is 
based on
diff --git a/runners/flink/job-server/flink_job_server.gradle 
b/runners/flink/job-server/flink_job_server.gradle
index e38e954..ebed8e4 100644
--- a/runners/flink/job-server/flink_job_server.gradle
+++ b/runners/flink/job-server/flink_job_server.gradle
@@ -24,8 +24,8 @@ import org.apache.beam.gradle.BeamModulePlugin
  * See build.gradle files for an example of how to use this script.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-apply plugin: "application"
+apply plugin: 'org.apache.beam.module'
+apply plugin: 'application'
 // we need to set mainClassName before applying shadow plugin
 mainClassName = "org.apache.beam.runners.flink.FlinkJobServerDriver"
 
diff --git a/runners/gearpump/build.gradle b/runners/gearpump/build.gradle
index 18c730f..b95f987 100644
--- a/runners/gearpump/build.gradle
+++ b/runners/gearpump/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Gearpump"
diff --git a/runners/google-cloud-dataflow-java/build.gradle 
b/runners/google-cloud-dataflow-java/build.gradle
index 5d765e7..c7e126b 100644
--- a/runners/google-cloud-dataflow-java/build.gradle
+++ b/runners/google-cloud-dataflow-java/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Google Cloud Dataflow"
diff --git a/runners/google-cloud-dataflow-java/examples-streaming/build.gradle 
b/runners/google-cloud-dataflow-java/examples-streaming/build.gradle
index fca2a38..3cbb71c 100644
--- a/runners/google-cloud-dataflow-java/examples-streaming/build.gradle
+++ b/runners/google-cloud-dataflow-java/examples-streaming/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(publish: false, exportJavadoc: false)
 // Evaluate the given project before this one, to allow referencing
 // its sourceSets.test.output directly.
diff --git a/runners/google-cloud-dataflow-java/examples/build.gradle 
b/runners/google-cloud-dataflow-java/examples/build.gradle
index e550644..b1ec60a 100644
--- a/runners/google-cloud-dataflow-java/examples/build.gradle
+++ b/runners/google-cloud-dataflow-java/examples/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(publish: false, exportJavadoc: false)
 // Evaluate the given project before this one, to allow referencing
 // its sourceSets.test.output directly.
diff --git a/runners/google-cloud-dataflow-java/worker/build.gradle 
b/runners/google-cloud-dataflow-java/worker/build.gradle
index 0671ce5..6be6dd0 100644
--- a/runners/google-cloud-dataflow-java/worker/build.gradle
+++ b/runners/google-cloud-dataflow-java/worker/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 
 // Set a specific version of 'com.google.apis:google-api-services-dataflow'
 // by adding -Pdataflow.version=<version> in Gradle command. Otherwise,
diff --git 
a/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle 
b/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
index 0aa72bc..5c780e5 100644
--- a/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
+++ b/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
@@ -23,7 +23,7 @@
 // 2. Not have artifacts such as test results and jars write over each other.
 // 3. Better compatibility with Intellij since Intellij requires separate 
content roots.
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 
 // Set a specific version of 'com.google.apis:google-api-services-dataflow'
 // by adding -Pdataflow.version=<version> in Gradle command. Otherwise,
diff --git a/runners/google-cloud-dataflow-java/worker/windmill/build.gradle 
b/runners/google-cloud-dataflow-java/worker/windmill/build.gradle
index cd982e5..20df1e3 100644
--- a/runners/google-cloud-dataflow-java/worker/windmill/build.gradle
+++ b/runners/google-cloud-dataflow-java/worker/windmill/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPortabilityNature(shadowJarValidationExcludes: 
["org/apache/beam/runners/dataflow/worker/windmill/**"])
 
 description = "Apache Beam :: Runners :: Google Cloud Dataflow Java :: 
Windmill"
diff --git a/runners/java-fn-execution/build.gradle 
b/runners/java-fn-execution/build.gradle
index 690680b..65df94a 100644
--- a/runners/java-fn-execution/build.gradle
+++ b/runners/java-fn-execution/build.gradle
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Java Fn Execution"
diff --git a/runners/local-java/build.gradle b/runners/local-java/build.gradle
index 1dfde3f..7a29370 100644
--- a/runners/local-java/build.gradle
+++ b/runners/local-java/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Local Java Core"
diff --git a/runners/reference/java/build.gradle 
b/runners/reference/java/build.gradle
index 0638cc5..87a6133 100644
--- a/runners/reference/java/build.gradle
+++ b/runners/reference/java/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Reference :: Java"
diff --git a/runners/reference/job-server/build.gradle 
b/runners/reference/job-server/build.gradle
index e476d6a..2a2f79d 100644
--- a/runners/reference/job-server/build.gradle
+++ b/runners/reference/job-server/build.gradle
@@ -15,8 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-apply plugin: "application"
+plugins {
+  id 'org.apache.beam.module'
+  id 'application'
+}
 // we need to set mainClassName before applying shadow plugin
 mainClassName = 
"org.apache.beam.runners.direct.portable.job.ReferenceRunnerJobServer"
 
diff --git a/runners/samza/build.gradle b/runners/samza/build.gradle
index a59eb7b..a1454e1 100644
--- a/runners/samza/build.gradle
+++ b/runners/samza/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: Runners :: Samza"
diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle
index 2604f4b..9dcdee8 100644
--- a/runners/spark/build.gradle
+++ b/runners/spark/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: Runners :: Spark"
diff --git a/sdks/go/build.gradle b/sdks/go/build.gradle
index 5bc2e73..fa3f9ad 100644
--- a/sdks/go/build.gradle
+++ b/sdks/go/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 
 description = "Apache Beam :: SDKs :: Go"
diff --git a/sdks/go/container/build.gradle b/sdks/go/container/build.gradle
index 276bde2..424f1e9 100644
--- a/sdks/go/container/build.gradle
+++ b/sdks/go/container/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 applyDockerNature()
 
diff --git a/sdks/go/examples/build.gradle b/sdks/go/examples/build.gradle
index 23f8fd7..70f3338 100644
--- a/sdks/go/examples/build.gradle
+++ b/sdks/go/examples/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 
 description = "Apache Beam :: SDKs :: Go :: Examples"
diff --git a/sdks/go/test/build.gradle b/sdks/go/test/build.gradle
index 0504a8b..b2f1e2f 100644
--- a/sdks/go/test/build.gradle
+++ b/sdks/go/test/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 
 description = "Apache Beam :: SDKs :: Go :: Test"
diff --git a/sdks/java/bom/build.gradle b/sdks/java/bom/build.gradle
index b0375c4..e6dfa62 100644
--- a/sdks/java/bom/build.gradle
+++ b/sdks/java/bom/build.gradle
@@ -22,10 +22,11 @@
 // 
https://github.com/GoogleCloudPlatform/cloud-opensource-java/blob/master/library-best-practices/JLBP-15.md
 // for more details on BOMs.
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-
-apply plugin: "java"
-apply plugin: "maven-publish"
+plugins {
+  id 'org.apache.beam.module'
+  id 'java'
+  id 'maven-publish'
+}
 
 def isRelease(Project project) {
   return project.hasProperty('isRelease')
diff --git a/sdks/java/build-tools/build.gradle 
b/sdks/java/build-tools/build.gradle
index d6fa86b..53f88b7 100644
--- a/sdks/java/build-tools/build.gradle
+++ b/sdks/java/build-tools/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Build Tools"
diff --git a/sdks/java/container/build.gradle b/sdks/java/container/build.gradle
index c89fd39..028b620 100644
--- a/sdks/java/container/build.gradle
+++ b/sdks/java/container/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 applyDockerNature()
 
diff --git a/sdks/java/core/build.gradle b/sdks/java/core/build.gradle
index ffb9ce2..298b311 100644
--- a/sdks/java/core/build.gradle
+++ b/sdks/java/core/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(shadowClosure: DEFAULT_SHADOW_CLOSURE << {
   dependencies {
     include(dependency(library.java.protobuf_java))
diff --git a/sdks/java/extensions/euphoria/build.gradle 
b/sdks/java/extensions/euphoria/build.gradle
index 6f04d87..e56186a 100644
--- a/sdks/java/extensions/euphoria/build.gradle
+++ b/sdks/java/extensions/euphoria/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Euphoria Java 8 
DSL"
diff --git a/sdks/java/extensions/google-cloud-platform-core/build.gradle 
b/sdks/java/extensions/google-cloud-platform-core/build.gradle
index 5be4cf2..7208101 100644
--- a/sdks/java/extensions/google-cloud-platform-core/build.gradle
+++ b/sdks/java/extensions/google-cloud-platform-core/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Google Cloud 
Platform Core"
diff --git a/sdks/java/extensions/jackson/build.gradle 
b/sdks/java/extensions/jackson/build.gradle
index e407708..57770b1 100644
--- a/sdks/java/extensions/jackson/build.gradle
+++ b/sdks/java/extensions/jackson/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Jackson"
diff --git a/sdks/java/extensions/join-library/build.gradle 
b/sdks/java/extensions/join-library/build.gradle
index 0d5fd49..bff93fb 100644
--- a/sdks/java/extensions/join-library/build.gradle
+++ b/sdks/java/extensions/join-library/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Join library"
diff --git a/sdks/java/extensions/kryo/build.gradle 
b/sdks/java/extensions/kryo/build.gradle
index 14878cc..d8797f5 100644
--- a/sdks/java/extensions/kryo/build.gradle
+++ b/sdks/java/extensions/kryo/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 
 ext {
     kryoVersion = '4.0.2'
diff --git a/sdks/java/extensions/protobuf/build.gradle 
b/sdks/java/extensions/protobuf/build.gradle
index 5b15287..addc082 100644
--- a/sdks/java/extensions/protobuf/build.gradle
+++ b/sdks/java/extensions/protobuf/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 applyGrpcNature()
 
diff --git a/sdks/java/extensions/sketching/build.gradle 
b/sdks/java/extensions/sketching/build.gradle
index f3bdc6e..fe63d12 100644
--- a/sdks/java/extensions/sketching/build.gradle
+++ b/sdks/java/extensions/sketching/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Sketching"
diff --git a/sdks/java/extensions/sorter/build.gradle 
b/sdks/java/extensions/sorter/build.gradle
index 61327ea..4cd85e0 100644
--- a/sdks/java/extensions/sorter/build.gradle
+++ b/sdks/java/extensions/sorter/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Sorter"
diff --git a/sdks/java/extensions/sql/build.gradle 
b/sdks/java/extensions/sql/build.gradle
index 0f79276..cad0cd7 100644
--- a/sdks/java/extensions/sql/build.gradle
+++ b/sdks/java/extensions/sql/build.gradle
@@ -18,7 +18,10 @@ import groovy.json.JsonOutput
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins {
+  id 'org.apache.beam.module'
+  id 'ca.coglinc.javacc'
+}
 applyJavaNature(
   // javacc generated code produces lint warnings
   disableLintWarnings: ['dep-ann'],
@@ -43,7 +46,6 @@ applyJavaNature(
   // module.
   relocate "org.codehaus", 
"org.apache.beam.sdks.java.extensions.sql.repackaged.org.codehaus"
 })
-apply plugin: 'ca.coglinc.javacc'
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: SQL"
 ext.summary = "Beam SQL provides a new interface to generate a Beam pipeline 
from SQL statement"
diff --git a/sdks/java/extensions/sql/jdbc/build.gradle 
b/sdks/java/extensions/sql/jdbc/build.gradle
index 0bc2257..e61c125 100644
--- a/sdks/java/extensions/sql/jdbc/build.gradle
+++ b/sdks/java/extensions/sql/jdbc/build.gradle
@@ -18,7 +18,7 @@ import groovy.json.JsonOutput
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(
   exportJavadoc: false,
   testShadowJar: true,
diff --git a/sdks/java/extensions/sql/shell/build.gradle 
b/sdks/java/extensions/sql/shell/build.gradle
index 7a1aa94..3d04ee2 100644
--- a/sdks/java/extensions/sql/shell/build.gradle
+++ b/sdks/java/extensions/sql/shell/build.gradle
@@ -16,9 +16,10 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-
-apply plugin: "application"
+plugins {
+  id 'org.apache.beam.module'
+  id 'application'
+}
 
 dependencies {
   compile project(path: ":beam-sdks-java-extensions-sql-jdbc", configuration: 
"shadow")
diff --git a/sdks/java/fn-execution/build.gradle 
b/sdks/java/fn-execution/build.gradle
index 6f965ea..556d3db 100644
--- a/sdks/java/fn-execution/build.gradle
+++ b/sdks/java/fn-execution/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: Fn Execution"
diff --git a/sdks/java/harness/build.gradle b/sdks/java/harness/build.gradle
index 3e7d015..30c957f 100644
--- a/sdks/java/harness/build.gradle
+++ b/sdks/java/harness/build.gradle
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+plugins { id 'org.apache.beam.module' }
 
 // We specifically enumerate all the projects that we depend on since
 // the list is used in both defining the included set for the uber jar
@@ -25,7 +26,6 @@ def dependOnProjects = [":beam-model-pipeline", 
":beam-model-fn-execution", ":be
                         
":beam-sdks-java-extensions-google-cloud-platform-core",
                         ":beam-runners-core-java", 
":beam-runners-core-construction-java"]
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
 applyJavaNature(validateShadowJar: false, shadowClosure: 
DEFAULT_SHADOW_CLOSURE <<
   // Create an uber jar without repackaging for the SDK harness
   // TODO: We have been releasing this in the past, consider not
diff --git a/sdks/java/io/amazon-web-services/build.gradle 
b/sdks/java/io/amazon-web-services/build.gradle
index 7e88efe..cfe0d19 100644
--- a/sdks/java/io/amazon-web-services/build.gradle
+++ b/sdks/java/io/amazon-web-services/build.gradle
@@ -18,7 +18,7 @@ import groovy.json.JsonOutput
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Amazon Web Services"
diff --git a/sdks/java/io/amqp/build.gradle b/sdks/java/io/amqp/build.gradle
index a05134c..a71e8a7 100644
--- a/sdks/java/io/amqp/build.gradle
+++ b/sdks/java/io/amqp/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: AMQP"
diff --git a/sdks/java/io/cassandra/build.gradle 
b/sdks/java/io/cassandra/build.gradle
index 298758c..e70ef2a 100644
--- a/sdks/java/io/cassandra/build.gradle
+++ b/sdks/java/io/cassandra/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 // Do not relocate guava to avoid issues with Cassandra's version.
 applyJavaNature(shadowClosure: DEFAULT_SHADOW_CLOSURE << {
   dependencies {
diff --git a/sdks/java/io/clickhouse/build.gradle 
b/sdks/java/io/clickhouse/build.gradle
index 8bd3d99..da2a941 100644
--- a/sdks/java/io/clickhouse/build.gradle
+++ b/sdks/java/io/clickhouse/build.gradle
@@ -16,14 +16,15 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins {
+  id 'org.apache.beam.module'
+  id 'ca.coglinc.javacc'
+}
 applyJavaNature(
     // javacc generated code produces lint warnings
     disableLintWarnings: ['dep-ann']
 )
 
-apply plugin: 'ca.coglinc.javacc'
-
 description = "Apache Beam :: SDKs :: Java :: IO :: ClickHouse"
 ext.summary = "IO to write to ClickHouse (https://clickhouse.yandex)."
 
diff --git a/sdks/java/io/common/build.gradle b/sdks/java/io/common/build.gradle
index 0096c59..d7e99c8 100644
--- a/sdks/java/io/common/build.gradle
+++ b/sdks/java/io/common/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Common"
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 4eb0044..e01270b 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
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 c24add2..74e634f 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-6/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-6/build.gradle
index 9675e4b..c5116b4 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-6/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-6/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
index 941c526..920e759 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 
Common"
diff --git a/sdks/java/io/elasticsearch/build.gradle 
b/sdks/java/io/elasticsearch/build.gradle
index e242582..6fc06e9 100644
--- a/sdks/java/io/elasticsearch/build.gradle
+++ b/sdks/java/io/elasticsearch/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch"
diff --git a/sdks/java/io/file-based-io-tests/build.gradle 
b/sdks/java/io/file-based-io-tests/build.gradle
index 8b271a7..1d74da3 100644
--- a/sdks/java/io/file-based-io-tests/build.gradle
+++ b/sdks/java/io/file-based-io-tests/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/google-cloud-platform/build.gradle 
b/sdks/java/io/google-cloud-platform/build.gradle
index 532d3b8..6b8c7d9 100644
--- a/sdks/java/io/google-cloud-platform/build.gradle
+++ b/sdks/java/io/google-cloud-platform/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(
   enableFindbugs: false,
   // Override the default shading configuration to exclude everything since
diff --git a/sdks/java/io/hadoop-common/build.gradle 
b/sdks/java/io/hadoop-common/build.gradle
index 9ca8022..6c1b58f 100644
--- a/sdks/java/io/hadoop-common/build.gradle
+++ b/sdks/java/io/hadoop-common/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop Common"
diff --git a/sdks/java/io/hadoop-file-system/build.gradle 
b/sdks/java/io/hadoop-file-system/build.gradle
index b13b109..393a719 100644
--- a/sdks/java/io/hadoop-file-system/build.gradle
+++ b/sdks/java/io/hadoop-file-system/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop File System"
diff --git a/sdks/java/io/hadoop-format/build.gradle 
b/sdks/java/io/hadoop-format/build.gradle
index 5dabf80..9b64ea9 100644
--- a/sdks/java/io/hadoop-format/build.gradle
+++ b/sdks/java/io/hadoop-format/build.gradle
@@ -18,7 +18,7 @@
 
 import groovy.json.JsonOutput
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/hadoop-input-format/build.gradle 
b/sdks/java/io/hadoop-input-format/build.gradle
index 1019d0f..e6365f3 100644
--- a/sdks/java/io/hadoop-input-format/build.gradle
+++ b/sdks/java/io/hadoop-input-format/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/hbase/build.gradle b/sdks/java/io/hbase/build.gradle
index da72866..ef0af9f 100644
--- a/sdks/java/io/hbase/build.gradle
+++ b/sdks/java/io/hbase/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/hcatalog/build.gradle 
b/sdks/java/io/hcatalog/build.gradle
index 501f3e6..93c047b 100644
--- a/sdks/java/io/hcatalog/build.gradle
+++ b/sdks/java/io/hcatalog/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: HCatalog"
diff --git a/sdks/java/io/jdbc/build.gradle b/sdks/java/io/jdbc/build.gradle
index d2049f0..bcd8acd 100644
--- a/sdks/java/io/jdbc/build.gradle
+++ b/sdks/java/io/jdbc/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(enableFindbugs: false)
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/jms/build.gradle b/sdks/java/io/jms/build.gradle
index 2bb9d2a..08fee5f 100644
--- a/sdks/java/io/jms/build.gradle
+++ b/sdks/java/io/jms/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: JMS"
diff --git a/sdks/java/io/kafka/build.gradle b/sdks/java/io/kafka/build.gradle
index 3748a48..890f7c9 100644
--- a/sdks/java/io/kafka/build.gradle
+++ b/sdks/java/io/kafka/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(enableFindbugs: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Kafka"
diff --git a/sdks/java/io/kinesis/build.gradle 
b/sdks/java/io/kinesis/build.gradle
index 988603b..127db4f 100644
--- a/sdks/java/io/kinesis/build.gradle
+++ b/sdks/java/io/kinesis/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(
   // Override the default shading configuration to exclude everything since
   // AWS-KPL library has hard dependency on guava.
diff --git a/sdks/java/io/kudu/build.gradle b/sdks/java/io/kudu/build.gradle
index c352249..b36c7c8 100644
--- a/sdks/java/io/kudu/build.gradle
+++ b/sdks/java/io/kudu/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/mongodb/build.gradle 
b/sdks/java/io/mongodb/build.gradle
index 0efb1d5..cb007e3 100644
--- a/sdks/java/io/mongodb/build.gradle
+++ b/sdks/java/io/mongodb/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
diff --git a/sdks/java/io/mqtt/build.gradle b/sdks/java/io/mqtt/build.gradle
index b9cc36f..e8024d8 100644
--- a/sdks/java/io/mqtt/build.gradle
+++ b/sdks/java/io/mqtt/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: MQTT"
diff --git a/sdks/java/io/parquet/build.gradle 
b/sdks/java/io/parquet/build.gradle
index ce60e34..e17023a 100644
--- a/sdks/java/io/parquet/build.gradle
+++ b/sdks/java/io/parquet/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Parquet"
diff --git a/sdks/java/io/rabbitmq/build.gradle 
b/sdks/java/io/rabbitmq/build.gradle
index a9ec218..58ab85a 100644
--- a/sdks/java/io/rabbitmq/build.gradle
+++ b/sdks/java/io/rabbitmq/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: RabbitMQ"
diff --git a/sdks/java/io/redis/build.gradle b/sdks/java/io/redis/build.gradle
index 0d08949..9f4092b 100644
--- a/sdks/java/io/redis/build.gradle
+++ b/sdks/java/io/redis/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Redis"
diff --git a/sdks/java/io/solr/build.gradle b/sdks/java/io/solr/build.gradle
index 36ad698..3350188 100644
--- a/sdks/java/io/solr/build.gradle
+++ b/sdks/java/io/solr/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Solr"
diff --git a/sdks/java/io/synthetic/build.gradle 
b/sdks/java/io/synthetic/build.gradle
index 5cb2512..2890836 100644
--- a/sdks/java/io/synthetic/build.gradle
+++ b/sdks/java/io/synthetic/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Synthetic"
diff --git a/sdks/java/io/tika/build.gradle b/sdks/java/io/tika/build.gradle
index 2523297..9755981 100644
--- a/sdks/java/io/tika/build.gradle
+++ b/sdks/java/io/tika/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Tika"
diff --git a/sdks/java/io/xml/build.gradle b/sdks/java/io/xml/build.gradle
index 838967f..bc829e5 100644
--- a/sdks/java/io/xml/build.gradle
+++ b/sdks/java/io/xml/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature()
 
 description = "Apache Beam :: SDKs :: Java :: IO :: XML"
diff --git a/sdks/java/javadoc/build.gradle b/sdks/java/javadoc/build.gradle
index 87cb318..986b0c1 100644
--- a/sdks/java/javadoc/build.gradle
+++ b/sdks/java/javadoc/build.gradle
@@ -23,8 +23,8 @@
  * Generated files will be located under 
beam/sdks/java/javadoc/build/docs/javadoc and are
  * used as part of the beam-site source tree.
  */
+plugins { id 'java' }
 description = "Apache Beam :: SDKs :: Java :: Aggregated Javadoc"
-apply plugin: 'java'
 
 for (p in rootProject.subprojects) {
   if (!p.name.equals(project.name) && !p.name.equals('beam-sdks-java-bom')) {
diff --git a/sdks/java/maven-archetypes/examples/build.gradle 
b/sdks/java/maven-archetypes/examples/build.gradle
index a140138..bfec837 100644
--- a/sdks/java/maven-archetypes/examples/build.gradle
+++ b/sdks/java/maven-archetypes/examples/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples"
diff --git a/sdks/java/maven-archetypes/starter/build.gradle 
b/sdks/java/maven-archetypes/starter/build.gradle
index 34231a2..7b9981b 100644
--- a/sdks/java/maven-archetypes/starter/build.gradle
+++ b/sdks/java/maven-archetypes/starter/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Maven Archetypes :: Starter"
diff --git a/sdks/java/testing/load-tests/build.gradle 
b/sdks/java/testing/load-tests/build.gradle
index a2f5d71..cc1ff68 100644
--- a/sdks/java/testing/load-tests/build.gradle
+++ b/sdks/java/testing/load-tests/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Load Tests"
diff --git a/sdks/java/testing/nexmark/build.gradle 
b/sdks/java/testing/nexmark/build.gradle
index 9501d4b..4ad1350 100644
--- a/sdks/java/testing/nexmark/build.gradle
+++ b/sdks/java/testing/nexmark/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Nexmark"
diff --git a/sdks/java/testing/test-utils/build.gradle 
b/sdks/java/testing/test-utils/build.gradle
index 401eeb9..5a92952 100644
--- a/sdks/java/testing/test-utils/build.gradle
+++ b/sdks/java/testing/test-utils/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(exportJavadoc: false)
 
 description = "Apache Beam :: SDKs :: Java :: Test Utils"
diff --git a/sdks/python/build.gradle b/sdks/python/build.gradle
index 78177c0..e5d301d 100644
--- a/sdks/python/build.gradle
+++ b/sdks/python/build.gradle
@@ -18,7 +18,7 @@
 
 import org.apache.tools.ant.taskdefs.condition.Os
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPythonNature()
 
 
diff --git a/sdks/python/container/build.gradle 
b/sdks/python/container/build.gradle
index 2a56abd..4dee86c 100644
--- a/sdks/python/container/build.gradle
+++ b/sdks/python/container/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyGoNature()
 applyDockerNature()
 
diff --git a/sdks/python/container/py3/build.gradle 
b/sdks/python/container/py3/build.gradle
index 57e4760..b577b77 100644
--- a/sdks/python/container/py3/build.gradle
+++ b/sdks/python/container/py3/build.gradle
@@ -16,8 +16,10 @@
  * limitations under the License.
  */
 
-apply plugin: 'base'
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins {
+  id 'base'
+  id 'org.apache.beam.module'
+}
 applyDockerNature()
 
 description = "Apache Beam :: SDKs :: Python :: Container :: Python 3 
Container"
diff --git a/sdks/python/precommit/dataflow/build.gradle 
b/sdks/python/precommit/dataflow/build.gradle
index 59072b7..95892b0 100644
--- a/sdks/python/precommit/dataflow/build.gradle
+++ b/sdks/python/precommit/dataflow/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPythonNature()
 
 def runScriptsDir = "${project.rootDir}/sdks/python/scripts"
diff --git a/sdks/python/precommit/direct/py3/build.gradle 
b/sdks/python/precommit/direct/py3/build.gradle
index 9b7f679..7dc8a82 100644
--- a/sdks/python/precommit/direct/py3/build.gradle
+++ b/sdks/python/precommit/direct/py3/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyPythonNature()
 
 // Required to setup a Python 3 virtualenv.
diff --git a/vendor/grpc-1_13_1/build.gradle b/vendor/grpc-1_13_1/build.gradle
index 0ad8909..9d119c9 100644
--- a/vendor/grpc-1_13_1/build.gradle
+++ b/vendor/grpc-1_13_1/build.gradle
@@ -18,7 +18,7 @@
 
 import org.apache.beam.gradle.GrpcVendoring
 
-apply plugin: org.apache.beam.gradle.VendorJavaPlugin
+plugins { id 'org.apache.beam.vendor-java' }
 
 description = "Apache Beam :: Vendored Dependencies :: gRPC :: 1.13.1"
 
diff --git a/vendor/guava-20_0/build.gradle b/vendor/guava-20_0/build.gradle
index 3f01d68..419e656 100644
--- a/vendor/guava-20_0/build.gradle
+++ b/vendor/guava-20_0/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.VendorJavaPlugin
+plugins { id 'org.apache.beam.vendor-java' }
 
 description = "Apache Beam :: Vendored Dependencies :: Guava 20"
 
diff --git a/vendor/sdks-java-extensions-protobuf/build.gradle 
b/vendor/sdks-java-extensions-protobuf/build.gradle
index f689b8b..fc0d750 100644
--- a/vendor/sdks-java-extensions-protobuf/build.gradle
+++ b/vendor/sdks-java-extensions-protobuf/build.gradle
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
+plugins { id 'org.apache.beam.module' }
 applyJavaNature(
     exportJavadoc: false,
     shadowClosure: DEFAULT_SHADOW_CLOSURE << {
diff --git a/website/build.gradle b/website/build.gradle
index 3fa88ac..f0cab59 100644
--- a/website/build.gradle
+++ b/website/build.gradle
@@ -16,11 +16,10 @@
  * limitations under the License.
  */
 
-// Define common lifecycle tasks and artifact types
-apply plugin: "base"
-
-// Publish website to asf-git branch.
-apply plugin: 'org.ajoberstar.grgit'
+plugins {
+  id 'base'                  // Define common lifecycle tasks and artifact 
types
+  id 'org.ajoberstar.grgit'  // Publish website to asf-git branch.
+}
 
 def dockerImageTag = 'beam-website'
 def dockerWorkDir = "/repo"

Reply via email to