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

rhoughton pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new bfaaa4f  GEODE-9621: Add spotless rule for build.gradle files (#6889)
bfaaa4f is described below

commit bfaaa4f6e12567bc3ef61d22682fc47e2d74f71c
Author: Robert Houghton <rhough...@pivotal.io>
AuthorDate: Tue Sep 21 15:52:33 2021 -0700

    GEODE-9621: Add spotless rule for build.gradle files (#6889)
    
    Enforces indentation and line-wrap rules for gradle groovy syntax.
    
    Authored-by: Robert Houghton <rhough...@pivotal.io>
---
 boms/geode-client-bom/build.gradle                 |   1 -
 extensions/geode-modules-assembly/build.gradle     |   9 +-
 extensions/session-testing-war/build.gradle        |   2 +-
 geode-assembly/build.gradle                        |  44 +-
 geode-assembly/geode-assembly-test/build.gradle    |   1 -
 .../gradle-test-projects/management/build.gradle   |  16 +-
 geode-core/build.gradle                            | 548 ++++++++++-----------
 .../geode-deployment-legacy/build.gradle           |  18 +-
 geode-dunit/build.gradle                           |   1 -
 geode-gfsh/build.gradle                            | 102 ++--
 geode-http-service/build.gradle                    |   2 +-
 geode-jmh/build.gradle                             |  12 +-
 geode-junit/build.gradle                           |   6 +-
 geode-log4j/build.gradle                           |   1 -
 geode-logging/build.gradle                         |  60 ++-
 geode-lucene/geode-lucene-test/build.gradle        |   1 -
 geode-membership/build.gradle                      |  67 ++-
 geode-old-client-support/build.gradle              |   1 -
 geode-pulse/geode-pulse-test/build.gradle          |   1 -
 geode-serialization/build.gradle                   |   2 -
 geode-tcp-server/build.gradle                      |  36 +-
 geode-web/build.gradle                             |   2 +-
 gradle/spotless.gradle                             |   8 +-
 static-analysis/pmd-rules/build.gradle             |   6 +-
 24 files changed, 475 insertions(+), 472 deletions(-)

diff --git a/boms/geode-client-bom/build.gradle 
b/boms/geode-client-bom/build.gradle
index e89fdfa..f012b47 100644
--- a/boms/geode-client-bom/build.gradle
+++ b/boms/geode-client-bom/build.gradle
@@ -42,4 +42,3 @@ publishing {
     }
   }
 }
-
diff --git a/extensions/geode-modules-assembly/build.gradle 
b/extensions/geode-modules-assembly/build.gradle
index 7cb039c..53532d9 100644
--- a/extensions/geode-modules-assembly/build.gradle
+++ b/extensions/geode-modules-assembly/build.gradle
@@ -236,10 +236,15 @@ tasks.register('distTcServer30', Zip) {
   configure(configureTcServer30Assembly)
 }
 
-task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 
'distTomcat', 'distAppServer'])
+task dist(type: Task, dependsOn: [
+  'distTcServer',
+  'distTcServer30',
+  'distTomcat',
+  'distAppServer'
+])
 
 build.dependsOn dist
 
 sonarqube {
   skipProject = true
-}
\ No newline at end of file
+}
diff --git a/extensions/session-testing-war/build.gradle 
b/extensions/session-testing-war/build.gradle
index 4668ce5..e8e2d91 100644
--- a/extensions/session-testing-war/build.gradle
+++ b/extensions/session-testing-war/build.gradle
@@ -28,5 +28,5 @@ dependencies {
 }
 
 war {
-    archiveVersion = ''
+  archiveVersion = ''
 }
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index f0a4928..1a68312 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -311,8 +311,8 @@ dependencies {
 }
 
 acceptanceTest {
-    // This is specifically used by GradleBuildWithGeodeCoreAcceptanceTest
-    systemProperty 'projectGroup', project.group
+  // This is specifically used by GradleBuildWithGeodeCoreAcceptanceTest
+  systemProperty 'projectGroup', project.group
 }
 
 tasks.register('defaultDistributionConfig', JavaExec) {
@@ -348,17 +348,18 @@ tasks.register('defaultCacheConfig', JavaExec) {
 def cp = {
   // first add all the dependent project jars
   def jars = configurations.geodeArchives.dependencies.collect { 
it.dependencyProject }
-    .findAll { !(it.name.contains('geode-web') || 
it.name.contains('geode-pulse')) }
-    .collect { it.jar.archiveName }
+  .findAll { !(it.name.contains('geode-web') || 
it.name.contains('geode-pulse')) }
+  .collect { it.jar.archiveName }
 
   // then add all the dependencies of the dependent jars
   def depJars = configurations.geodeArchives.dependencies.collect {
     it.dependencyProject.findAll {
       !(it.name.contains('geode-web') ||
-        it.name.contains('geode-pulse'))
+          it.name.contains('geode-pulse'))
     }.collect {
-      it.configurations.runtimeClasspath.collect { it.getName() }.findAll { !(
-          it.contains('geode-all-bom') ||
+      it.configurations.runtimeClasspath.collect { it.getName() }.findAll {
+        !(
+            it.contains('geode-all-bom') ||
 
             // exclude mx4j, once the deprecated code is deleted we can remove 
these entirely
             it.contains('commons-digester') ||
@@ -380,7 +381,7 @@ def cp = {
             it.contains('spring-context') ||
             it.contains('spring-expression') ||
             it.contains('spring-web')
-        )}
+            )}
     }
   }.flatten()
 
@@ -553,7 +554,8 @@ distributions {
 
       with copySpec {
         into('lib')
-        from { dependentProjectNames.collect {
+        from {
+          dependentProjectNames.collect {
             [
               project(':'.concat(it)).configurations.runtimeClasspath,
               
project(':'.concat(it)).configurations.archives.allArtifacts.files
@@ -607,8 +609,9 @@ distributions {
 }
 // Distribution plugin does not allow configuring of the task, only the 
contents. So we set
 // compression and classifier here
-[tasks.named('distTar'),
- tasks.named('srcDistTar'),
+[
+  tasks.named('distTar'),
+  tasks.named('srcDistTar'),
 ]*.configure {
   compression Compression.GZIP
   archiveExtension='tgz'
@@ -621,10 +624,11 @@ tasks.named('srcDistTar').configure {
   classifier 'src'
 }
 
-[tasks.named('distZip'),
- tasks.named('srcDistZip'),
- tasks.named('dockerfileZip'),
- ]*.configure {
+[
+  tasks.named('distZip'),
+  tasks.named('srcDistZip'),
+  tasks.named('dockerfileZip'),
+]*.configure {
   enabled = false
 }
 
@@ -660,11 +664,11 @@ task dumpInstalledJars(dependsOn: installDist) {
 
     installDir.include("**/*.war").visit{ file ->
       if(!file.isDirectory()) {
-          FileTree warContents = zipTree(file.file)
-          println ""
-          println file.name
-          println("==========================")
-          printJars(warContents)
+        FileTree warContents = zipTree(file.file)
+        println ""
+        println file.name
+        println("==========================")
+        printJars(warContents)
       }
     }
   }
diff --git a/geode-assembly/geode-assembly-test/build.gradle 
b/geode-assembly/geode-assembly-test/build.gradle
index 5d076ef..bd6559b 100755
--- a/geode-assembly/geode-assembly-test/build.gradle
+++ b/geode-assembly/geode-assembly-test/build.gradle
@@ -39,4 +39,3 @@ dependencies {
   compileOnly('org.assertj:assertj-core')
   compileOnly('org.codehaus.cargo:cargo-core-uberjar')
 }
-
diff --git 
a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
 
b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
index b1252a6..0542f3e 100644
--- 
a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
+++ 
b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
@@ -14,24 +14,24 @@
  */
 
 plugins {
-    id 'java'
-    id 'application'
+  id 'java'
+  id 'application'
 }
 
 repositories {
-    mavenLocal()
-    mavenCentral()
+  mavenLocal()
+  mavenCentral()
 }
 
 dependencies {
-    compile("${project.group}:geode-core:${project.version}")
-    runtime('org.apache.logging.log4j:log4j-slf4j-impl:2.12.0')
+  compile("${project.group}:geode-core:${project.version}")
+  runtime('org.apache.logging.log4j:log4j-slf4j-impl:2.12.0')
 }
 
 application {
-    mainClassName = 'ServerTestApp'
+  mainClassName = 'ServerTestApp'
 }
 
 run {
-    environment['GEODE_HOME'] = "${findProperty('geodeHome')}"
+  environment['GEODE_HOME'] = "${findProperty('geodeHome')}"
 }
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 8035775..85ad356 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -24,95 +24,95 @@ apply from: "${project.projectDir}/../gradle/pmd.gradle"
 apply from: "${project.projectDir}/../gradle/jmh.gradle"
 
 sourceSets {
-    jca {
-        compileClasspath += configurations.compileClasspath
-        runtimeClasspath += configurations.runtimeClasspath
-    }
+  jca {
+    compileClasspath += configurations.compileClasspath
+    runtimeClasspath += configurations.runtimeClasspath
+  }
 }
 
 idea {
-    module {
-        testSourceDirs += 
project.tasks.generateIntegrationTestGrammarSource.outputs.files
-        testSourceDirs += 
project.tasks.generateDistributedTestGrammarSource.outputs.files
-        testSourceDirs += 
project.tasks.generatePerformanceTestGrammarSource.outputs.files
-        testSourceDirs += 
project.tasks.generateUpgradeTestGrammarSource.outputs.files
-    }
+  module {
+    testSourceDirs += 
project.tasks.generateIntegrationTestGrammarSource.outputs.files
+    testSourceDirs += 
project.tasks.generateDistributedTestGrammarSource.outputs.files
+    testSourceDirs += 
project.tasks.generatePerformanceTestGrammarSource.outputs.files
+    testSourceDirs += 
project.tasks.generateUpgradeTestGrammarSource.outputs.files
+  }
 }
 
 def generatedResources = "$buildDir/generated-resources/main"
 
 sourceSets {
-    main {
-        output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
-    }
-    test {
-        output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
-    }
+  main {
+    output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+  }
+  test {
+    output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+  }
 }
 
 sourceSets {
-// This works around resource-look up between integrationTest and test 
source-sets.
-// See GEODE-5803 / GEODE-5882
-    test.resources.srcDirs.each { testResourceSrc ->
-        integrationTest.resources.srcDir {
-            testResourceSrc
-        }
+  // This works around resource-look up between integrationTest and test 
source-sets.
+  // See GEODE-5803 / GEODE-5882
+  test.resources.srcDirs.each { testResourceSrc ->
+    integrationTest.resources.srcDir {
+      testResourceSrc
     }
+  }
 }
 
 
 // Creates the version properties file and writes it to the classes dir
 task createVersionPropertiesFile(dependsOn: ':writeBuildInfo') {
 
-    def propertiesFile = file(generatedResources + 
"/org/apache/geode/internal/GemFireVersion.properties")
-    def scmInfoFile = rootProject.tasks.writeBuildInfo.outputs.files
-
-    inputs.files {
-        scmInfoFile
-    }
-    outputs.files {
-        propertiesFile
+  def propertiesFile = file(generatedResources + 
"/org/apache/geode/internal/GemFireVersion.properties")
+  def scmInfoFile = rootProject.tasks.writeBuildInfo.outputs.files
+
+  inputs.files {
+    scmInfoFile
+  }
+  outputs.files {
+    propertiesFile
+  }
+
+  def props = [
+    "Product-Name"      : productName,
+    "Product-Version"   : version,
+    "Build-Id"          : "${System.env.USER} ${buildId}".toString(),
+    "Build-Platform"    : "${System.properties['os.name']} 
${System.properties['os.version']} ${System.properties['os.arch']}".toString(),
+    "Build-Java-Vendor" : System.properties['java.vendor'],
+    "Build-Java-Version": System.properties['java.version']
+  ] as Properties
+
+  inputs.properties(props)
+
+  doLast {
+    def scmInfo = new Properties()
+    new FileInputStream(scmInfoFile.singleFile).withStream { fis ->
+      scmInfo.load(fis)
     }
+    props.putAll(scmInfo)
 
-    def props = [
-          "Product-Name"      : productName,
-          "Product-Version"   : version,
-          "Build-Id"          : "${System.env.USER} ${buildId}".toString(),
-          "Build-Platform"    : "${System.properties['os.name']} 
${System.properties['os.version']} ${System.properties['os.arch']}".toString(),
-          "Build-Java-Vendor" : System.properties['java.vendor'],
-          "Build-Java-Version": System.properties['java.version']
-    ] as Properties
-
-    inputs.properties(props)
-
-    doLast {
-        def scmInfo = new Properties()
-        new FileInputStream(scmInfoFile.singleFile).withStream { fis ->
-            scmInfo.load(fis)
-        }
-        props.putAll(scmInfo)
-
-        propertiesFile.getParentFile().mkdirs()
-        new FileOutputStream(propertiesFile).withStream { fos ->
-            props.store(fos, '')
-        }
+    propertiesFile.getParentFile().mkdirs()
+    new FileOutputStream(propertiesFile).withStream { fos ->
+      props.store(fos, '')
     }
+  }
 }
 
 ext.moduleName = group + '.core'
 
 jar {
 
-    from sourceSets.main.output
-    from sourceSets.jca.output
+  from sourceSets.main.output
+  from sourceSets.jca.output
 
-    exclude 'org/apache/geode/internal/i18n/StringIdResourceBundle_ja.txt'
-    exclude 'org/apache/geode/admin/doc-files/ds4_0.dtd'
+  exclude 'org/apache/geode/internal/i18n/StringIdResourceBundle_ja.txt'
+  exclude 'org/apache/geode/admin/doc-files/ds4_0.dtd'
 
-    inputs.property("moduleName", moduleName)
-    manifest {
-        attributes('Automatic-Module-Name': moduleName)
-    }
+  inputs.property("moduleName", moduleName)
+  manifest {
+    attributes('Automatic-Module-Name': moduleName)
+  }
 
 }
 
@@ -127,281 +127,281 @@ repeatUpgradeTest {
 }
 
 task raJar(type: Jar, dependsOn: classes) {
-    description 'Assembles the jar archive that contains the JCA classes'
-    from sourceSets.jca.output
-    exclude 'org/apache/geode/ra/**'
-    archiveFileName='ra.jar'
+  description 'Assembles the jar archive that contains the JCA classes'
+  from sourceSets.jca.output
+  exclude 'org/apache/geode/ra/**'
+  archiveFileName='ra.jar'
 }
 
 task jcaJar(type: Jar, dependsOn: raJar) {
-    description 'Assembles the jar archive that contains the JCA bundle'
-    archiveBaseName='geode-jca'
-    archiveExtension='rar'
-    metaInf { from 'src/jca/ra.xml' }
-    from raJar.archivePath
+  description 'Assembles the jar archive that contains the JCA bundle'
+  archiveBaseName='geode-jca'
+  archiveExtension='rar'
+  metaInf { from 'src/jca/ra.xml' }
+  from raJar.archivePath
 }
 
 configurations {
-    //declaring new configuration that will be used to associate with artifacts
-    archives
+  //declaring new configuration that will be used to associate with artifacts
+  archives
 
-    classesOutput {
-        extendsFrom api
-        description 'a dependency that exposes the compiled classes'
-    }
+  classesOutput {
+    extendsFrom api
+    description 'a dependency that exposes the compiled classes'
+  }
 
-    jmh {
-        extendsFrom testImplementation
-    }
+  jmh {
+    extendsFrom testImplementation
+  }
 
-    raOutput
+  raOutput
 }
 
 artifacts {
-    raOutput raJar
+  raOutput raJar
 }
 
 dependencies {
 
-    //These bom dependencies are used to constrain the versions of the 
dependencies listed below
-    api(platform(project(':boms:geode-all-bom')))
-    compileOnly(platform(project(':boms:geode-all-bom')))
-    testCompileOnly(platform(project(':boms:geode-all-bom')))
-    // As plugin configurations that do not extend from compile,
-    // we must explicitly impose version constraints on these configurations.
-    antlr platform(project(':boms:geode-all-bom'))
-    jcaAnnotationProcessor(platform(project(':boms:geode-all-bom')))
-
-    //A dependency that contains the compiled output of the source. What is 
this for?
-    classesOutput sourceSets.main.output
-
-
-    // Source Dependencies
-    //------------------------------------------------------------
-
-    //  The antlr configuration is used by the antlr plugin, which compiles 
grammar
-    // files used by the query engine
-    antlr 'antlr:antlr'
-
-    // External
-    //------------------------------------------------------------
-
-    //Commons IO is used in persistence and management
-    api('commons-io:commons-io')
-
-    //tools.jar seems to be used by gfsh is some cases to control processes 
using
-    //the sun attach API? But this code path may not even be used?
-    compileOnly(files("${System.getProperty('java.home')}/../lib/tools.jar"))
-
-    //Find bugs is used in multiple places in the code to suppress findbugs 
warnings
-    compileOnly('com.github.stephenc.findbugs:findbugs-annotations')
-    testCompileOnly('com.github.stephenc.findbugs:findbugs-annotations')
-
-    //Spring web is used for SerializableObjectHttpMessageConverter
-    implementation('org.springframework:spring-web')
-    // find bugs leaks in from spring, needed to remove warnings.
-    compileOnly('com.google.code.findbugs:jsr305')
+  //These bom dependencies are used to constrain the versions of the 
dependencies listed below
+  api(platform(project(':boms:geode-all-bom')))
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  testCompileOnly(platform(project(':boms:geode-all-bom')))
+  // As plugin configurations that do not extend from compile,
+  // we must explicitly impose version constraints on these configurations.
+  antlr platform(project(':boms:geode-all-bom'))
+  jcaAnnotationProcessor(platform(project(':boms:geode-all-bom')))
 
-    compileOnly('org.jetbrains:annotations')
+  //A dependency that contains the compiled output of the source. What is this 
for?
+  classesOutput sourceSets.main.output
 
-    //Jgroups is a core component of our membership system.
-    implementation('org.jgroups:jgroups')
 
-    //Antlr is used by the query engine.
-    implementation('antlr:antlr')
+  // Source Dependencies
+  //------------------------------------------------------------
 
-    //Jackson annotations is used in gfsh
-    implementation('com.fasterxml.jackson.core:jackson-annotations')
+  //  The antlr configuration is used by the antlr plugin, which compiles 
grammar
+  // files used by the query engine
+  antlr 'antlr:antlr'
 
-    //Jackson databind is used in gfsh, and also in pdx
-    implementation('com.fasterxml.jackson.core:jackson-databind')
+  // External
+  //------------------------------------------------------------
 
-    //Commons validator is used to validate inet addresses in membership
-    implementation('commons-validator:commons-validator')
+  //Commons IO is used in persistence and management
+  api('commons-io:commons-io')
 
+  //tools.jar seems to be used by gfsh is some cases to control processes using
+  //the sun attach API? But this code path may not even be used?
+  compileOnly(files("${System.getProperty('java.home')}/../lib/tools.jar"))
 
-    //jaxb is used by cluster configuration
-    implementation('javax.xml.bind:jaxb-api')
+  //Find bugs is used in multiple places in the code to suppress findbugs 
warnings
+  compileOnly('com.github.stephenc.findbugs:findbugs-annotations')
+  testCompileOnly('com.github.stephenc.findbugs:findbugs-annotations')
 
-    //jaxb is used by cluster configuration
-    implementation('com.sun.xml.bind:jaxb-impl')
+  //Spring web is used for SerializableObjectHttpMessageConverter
+  implementation('org.springframework:spring-web')
+  // find bugs leaks in from spring, needed to remove warnings.
+  compileOnly('com.google.code.findbugs:jsr305')
 
-    //istack appears to be used only by jaxb, not in our code. jaxb doesn't
-    //declare this as required dependency though. It's unclear if this is 
needed
-    //Runtime
-    runtimeOnly('com.sun.istack:istack-commons-runtime') {
-        exclude group: '*'
-    }
+  compileOnly('org.jetbrains:annotations')
 
-    runtimeOnly(project(':geode-deployment:geode-deployment-legacy'))
+  //Jgroups is a core component of our membership system.
+  implementation('org.jgroups:jgroups')
 
-    //Commons lang is used in many different places in core
-    implementation('org.apache.commons:commons-lang3')
+  //Antlr is used by the query engine.
+  implementation('antlr:antlr')
 
-    //Commons modeler is used by the (deprecated) admin API
-    implementation('commons-modeler:commons-modeler') {
-        exclude module: 'commons-logging-api'
-        exclude module: 'mx4j-jmx'
-        exclude module: 'xml-apis'
-        ext.optional = true
-    }
+  //Jackson annotations is used in gfsh
+  implementation('com.fasterxml.jackson.core:jackson-annotations')
 
-    //micrometer is used for micrometer based metrics from geode geode
-    api('io.micrometer:micrometer-core')
+  //Jackson databind is used in gfsh, and also in pdx
+  implementation('com.fasterxml.jackson.core:jackson-databind')
 
+  //Commons validator is used to validate inet addresses in membership
+  implementation('commons-validator:commons-validator')
 
-    //FastUtil contains optimized collections that are used in multiple places 
in core
-    implementation('it.unimi.dsi:fastutil')
 
-    //Mail API is used by the deprecated admin API
-    implementation('javax.mail:javax.mail-api') {
-        ext.optional = true
-    }
+  //jaxb is used by cluster configuration
+  implementation('javax.xml.bind:jaxb-api')
 
-    //The resource-API is used by the JCA support.
-    api('javax.resource:javax.resource-api')
+  //jaxb is used by cluster configuration
+  implementation('com.sun.xml.bind:jaxb-impl')
 
+  //istack appears to be used only by jaxb, not in our code. jaxb doesn't
+  //declare this as required dependency though. It's unclear if this is needed
+  //Runtime
+  runtimeOnly('com.sun.istack:istack-commons-runtime') {
+    exclude group: '*'
+  }
 
-    //MX4J is used by the old admin API
-    implementation('mx4j:mx4j') {
-        ext.optional = true
-    }
-
-    //MX4J remote is used by the old admin API
-    implementation('mx4j:mx4j-remote') {
-        ext.optional = true
-    }
-
-    //MX4J tools is used by the old admin API
-    implementation('mx4j:mx4j-tools') {
-        ext.optional = true
-    }
-
-    //JNA is used for locking memory and preallocating disk files.
-    implementation('net.java.dev.jna:jna')
-    implementation('net.java.dev.jna:jna-platform')
+  runtimeOnly(project(':geode-deployment:geode-deployment-legacy'))
 
-    //JOptSimple is used by gfsh. A couple of usages have leaked into DiskStore
-    implementation('net.sf.jopt-simple:jopt-simple')
+  //Commons lang is used in many different places in core
+  implementation('org.apache.commons:commons-lang3')
 
-    //Log4j is used everywhere
-    implementation('org.apache.logging.log4j:log4j-api')
+  //Commons modeler is used by the (deprecated) admin API
+  implementation('commons-modeler:commons-modeler') {
+    exclude module: 'commons-logging-api'
+    exclude module: 'mx4j-jmx'
+    exclude module: 'xml-apis'
+    ext.optional = true
+  }
 
+  //micrometer is used for micrometer based metrics from geode geode
+  api('io.micrometer:micrometer-core')
 
-    implementation('io.swagger:swagger-annotations') {
-        ext.optional = true
-    }
 
-    runtimeOnly(project(':geode-http-service')) {
-        ext.optional = true
-    }
+  //FastUtil contains optimized collections that are used in multiple places 
in core
+  implementation('it.unimi.dsi:fastutil')
 
-    //Snappy is used for compressing values, if enabled
-    implementation('org.iq80.snappy:snappy') {
-        ext.optional = true
-    }
+  //Mail API is used by the deprecated admin API
+  implementation('javax.mail:javax.mail-api') {
+    ext.optional = true
+  }
 
-    //Shiro is used for security checks throughout geode-core
-    //API - Shiro is exposed in geode's ResourcePermission class
-    api('org.apache.shiro:shiro-core')
+  //The resource-API is used by the JCA support.
+  api('javax.resource:javax.resource-api')
 
-    //Classgraph is used by the gfsh cli, and also for function deployment 
(which happens in a server
-    //in response to a gfsh command)
-    implementation('io.github.classgraph:classgraph')
 
-    //RMIIO is used for uploading jar files and copying them between locator 
an servers
-    implementation('com.healthmarketscience.rmiio:rmiio')
+  //MX4J is used by the old admin API
+  implementation('mx4j:mx4j') {
+    ext.optional = true
+  }
 
-    //Geode-common has annotations and other pieces used geode-core
-    api(project(':geode-common'))
-    implementation(project(':geode-logging'))
-    implementation(project(':geode-membership'))
-    implementation(project(':geode-unsafe'))
-    implementation(project(':geode-serialization'))
-    implementation(project(':geode-tcp-server'))
+  //MX4J remote is used by the old admin API
+  implementation('mx4j:mx4j-remote') {
+    ext.optional = true
+  }
 
-    //geode-management currently has pieces of the public API
-    //copied into it, so it is an API dependency
-    api(project(':geode-management'))
+  //MX4J tools is used by the old admin API
+  implementation('mx4j:mx4j-tools') {
+    ext.optional = true
+  }
+
+  //JNA is used for locking memory and preallocating disk files.
+  implementation('net.java.dev.jna:jna')
+  implementation('net.java.dev.jna:jna-platform')
 
+  //JOptSimple is used by gfsh. A couple of usages have leaked into DiskStore
+  implementation('net.sf.jopt-simple:jopt-simple')
 
-    jcaImplementation(sourceSets.main.output)
+  //Log4j is used everywhere
+  implementation('org.apache.logging.log4j:log4j-api')
 
-    testImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    testImplementation(project(':geode-concurrency-test'))
-    testImplementation('org.apache.bcel:bcel')
-    testImplementation('org.assertj:assertj-core')
-    testImplementation('org.mockito:mockito-core')
-    testImplementation('com.pholser:junit-quickcheck-core')
-    testImplementation('pl.pragmatists:JUnitParams')
-    testImplementation('com.tngtech.archunit:archunit-junit4')
-    testImplementation(project(path: ':geode-core', configuration: 'raOutput'))
-
-    
testImplementation(files("${System.getProperty('java.home')}/../lib/tools.jar"))
-
-    testRuntimeOnly('commons-collections:commons-collections')
-    testRuntimeOnly('commons-configuration:commons-configuration')
-    testRuntimeOnly('commons-io:commons-io')
-    testRuntimeOnly('commons-validator:commons-validator')
-    testRuntimeOnly('com.pholser:junit-quickcheck-generators')
-
-    // Needed for JDK8, not JDK11, after nebula.facet v7.0.9
-    
integrationTestImplementation(files("${System.getProperty('java.home')}/../lib/tools.jar"))
-    integrationTestImplementation(project(':geode-gfsh'))
-    integrationTestImplementation(project(':geode-junit'))
-    integrationTestImplementation(project(':geode-dunit'))
-    integrationTestImplementation(project(':geode-log4j'))
-    integrationTestImplementation(project(':geode-concurrency-test'))
-    integrationTestImplementation('org.apache.bcel:bcel')
-    integrationTestImplementation('org.apache.logging.log4j:log4j-core')
-    integrationTestImplementation('pl.pragmatists:JUnitParams')
-    integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
-
-
-    integrationTestRuntimeOnly('org.apache.derby:derby')
-    integrationTestRuntimeOnly('xerces:xercesImpl')
-    
integrationTestRuntimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-jsr310')
-
-    distributedTestImplementation(project(':geode-gfsh'))
-    distributedTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    distributedTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-core'
-    }
-    distributedTestImplementation(project(':geode-log4j')) {
-        exclude module: 'geode-core'
-    }
-    distributedTestImplementation('pl.pragmatists:JUnitParams')
-    distributedTestImplementation('com.jayway.jsonpath:json-path-assert')
-    distributedTestImplementation('net.openhft:compiler')
 
-    distributedTestRuntimeOnly('org.apache.derby:derby')
+  implementation('io.swagger:swagger-annotations') {
+    ext.optional = true
+  }
 
+  runtimeOnly(project(':geode-http-service')) {
+    ext.optional = true
+  }
 
-    upgradeTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-core'
-    }
+  //Snappy is used for compressing values, if enabled
+  implementation('org.iq80.snappy:snappy') {
+    ext.optional = true
+  }
 
-    upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
-    upgradeTestRuntimeOnly(project(':geode-log4j'))
-    upgradeTestRuntimeOnly(project(':geode-old-client-support'))
+  //Shiro is used for security checks throughout geode-core
+  //API - Shiro is exposed in geode's ResourcePermission class
+  api('org.apache.shiro:shiro-core')
 
-    performanceTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    performanceTestImplementation(project(':geode-log4j'))
+  //Classgraph is used by the gfsh cli, and also for function deployment 
(which happens in a server
+  //in response to a gfsh command)
+  implementation('io.github.classgraph:classgraph')
 
-    jmhImplementation('org.jctools:jctools-core:3.3.0')
+  //RMIIO is used for uploading jar files and copying them between locator an 
servers
+  implementation('com.healthmarketscience.rmiio:rmiio')
+
+  //Geode-common has annotations and other pieces used geode-core
+  api(project(':geode-common'))
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-membership'))
+  implementation(project(':geode-unsafe'))
+  implementation(project(':geode-serialization'))
+  implementation(project(':geode-tcp-server'))
+
+  //geode-management currently has pieces of the public API
+  //copied into it, so it is an API dependency
+  api(project(':geode-management'))
+
+
+  jcaImplementation(sourceSets.main.output)
+
+  testImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  testImplementation(project(':geode-concurrency-test'))
+  testImplementation('org.apache.bcel:bcel')
+  testImplementation('org.assertj:assertj-core')
+  testImplementation('org.mockito:mockito-core')
+  testImplementation('com.pholser:junit-quickcheck-core')
+  testImplementation('pl.pragmatists:JUnitParams')
+  testImplementation('com.tngtech.archunit:archunit-junit4')
+  testImplementation(project(path: ':geode-core', configuration: 'raOutput'))
+
+  
testImplementation(files("${System.getProperty('java.home')}/../lib/tools.jar"))
+
+  testRuntimeOnly('commons-collections:commons-collections')
+  testRuntimeOnly('commons-configuration:commons-configuration')
+  testRuntimeOnly('commons-io:commons-io')
+  testRuntimeOnly('commons-validator:commons-validator')
+  testRuntimeOnly('com.pholser:junit-quickcheck-generators')
+
+  // Needed for JDK8, not JDK11, after nebula.facet v7.0.9
+  
integrationTestImplementation(files("${System.getProperty('java.home')}/../lib/tools.jar"))
+  integrationTestImplementation(project(':geode-gfsh'))
+  integrationTestImplementation(project(':geode-junit'))
+  integrationTestImplementation(project(':geode-dunit'))
+  integrationTestImplementation(project(':geode-log4j'))
+  integrationTestImplementation(project(':geode-concurrency-test'))
+  integrationTestImplementation('org.apache.bcel:bcel')
+  integrationTestImplementation('org.apache.logging.log4j:log4j-core')
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
+  integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
+
+
+  integrationTestRuntimeOnly('org.apache.derby:derby')
+  integrationTestRuntimeOnly('xerces:xercesImpl')
+  
integrationTestRuntimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-jsr310')
+
+  distributedTestImplementation(project(':geode-gfsh'))
+  distributedTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation(project(':geode-log4j')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
+  distributedTestImplementation('com.jayway.jsonpath:json-path-assert')
+  distributedTestImplementation('net.openhft:compiler')
+
+  distributedTestRuntimeOnly('org.apache.derby:derby')
+
+
+  upgradeTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-core'
+  }
+
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
+  upgradeTestRuntimeOnly(project(':geode-log4j'))
+  upgradeTestRuntimeOnly(project(':geode-old-client-support'))
+
+  performanceTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  performanceTestImplementation(project(':geode-log4j'))
+
+  jmhImplementation('org.jctools:jctools-core:3.3.0')
 }
 
 tasks.eclipse.dependsOn(generateGrammarSource)
 
 distributedTest {
-    // Some tests have inner tests that should be ignored
-    exclude "**/*\$*.class"
+  // Some tests have inner tests that should be ignored
+  exclude "**/*\$*.class"
 }
 
 rootProject.generate.dependsOn(generateGrammarSource)
diff --git a/geode-deployment/geode-deployment-legacy/build.gradle 
b/geode-deployment/geode-deployment-legacy/build.gradle
index 57f93d0..d19a662 100644
--- a/geode-deployment/geode-deployment-legacy/build.gradle
+++ b/geode-deployment/geode-deployment-legacy/build.gradle
@@ -21,17 +21,17 @@ apply from: 
"${project.projectDir}/../../gradle/publish-java.gradle"
 apply from: "${project.projectDir}/../../gradle/warnings.gradle"
 
 dependencies {
-    implementation(platform(project(':boms:geode-all-bom')))
-    compileOnly(platform(project(':boms:geode-all-bom')))
+  implementation(platform(project(':boms:geode-all-bom')))
+  compileOnly(platform(project(':boms:geode-all-bom')))
 
-    implementation(project(':geode-core'))
-    implementation(project(':geode-common'))
-    implementation('io.swagger:swagger-annotations')
+  implementation(project(':geode-core'))
+  implementation(project(':geode-common'))
+  implementation('io.swagger:swagger-annotations')
 
-    compileOnly(project(':geode-logging'))
-    compileOnly('com.fasterxml.jackson.core:jackson-databind')
+  compileOnly(project(':geode-logging'))
+  compileOnly('com.fasterxml.jackson.core:jackson-databind')
 
-    testImplementation(project(':geode-junit'))
+  testImplementation(project(':geode-junit'))
 
-    integrationTestImplementation(project(':geode-junit'))
+  integrationTestImplementation(project(':geode-junit'))
 }
diff --git a/geode-dunit/build.gradle b/geode-dunit/build.gradle
index 6261dbb..23a543b 100755
--- a/geode-dunit/build.gradle
+++ b/geode-dunit/build.gradle
@@ -73,4 +73,3 @@ distributedTest {
   // Some tests have inner tests that should be ignored
   exclude "**/*\$*.class"
 }
-
diff --git a/geode-gfsh/build.gradle b/geode-gfsh/build.gradle
index e7c23ae..1a70157 100644
--- a/geode-gfsh/build.gradle
+++ b/geode-gfsh/build.gradle
@@ -21,66 +21,66 @@ apply from: 
"${project.projectDir}/../gradle/publish-java.gradle"
 apply from: "${project.projectDir}/../gradle/warnings.gradle"
 
 dependencies {
-    api(platform(project(':boms:geode-all-bom')))
+  api(platform(project(':boms:geode-all-bom')))
 
-    api(project(':geode-core'))
-    api(project(':geode-common'))
+  api(project(':geode-core'))
+  api(project(':geode-common'))
 
-    implementation(project(':geode-logging'))
-    implementation(project(':geode-membership'))
-    implementation(project(':geode-serialization'))
-    implementation(project(':geode-unsafe'))
-    implementation('org.springframework:spring-web')
-    implementation('org.apache.commons:commons-lang3')
-    implementation('com.healthmarketscience.rmiio:rmiio')
-    implementation('com.fasterxml.jackson.core:jackson-databind')
-    implementation('io.swagger:swagger-annotations')
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-membership'))
+  implementation(project(':geode-serialization'))
+  implementation(project(':geode-unsafe'))
+  implementation('org.springframework:spring-web')
+  implementation('org.apache.commons:commons-lang3')
+  implementation('com.healthmarketscience.rmiio:rmiio')
+  implementation('com.fasterxml.jackson.core:jackson-databind')
+  implementation('io.swagger:swagger-annotations')
 
-//    //Find bugs is used in multiple places in the code to suppress findbugs 
warnings
-    testImplementation('com.github.stephenc.findbugs:findbugs-annotations')
-    testImplementation('org.springframework:spring-test')
-    testImplementation(project(':geode-junit'))
+  //    //Find bugs is used in multiple places in the code to suppress 
findbugs warnings
+  testImplementation('com.github.stephenc.findbugs:findbugs-annotations')
+  testImplementation('org.springframework:spring-test')
+  testImplementation(project(':geode-junit'))
 
-    integrationTestImplementation(project(':geode-dunit'))
-    integrationTestImplementation('pl.pragmatists:JUnitParams')
-    integrationTestRuntimeOnly('org.apache.derby:derby')
-    
-    distributedTestImplementation(project(':geode-dunit'))
-    distributedTestImplementation('pl.pragmatists:JUnitParams')
-    distributedTestRuntimeOnly('org.apache.derby:derby')
+  integrationTestImplementation(project(':geode-dunit'))
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
+  integrationTestRuntimeOnly('org.apache.derby:derby')
 
-    testCompileOnly(platform(project(':boms:geode-all-bom')))
-    testCompileOnly('io.swagger:swagger-annotations')
+  distributedTestImplementation(project(':geode-dunit'))
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
+  distributedTestRuntimeOnly('org.apache.derby:derby')
 
-    upgradeTestImplementation(project(':geode-junit'))
-    upgradeTestImplementation(project(':geode-dunit'))
+  testCompileOnly(platform(project(':boms:geode-all-bom')))
+  testCompileOnly('io.swagger:swagger-annotations')
 
-    upgradeTestImplementation('org.awaitility:awaitility')
-    upgradeTestImplementation('org.assertj:assertj-core')
-    upgradeTestImplementation('junit:junit')
-    upgradeTestImplementation('xml-apis:xml-apis:2.0.2')
-    upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
+  upgradeTestImplementation(project(':geode-junit'))
+  upgradeTestImplementation(project(':geode-dunit'))
 
-    implementation('net.sf.jopt-simple:jopt-simple')
+  upgradeTestImplementation('org.awaitility:awaitility')
+  upgradeTestImplementation('org.assertj:assertj-core')
+  upgradeTestImplementation('junit:junit')
+  upgradeTestImplementation('xml-apis:xml-apis:2.0.2')
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
 
-    //Log4j is used everywhere
-    implementation('org.apache.logging.log4j:log4j-api')
+  implementation('net.sf.jopt-simple:jopt-simple')
 
-    //Spring core is used by the the gfsh cli
-    implementation('org.springframework:spring-core') {
-        ext.optional = true
-    }
+  //Log4j is used everywhere
+  implementation('org.apache.logging.log4j:log4j-api')
 
-    //Spring shell is used by the gfsh cli. It's unclear why we can exclude
-    //So many transitive dependencies - are these really optional?
-    //GfshCommand is a public API class that depends on spring shell
-    api('org.springframework.shell:spring-shell') {
-        exclude module: 'aopalliance'
-        exclude module: 'asm'
-        exclude module: 'cglib'
-        exclude module: 'guava'
-        exclude module: 'spring-aop'
-        exclude module: 'spring-context-support'
-        exclude module: 'spring-core'
-    }
+  //Spring core is used by the the gfsh cli
+  implementation('org.springframework:spring-core') {
+    ext.optional = true
+  }
+
+  //Spring shell is used by the gfsh cli. It's unclear why we can exclude
+  //So many transitive dependencies - are these really optional?
+  //GfshCommand is a public API class that depends on spring shell
+  api('org.springframework.shell:spring-shell') {
+    exclude module: 'aopalliance'
+    exclude module: 'asm'
+    exclude module: 'cglib'
+    exclude module: 'guava'
+    exclude module: 'spring-aop'
+    exclude module: 'spring-context-support'
+    exclude module: 'spring-core'
+  }
 }
diff --git a/geode-http-service/build.gradle b/geode-http-service/build.gradle
index b2b772d..c932659 100755
--- a/geode-http-service/build.gradle
+++ b/geode-http-service/build.gradle
@@ -28,7 +28,7 @@ dependencies {
   implementation('org.eclipse.jetty:jetty-webapp')
   implementation('org.eclipse.jetty:jetty-server')
   implementation('org.apache.commons:commons-lang3')
-  
+
   compileOnly(project(':geode-core'))
   compileOnly(project(':geode-common')) {
     exclude module: 'junit'
diff --git a/geode-jmh/build.gradle b/geode-jmh/build.gradle
index 37e0284..f953dcb 100644
--- a/geode-jmh/build.gradle
+++ b/geode-jmh/build.gradle
@@ -34,17 +34,21 @@ dependencies {
 jar {
   manifest {
     attributes(
-            'Premain-Class': 
'org.apache.geode.benchmark.jmh.profilers.ObjectSizeAgent'
-    )
+        'Premain-Class': 
'org.apache.geode.benchmark.jmh.profilers.ObjectSizeAgent'
+        )
   }
 }
 
 test {
-  jvmArgs += ['-javaagent:' + jar.outputs.files.singleFile]
+  jvmArgs += [
+    '-javaagent:' + jar.outputs.files.singleFile
+  ]
   dependsOn jar
 }
 
 repeatUnitTest {
-  jvmArgs += ['-javaagent:' + jar.outputs.files.singleFile]
+  jvmArgs += [
+    '-javaagent:' + jar.outputs.files.singleFile
+  ]
   dependsOn jar
 }
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 54bade5..51bf32e 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -50,14 +50,14 @@ dependencies {
   api('com.google.guava:guava')
   api('com.jayway.jsonpath:json-path')
   api('commons-io:commons-io')
-  
+
   api('org.apache.commons:commons-lang3')
   api('org.apache.logging.log4j:log4j-api')
-  
+
   api('org.awaitility:awaitility')
   api('org.hamcrest:hamcrest')
   api('io.micrometer:micrometer-core')
-  
+
   api('org.skyscreamer:jsonassert')
 
   testImplementation('pl.pragmatists:JUnitParams')
diff --git a/geode-log4j/build.gradle b/geode-log4j/build.gradle
index 257de4c..9eedad0 100644
--- a/geode-log4j/build.gradle
+++ b/geode-log4j/build.gradle
@@ -79,4 +79,3 @@ dependencies {
   distributedTestImplementation('org.mockito:mockito-core')
   distributedTestImplementation('pl.pragmatists:JUnitParams')
 }
-
diff --git a/geode-logging/build.gradle b/geode-logging/build.gradle
index c036c72..6a32177 100644
--- a/geode-logging/build.gradle
+++ b/geode-logging/build.gradle
@@ -21,46 +21,44 @@ apply from: 
"${project.projectDir}/../gradle/publish-java.gradle"
 apply from: "${project.projectDir}/../gradle/warnings.gradle"
 
 dependencies {
-    api(platform(project(':boms:geode-all-bom')))
+  api(platform(project(':boms:geode-all-bom')))
 
-    // Geode-common has annotations and other pieces used by geode-logging
-    api(project(':geode-common'))
+  // Geode-common has annotations and other pieces used by geode-logging
+  api(project(':geode-common'))
 
-    api('org.apache.logging.log4j:log4j-api')
+  api('org.apache.logging.log4j:log4j-api')
 
-    testImplementation(project(':geode-junit')) {
-        exclude module: 'geode-logging'
-    }
-    testImplementation(project(':geode-concurrency-test'))
+  testImplementation(project(':geode-junit')) {
+    exclude module: 'geode-logging'
+  }
+  testImplementation(project(':geode-concurrency-test'))
 
-    testImplementation('org.mockito:mockito-core')
-    testImplementation('junit:junit')
-    testImplementation('org.assertj:assertj-core')
+  testImplementation('org.mockito:mockito-core')
+  testImplementation('junit:junit')
+  testImplementation('org.assertj:assertj-core')
 
 
-    integrationTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-logging'
-    }
-    integrationTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-logging'
-    }
-    integrationTestImplementation('pl.pragmatists:JUnitParams')
-    distributedTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-logging'
-    }
-    distributedTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-logging'
-    }
-    distributedTestImplementation('pl.pragmatists:JUnitParams')
-    upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
+  integrationTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-logging'
+  }
+  integrationTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-logging'
+  }
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
+  distributedTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-logging'
+  }
+  distributedTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-logging'
+  }
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
 
-    testImplementation('com.tngtech.archunit:archunit-junit4')
+  testImplementation('com.tngtech.archunit:archunit-junit4')
 
 }
 
 distributedTest {
-    // Some tests have inner tests that should be ignored
-    exclude "**/*\$*.class"
+  // Some tests have inner tests that should be ignored
+  exclude "**/*\$*.class"
 }
-
-
diff --git a/geode-lucene/geode-lucene-test/build.gradle 
b/geode-lucene/geode-lucene-test/build.gradle
index cee95ae..4282886 100644
--- a/geode-lucene/geode-lucene-test/build.gradle
+++ b/geode-lucene/geode-lucene-test/build.gradle
@@ -32,4 +32,3 @@ dependencies {
   implementation('org.apache.lucene:lucene-test-framework')
   implementation('org.mockito:mockito-core')
 }
-
diff --git a/geode-membership/build.gradle b/geode-membership/build.gradle
index 5afe7a0..da30317 100644
--- a/geode-membership/build.gradle
+++ b/geode-membership/build.gradle
@@ -20,57 +20,56 @@ apply from: 
"${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
-    api(platform(project(':boms:geode-all-bom')))
-    compileOnly(platform(project(':boms:geode-all-bom')))
+  api(platform(project(':boms:geode-all-bom')))
+  compileOnly(platform(project(':boms:geode-all-bom')))
 
-    // Geode-common has annotations and other pieces used by geode-logging
-    api(project(':geode-common'))
+  // Geode-common has annotations and other pieces used by geode-logging
+  api(project(':geode-common'))
 
-    implementation(project(':geode-logging'))
-    implementation(project(':geode-serialization'))
-    implementation(project(':geode-tcp-server'))
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-serialization'))
+  implementation(project(':geode-tcp-server'))
 
-    implementation('org.apache.logging.log4j:log4j-api')
-    implementation('org.jgroups:jgroups')
-    implementation('org.apache.commons:commons-lang3')
-    implementation('it.unimi.dsi:fastutil')
-    implementation('com.github.stephenc.findbugs:findbugs-annotations')
-    //Commons validator is used to validate inet addresses in membership
-    implementation('commons-validator:commons-validator')
-    //Jgroups is a core component of our membership system.
-    implementation('org.jgroups:jgroups')
+  implementation('org.apache.logging.log4j:log4j-api')
+  implementation('org.jgroups:jgroups')
+  implementation('org.apache.commons:commons-lang3')
+  implementation('it.unimi.dsi:fastutil')
+  implementation('com.github.stephenc.findbugs:findbugs-annotations')
+  //Commons validator is used to validate inet addresses in membership
+  implementation('commons-validator:commons-validator')
+  //Jgroups is a core component of our membership system.
+  implementation('org.jgroups:jgroups')
 
-    compileOnly('org.jetbrains:annotations')
+  compileOnly('org.jetbrains:annotations')
 
 
-    testImplementation(project(':geode-junit'))
-    testImplementation(project(':geode-concurrency-test'))
+  testImplementation(project(':geode-junit'))
+  testImplementation(project(':geode-concurrency-test'))
 
-    testImplementation('org.mockito:mockito-core')
-    testImplementation('junit:junit')
-    testImplementation('org.assertj:assertj-core')
-    testImplementation('com.tngtech.archunit:archunit-junit4')
+  testImplementation('org.mockito:mockito-core')
+  testImplementation('junit:junit')
+  testImplementation('org.assertj:assertj-core')
+  testImplementation('com.tngtech.archunit:archunit-junit4')
 
 
 
-    integrationTestImplementation(project(':geode-junit'))
-    integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
-    integrationTestImplementation('pl.pragmatists:JUnitParams')
+  integrationTestImplementation(project(':geode-junit'))
+  integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
 
-    integrationTestRuntimeOnly('org.apache.logging.log4j:log4j-core')
+  integrationTestRuntimeOnly('org.apache.logging.log4j:log4j-core')
 
 
-    distributedTestImplementation(project(':geode-junit'))
-    distributedTestImplementation(project(':geode-dunit'))
-    distributedTestImplementation('pl.pragmatists:JUnitParams')
+  distributedTestImplementation(project(':geode-junit'))
+  distributedTestImplementation(project(':geode-dunit'))
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
 
 
 
-    upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
 }
 
 distributedTest {
-    // Some tests have inner tests that should be ignored
-    exclude "**/*\$*.class"
+  // Some tests have inner tests that should be ignored
+  exclude "**/*\$*.class"
 }
-
diff --git a/geode-old-client-support/build.gradle 
b/geode-old-client-support/build.gradle
index 1ceb25a..ee47e2a 100644
--- a/geode-old-client-support/build.gradle
+++ b/geode-old-client-support/build.gradle
@@ -32,4 +32,3 @@ dependencies {
 
   distributedTestImplementation('junit:junit')
 }
-
diff --git a/geode-pulse/geode-pulse-test/build.gradle 
b/geode-pulse/geode-pulse-test/build.gradle
index d161ab6..21b38db 100644
--- a/geode-pulse/geode-pulse-test/build.gradle
+++ b/geode-pulse/geode-pulse-test/build.gradle
@@ -42,4 +42,3 @@ dependencies {
   implementation('org.seleniumhq.selenium:selenium-chrome-driver')
   implementation('org.seleniumhq.selenium:selenium-support')
 }
-
diff --git a/geode-serialization/build.gradle b/geode-serialization/build.gradle
index 14c1cfd..b54ca9b 100755
--- a/geode-serialization/build.gradle
+++ b/geode-serialization/build.gradle
@@ -68,5 +68,3 @@ distributedTest {
   // Some tests have inner tests that should be ignored
   exclude "**/*\$*.class"
 }
-
-
diff --git a/geode-tcp-server/build.gradle b/geode-tcp-server/build.gradle
index 981db88..0a9e583 100644
--- a/geode-tcp-server/build.gradle
+++ b/geode-tcp-server/build.gradle
@@ -19,29 +19,29 @@ apply from: 
"${project.projectDir}/../gradle/publish-java.gradle"
 apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 
 dependencies {
-    api(platform(project(':boms:geode-all-bom')))
+  api(platform(project(':boms:geode-all-bom')))
 
-    implementation(project(':geode-logging'))
-    implementation(project(':geode-serialization'))
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-serialization'))
 
-    implementation('org.apache.logging.log4j:log4j-api')
+  implementation('org.apache.logging.log4j:log4j-api')
 
-    //Commons validator is used to validate inet addresses
-    implementation('commons-validator:commons-validator')
-    testImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    testImplementation('org.assertj:assertj-core')
+  //Commons validator is used to validate inet addresses
+  implementation('commons-validator:commons-validator')
+  testImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  testImplementation('org.assertj:assertj-core')
 
-    testImplementation('com.tngtech.archunit:archunit-junit4')
+  testImplementation('com.tngtech.archunit:archunit-junit4')
 
-    integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
-    integrationTestImplementation('org.mockito:mockito-core')
-    integrationTestImplementation(project(':geode-junit'))
+  integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
+  integrationTestImplementation('org.mockito:mockito-core')
+  integrationTestImplementation(project(':geode-junit'))
 
-    upgradeTestImplementation(project(':geode-gfsh'))
-    upgradeTestImplementation(project(':geode-dunit'))
-    upgradeTestImplementation(project(':geode-membership'))
+  upgradeTestImplementation(project(':geode-gfsh'))
+  upgradeTestImplementation(project(':geode-dunit'))
+  upgradeTestImplementation(project(':geode-membership'))
 
-    upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 
'classpathsOutput'))
 }
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index 3cf3e65..f7446aa 100644
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -81,4 +81,4 @@ war {
 
 artifacts {
   war tasks.war
-}
\ No newline at end of file
+}
diff --git a/gradle/spotless.gradle b/gradle/spotless.gradle
index 13cc888..81e092a 100644
--- a/gradle/spotless.gradle
+++ b/gradle/spotless.gradle
@@ -131,21 +131,23 @@ spotless {
     // Spotless will not run on unchanged files unless this number changes.
     bumpThisNumberIfACustomStepChanges(project.ext.'spotless-file-hash')
 
+    greclipse()
+
     custom 'Use single-quote in project directives.', {
       it.replaceAll(/project\(":([^"]*)"\)$/, 'project(\':$1\')')
     }
 
     custom 'Use parenthesis in single-line gradle dependency declarations.', {
-      it.replaceAll(/\n(\s*\S*(?:[cC]ompile|[rR]untime)(?:Only)?) 
(?!\()([^{\n]*)\n/, { original, declaration, dep ->
+      
it.replaceAll(/\n(\s*\S*(?:[cC]ompile|[rR]untime|[iI]mplementation|[tT]est)(?:Only)?)
 (?!\()([^{\n]*)\n/, { original, declaration, dep ->
         "\n${declaration}(${dep})\n"
       })
     }
 
     custom 'Do not pad spaces before parenthesis in gradle dependency 
declaration.', {
-      it.replaceAll(/\n(\s*\S*(?:[cC]ompile|[rR]untime)(?:Only)?) +\(/, 
'\n$1(')
+      
it.replaceAll(/\n(\s*\S*(?:[cC]ompile|[rR]untime|[iI]mplementation|[tT]est)(?:Only)?)
 +\(/, '\n$1(')
     }
-
     indentWithSpaces(2)
+    endWithNewline()
   }
 }
 
diff --git a/static-analysis/pmd-rules/build.gradle 
b/static-analysis/pmd-rules/build.gradle
index 84f3a95..1113849 100644
--- a/static-analysis/pmd-rules/build.gradle
+++ b/static-analysis/pmd-rules/build.gradle
@@ -19,7 +19,7 @@ apply from: 
"${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 
 dependencies {
-    implementation(platform(project(':boms:geode-all-bom')))
-    implementation('net.sourceforge.pmd:pmd-java')
-    testImplementation('net.sourceforge.pmd:pmd-test')
+  implementation(platform(project(':boms:geode-all-bom')))
+  implementation('net.sourceforge.pmd:pmd-java')
+  testImplementation('net.sourceforge.pmd:pmd-test')
 }

Reply via email to