You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rh...@apache.org on 2021/10/20 22:57:18 UTC

[geode] branch revert-6973-unused-deps created (now c63637b)

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

rhoughton pushed a change to branch revert-6973-unused-deps
in repository https://gitbox.apache.org/repos/asf/geode.git.


      at c63637b  Revert "Declare dependencies we use, drop unused dependencies (#6973)"

This branch includes the following new commits:

     new c63637b  Revert "Declare dependencies we use, drop unused dependencies (#6973)"

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[geode] 01/01: Revert "Declare dependencies we use, drop unused dependencies (#6973)"

Posted by rh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rhoughton pushed a commit to branch revert-6973-unused-deps
in repository https://gitbox.apache.org/repos/asf/geode.git

commit c63637b9d32576a8bf7bbebe20ad36d52458dfdc
Author: Robert Houghton <rh...@pivotal.io>
AuthorDate: Wed Oct 20 15:56:19 2021 -0700

    Revert "Declare dependencies we use, drop unused dependencies (#6973)"
    
    This reverts commit 9aa120e49604f3b0cb1875b811117253837552e5.
---
 .../src/test/resources/expected-pom.xml            |  88 +++--------
 build.gradle                                       |   2 +-
 .../gradle/plugins/DependencyConstraints.groovy    |  25 +--
 .../release/session/bin/modify_war                 |   1 +
 .../geode-modules-session-internal/build.gradle    |   1 -
 extensions/geode-modules-session/build.gradle      |  16 +-
 extensions/geode-modules-test/build.gradle         |  20 +--
 extensions/geode-modules-tomcat7/build.gradle      |   6 -
 extensions/geode-modules-tomcat8/build.gradle      |  17 --
 extensions/geode-modules-tomcat9/build.gradle      |   9 --
 extensions/geode-modules/build.gradle              |  31 +---
 .../src/test/resources/expected-pom.xml            |   6 +-
 geode-assembly/build.gradle                        |  66 ++------
 geode-assembly/geode-assembly-test/build.gradle    |  19 +--
 .../integrationTest/resources/assembly_content.txt |  14 +-
 .../resources/dependency_classpath.txt             |  35 ++---
 .../integrationTest/resources/expected_jars.txt    |   3 +-
 geode-common/build.gradle                          |   2 -
 geode-common/src/test/resources/expected-pom.xml   |  10 --
 geode-concurrency-test/build.gradle                |   1 +
 .../src/test/resources/expected-pom.xml            |   5 +
 geode-connectors/build.gradle                      |  63 ++++----
 .../src/test/resources/expected-pom.xml            |  11 +-
 geode-core/build.gradle                            | 175 +++++++--------------
 geode-core/src/test/resources/expected-pom.xml     | 137 +++++-----------
 geode-cq/build.gradle                              |  10 +-
 .../geode-deployment-legacy/build.gradle           |  18 +--
 .../src/test/resources/expected-pom.xml            |   9 +-
 geode-dunit/build.gradle                           |  26 ++-
 geode-dunit/src/test/resources/expected-pom.xml    |  35 ++---
 geode-for-redis/build.gradle                       |  71 +++------
 .../src/test/resources/expected-pom.xml            |  23 +--
 geode-gfsh/build.gradle                            |  80 ++++------
 geode-gfsh/src/test/resources/expected-pom.xml     |  38 +----
 geode-http-service/build.gradle                    |   7 +-
 .../src/test/resources/expected-pom.xml            |  10 --
 geode-junit/build.gradle                           |  12 +-
 geode-junit/src/test/resources/expected-pom.xml    |  25 +--
 geode-log4j/build.gradle                           |  34 ++--
 geode-log4j/src/test/resources/expected-pom.xml    |   5 -
 geode-logging/build.gradle                         |  20 ++-
 geode-lucene/build.gradle                          |  23 +--
 geode-lucene/geode-lucene-test/build.gradle        |  10 +-
 geode-lucene/src/test/resources/expected-pom.xml   |   5 -
 geode-management/build.gradle                      |  28 ++--
 .../src/test/resources/expected-pom.xml            |  21 +--
 geode-membership/build.gradle                      |  30 ++--
 .../src/test/resources/expected-pom.xml            |   2 +-
 geode-memcached/build.gradle                       |  12 +-
 geode-pulse/build.gradle                           |  41 ++---
 geode-pulse/geode-pulse-test/build.gradle          |  21 ++-
 geode-rebalancer/build.gradle                      |  12 +-
 geode-serialization/build.gradle                   |  18 ++-
 .../src/test/resources/expected-pom.xml            |   7 +-
 geode-tcp-server/build.gradle                      |  15 +-
 geode-web-api/build.gradle                         |  30 ++--
 geode-web/build.gradle                             |  20 +--
 gradle/lint.gradle                                 |  19 +--
 static-analysis/pmd-rules/build.gradle             |   3 -
 59 files changed, 505 insertions(+), 998 deletions(-)

diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index 42722ab..a5cbbde 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -118,9 +118,9 @@
         <version>2.3.2</version>
       </dependency>
       <dependency>
-        <groupId>com.vaadin.external.google</groupId>
-        <artifactId>android-json</artifactId>
-        <version>0.0.20131108.vaadin1</version>
+        <groupId>com.tngtech.archunit</groupId>
+        <artifactId>archunit-junit4</artifactId>
+        <version>0.15.0</version>
       </dependency>
       <dependency>
         <groupId>com.zaxxer</groupId>
@@ -208,6 +208,11 @@
         <version>1.6.2</version>
       </dependency>
       <dependency>
+        <groupId>it.unimi.dsi</groupId>
+        <artifactId>fastutil</artifactId>
+        <version>8.5.4</version>
+      </dependency>
+      <dependency>
         <groupId>javax.annotation</groupId>
         <artifactId>javax.annotation-api</artifactId>
         <version>1.3.2</version>
@@ -238,11 +243,6 @@
         <version>3.1.0</version>
       </dependency>
       <dependency>
-        <groupId>javax.transaction</groupId>
-        <artifactId>javax.transaction-api</artifactId>
-        <version>1.3</version>
-      </dependency>
-      <dependency>
         <groupId>javax.xml.bind</groupId>
         <artifactId>jaxb-api</artifactId>
         <version>2.3.1</version>
@@ -358,6 +358,11 @@
         <version>2.6.2</version>
       </dependency>
       <dependency>
+        <groupId>org.codehaus.cargo</groupId>
+        <artifactId>cargo-core-uberjar</artifactId>
+        <version>1.9.7</version>
+      </dependency>
+      <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-server</artifactId>
         <version>9.4.43.v20210629</version>
@@ -513,16 +518,6 @@
         <version>1.0</version>
       </dependency>
       <dependency>
-        <groupId>com.tngtech.archunit</groupId>
-        <artifactId>archunit-junit4</artifactId>
-        <version>0.15.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.tngtech.archunit</groupId>
-        <artifactId>archunit</artifactId>
-        <version>0.15.0</version>
-      </dependency>
-      <dependency>
         <groupId>io.springfox</groupId>
         <artifactId>springfox-swagger-ui</artifactId>
         <version>2.9.2</version>
@@ -533,21 +528,6 @@
         <version>2.9.2</version>
       </dependency>
       <dependency>
-        <groupId>it.unimi.dsi</groupId>
-        <artifactId>fastutil</artifactId>
-        <version>8.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>it.unimi.dsi</groupId>
-        <artifactId>fastutil-core</artifactId>
-        <version>8.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>it.unimi.dsi</groupId>
-        <artifactId>fastutil-extra</artifactId>
-        <version>8.5.4</version>
-      </dependency>
-      <dependency>
         <groupId>mx4j</groupId>
         <artifactId>mx4j-remote</artifactId>
         <version>3.0.2</version>
@@ -608,26 +588,6 @@
         <version>6.6.6</version>
       </dependency>
       <dependency>
-        <groupId>org.codehaus.cargo</groupId>
-        <artifactId>cargo-core-uberjar</artifactId>
-        <version>1.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.cargo</groupId>
-        <artifactId>cargo-core-api-container</artifactId>
-        <version>1.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.cargo</groupId>
-        <artifactId>cargo-core-api-generic</artifactId>
-        <version>1.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.cargo</groupId>
-        <artifactId>cargo-core-api-util</artifactId>
-        <version>1.9.7</version>
-      </dependency>
-      <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest</artifactId>
         <version>2.2</version>
@@ -679,11 +639,6 @@
       </dependency>
       <dependency>
         <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-crypto</artifactId>
-        <version>5.5.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-core</artifactId>
         <version>5.5.2</version>
       </dependency>
@@ -744,11 +699,6 @@
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
-        <artifactId>spring-jcl</artifactId>
-        <version>5.3.9</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
         <artifactId>spring-oxm</artifactId>
         <version>5.3.9</version>
       </dependency>
@@ -804,6 +754,12 @@
       </dependency>
       <dependency>
         <groupId>org.apache.geode</groupId>
+        <artifactId>geode-for-redis</artifactId>
+        <version>${version}</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
         <artifactId>geode-common</artifactId>
         <version>${version}</version>
         <scope>compile</scope>
@@ -840,12 +796,6 @@
       </dependency>
       <dependency>
         <groupId>org.apache.geode</groupId>
-        <artifactId>geode-for-redis</artifactId>
-        <version>${version}</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.geode</groupId>
         <artifactId>geode-gfsh</artifactId>
         <version>${version}</version>
         <scope>compile</scope>
diff --git a/build.gradle b/build.gradle
index f1dbd0e..77624dd 100755
--- a/build.gradle
+++ b/build.gradle
@@ -23,7 +23,7 @@ plugins {
   id "eclipse"
   id "com.diffplug.spotless" version "5.14.3" apply false
   id "com.github.ben-manes.versions" version "0.39.0" apply false
-  id "nebula.lint" version "17.2.3" apply false
+  id "nebula.lint" version "17.1.1" apply false
   id "com.palantir.docker" version "0.28.0" apply false
   id "io.spring.dependency-management" version "1.0.11.RELEASE" apply false
   id "org.ajoberstar.grgit" version "4.1.0" apply false
diff --git a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index ed9bd91..89e11bb 100644
--- a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -103,7 +103,7 @@ class DependencyConstraints implements Plugin<Project> {
         api(group: 'com.sun.istack', name: 'istack-commons-runtime', version: '4.0.1')
         api(group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2')
         api(group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.2')
-        api(group: 'com.vaadin.external.google', name: 'android-json', version: '0.0.20131108.vaadin1')
+        api(group: 'com.tngtech.archunit', name:'archunit-junit4', version: '0.15.0')
         api(group: 'com.zaxxer', name: 'HikariCP', version: '4.0.3')
         api(group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4')
         api(group: 'commons-codec', name: 'commons-codec', version: '1.15')
@@ -122,13 +122,13 @@ class DependencyConstraints implements Plugin<Project> {
         api(group: 'io.micrometer', name: 'micrometer-core', version: get('micrometer.version'))
         api(group: 'io.netty', name: 'netty-all', version: '4.1.67.Final')
         api(group: 'io.swagger', name: 'swagger-annotations', version: '1.6.2')
+        api(group: 'it.unimi.dsi', name: 'fastutil', version: get('fastutil.version'))
         api(group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2')
         api(group: 'javax.annotation', name: 'jsr250-api', version: '1.0')
         api(group: 'javax.ejb', name: 'ejb-api', version: '3.0')
         api(group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2')
         api(group: 'javax.resource', name: 'javax.resource-api', version: '1.7.1')
         api(group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0')
-        api(group: 'javax.transaction', name: 'javax.transaction-api', version: '1.3')
         api(group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1')
         api(group: 'joda-time', name: 'joda-time', version: '2.10.9')
         api(group: 'junit', name: 'junit', version: get('junit.version'))
@@ -152,6 +152,7 @@ class DependencyConstraints implements Plugin<Project> {
         api(group: 'org.assertj', name: 'assertj-core', version: '3.20.2')
         api(group: 'org.awaitility', name: 'awaitility', version: '4.1.0')
         api(group: 'org.buildobjects', name: 'jproc', version: '2.6.2')
+        api(group: 'org.codehaus.cargo', name: 'cargo-core-uberjar', version: '1.9.7')
         api(group: 'org.eclipse.jetty', name: 'jetty-server', version: get('jetty.version'))
         api(group: 'org.eclipse.jetty', name: 'jetty-webapp', version: get('jetty.version'))
         api(group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1')
@@ -198,22 +199,11 @@ class DependencyConstraints implements Plugin<Project> {
       entry('junit-quickcheck-generators')
     }
 
-    dependencySet(group: 'com.tngtech.archunit', version: '0.15.0') {
-      entry('archunit-junit4')
-      entry('archunit')
-    }
-
     dependencySet(group: 'io.springfox', version: '2.9.2') {
       entry('springfox-swagger-ui')
       entry('springfox-swagger2')
     }
 
-    dependencySet(group: 'it.unimi.dsi', version: get('fastutil.version')) {
-      entry('fastutil')
-      entry('fastutil-core')
-      entry('fastutil-extra')
-    }
-
     dependencySet(group: 'mx4j', version: '3.0.2') {
       entry('mx4j-remote')
       entry('mx4j')
@@ -235,13 +225,6 @@ class DependencyConstraints implements Plugin<Project> {
       entry('lucene-test-framework')
     }
 
-    dependencySet(group: 'org.codehaus.cargo', version: '1.9.7') {
-      entry('cargo-core-uberjar')
-      entry('cargo-core-api-container')
-      entry('cargo-core-api-generic')
-      entry('cargo-core-api-util')
-    }
-
     dependencySet(group: 'org.hamcrest', version: '2.2') {
       entry('hamcrest')
     }
@@ -265,7 +248,6 @@ class DependencyConstraints implements Plugin<Project> {
 
     dependencySet(group: 'org.springframework.security', version: '5.5.2') {
       entry('spring-security-config')
-      entry('spring-security-crypto')
       entry('spring-security-core')
       entry('spring-security-ldap')
       entry('spring-security-test')
@@ -281,7 +263,6 @@ class DependencyConstraints implements Plugin<Project> {
       entry('spring-context')
       entry('spring-core')
       entry('spring-expression')
-      entry('spring-jcl')
       entry('spring-oxm')
       entry('spring-test')
       entry('spring-tx')
diff --git a/extensions/geode-modules-assembly/release/session/bin/modify_war b/extensions/geode-modules-assembly/release/session/bin/modify_war
index cb1943c..b630681 100755
--- a/extensions/geode-modules-assembly/release/session/bin/modify_war
+++ b/extensions/geode-modules-assembly/release/session/bin/modify_war
@@ -275,6 +275,7 @@ OTHER_JARS=(${GEODE}/lib/geode-core-${VERSION}.jar \
     ${GEODE}/lib/log4j-jul-@LOG4J_VERSION@.jar \
     ${GEODE}/lib/fastutil-core-@FASTUTIL_VERSION@.jar \
     ${GEODE}/lib/fastutil-extra-@FASTUTIL_VERSION@.jar \
+    ${GEODE}/lib/fastutil-@FASTUTIL_VERSION@.jar \
     ${GEODE}/lib/javax.transaction-api-@TX_VERSION@.jar \
     ${GEODE}/lib/jetty-http-@JETTY_VERSION@.jar \
     ${GEODE}/lib/jetty-io-@JETTY_VERSION@.jar \
diff --git a/extensions/geode-modules-session-internal/build.gradle b/extensions/geode-modules-session-internal/build.gradle
index d44b747..f34e326 100644
--- a/extensions/geode-modules-session-internal/build.gradle
+++ b/extensions/geode-modules-session-internal/build.gradle
@@ -24,5 +24,4 @@ dependencies {
 
   compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('javax.servlet:javax.servlet-api')
-  compileOnly('org.slf4j:slf4j-api')
 }
diff --git a/extensions/geode-modules-session/build.gradle b/extensions/geode-modules-session/build.gradle
index 36b9471..830a8fd 100644
--- a/extensions/geode-modules-session/build.gradle
+++ b/extensions/geode-modules-session/build.gradle
@@ -29,19 +29,18 @@ dependencies {
     exclude module: 'geode-modules'
   }
   api(project(':geode-core'))
-
-
   implementation(project(':geode-common'))
-  implementation('javax.servlet:javax.servlet-api')
-  implementation('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
-  implementation('org.slf4j:slf4j-api')
-
 
   integrationTestImplementation(project(':extensions:geode-modules'))
   integrationTestImplementation(project(':geode-dunit')) {
     exclude module: 'geode-core'
   }
   integrationTestImplementation(project(':geode-logging'))
+
+  implementation('javax.servlet:javax.servlet-api')
+  implementation('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
+  implementation('org.slf4j:slf4j-api')
+
   integrationTestImplementation('com.mockrunner:mockrunner-servlet') {
     exclude group: 'jboss'
     exclude group: 'xerces'
@@ -52,15 +51,16 @@ dependencies {
   integrationTestImplementation('org.apache.tomcat:jasper:' + DependencyConstraints.get('tomcat6.version'))
   integrationTestImplementation('org.assertj:assertj-core')
   integrationTestImplementation('org.eclipse.jetty:jetty-http:' + DependencyConstraints.get('jetty.version') + ':tests')
-  integrationTestImplementation('org.eclipse.jetty:jetty-server:' + DependencyConstraints.get('jetty.version'))
+  integrationTestImplementation('org.eclipse.jetty:jetty-server')
   integrationTestImplementation('org.eclipse.jetty:jetty-servlet:' + DependencyConstraints.get('jetty.version') + ':tests')
   integrationTestImplementation('org.eclipse.jetty:jetty-servlet:' + DependencyConstraints.get('jetty.version'))
-  integrationTestImplementation('org.eclipse.jetty:jetty-util:' + DependencyConstraints.get('jetty.version'))
+  integrationTestImplementation('org.eclipse.jetty:jetty-util')
   integrationTestImplementation('org.httpunit:httpunit') {
     exclude group: 'javax.servlet'
     // this version of httpunit contains very outdated xercesImpl
     exclude group: 'xerces'
   }
+  integrationTestImplementation('org.slf4j:slf4j-api')
 
   integrationTestRuntimeOnly('xerces:xercesImpl')
 }
diff --git a/extensions/geode-modules-test/build.gradle b/extensions/geode-modules-test/build.gradle
index 230dc59..c7b40e0 100644
--- a/extensions/geode-modules-test/build.gradle
+++ b/extensions/geode-modules-test/build.gradle
@@ -21,28 +21,14 @@ apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 dependencies {
   // main
-  api(project(':extensions:geode-modules'))
-
-
-  compileOnly(platform(project(':boms:geode-all-bom')))
-  compileOnly('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:catalina:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:juli:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
-
-
   implementation(platform(project(':boms:geode-all-bom')))
   implementation(project(':geode-dunit'))
   implementation('org.springframework:spring-core')
   implementation('org.httpunit:httpunit')
   implementation('pl.pragmatists:JUnitParams')
-  implementation('commons-io:commons-io')
-  implementation('javax.servlet:servlet-api')
-  implementation('junit:junit')
-  implementation('org.assertj:assertj-core')
-  implementation('org.mockito:mockito-core')
-  implementation('xerces:xmlParserAPIs')
-  implementation('xml-apis:xml-apis')
 
+  api(project(':extensions:geode-modules'))
 
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
 }
diff --git a/extensions/geode-modules-tomcat7/build.gradle b/extensions/geode-modules-tomcat7/build.gradle
index 4dae37d..31a841c 100644
--- a/extensions/geode-modules-tomcat7/build.gradle
+++ b/extensions/geode-modules-tomcat7/build.gradle
@@ -32,8 +32,6 @@ dependencies {
   compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat7.version'))
   compileOnly('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat7.version'))
-  compileOnly('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat7.version'))
-  compileOnly('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat7.version'))
 
 
   // test
@@ -43,16 +41,12 @@ dependencies {
   testImplementation('org.mockito:mockito-core')
   testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat7.version'))
   testImplementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat7.version'))
-  testImplementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat7.version'))
-  testImplementation('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat7.version'))
 
 
   // integrationTest
   integrationTestImplementation(project(':extensions:geode-modules-test'))
   integrationTestImplementation(project(':geode-dunit'))
-  integrationTestImplementation('junit:junit')
   integrationTestImplementation('org.httpunit:httpunit')
-  integrationTestImplementation('org.mockito:mockito-core')
   integrationTestImplementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat7.version'))
   integrationTestImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat7.version'))
 }
diff --git a/extensions/geode-modules-tomcat8/build.gradle b/extensions/geode-modules-tomcat8/build.gradle
index 3ce1d75..70788ed 100644
--- a/extensions/geode-modules-tomcat8/build.gradle
+++ b/extensions/geode-modules-tomcat8/build.gradle
@@ -32,10 +32,6 @@ dependencies {
 
   compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
-  compileOnly('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat8.version'))
-  compileOnly('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat8.version'))
-  compileOnly('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat8.version'))
-  compileOnly('org.apache.tomcat:tomcat-util:' + DependencyConstraints.get('tomcat8.version'))
 
 
   // test
@@ -44,18 +40,12 @@ dependencies {
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
   testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
-  testImplementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat8.version'))
-  testImplementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat8.version'))
-  testImplementation('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat8.version'))
-  testImplementation('org.apache.tomcat:tomcat-util:' + DependencyConstraints.get('tomcat8.version'))
 
 
   // integrationTest
   integrationTestImplementation(project(':extensions:geode-modules-test'))
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
-  integrationTestImplementation('org.mockito:mockito-core')
-  integrationTestImplementation('junit:junit')
 
 
   // distributedTest
@@ -64,13 +54,6 @@ dependencies {
   distributedTestImplementation(project(':geode-logging'))
   distributedTestImplementation('org.httpunit:httpunit')
   distributedTestImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.apache.logging.log4j:log4j-api')
-  distributedTestImplementation('org.apache.tomcat:tomcat-jaspic-api:' + DependencyConstraints.get('tomcat8.version'))
-  distributedTestImplementation('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat8.version'))
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
-
 }
 
 sonarqube {
diff --git a/extensions/geode-modules-tomcat9/build.gradle b/extensions/geode-modules-tomcat9/build.gradle
index e6aa677..54fda60 100644
--- a/extensions/geode-modules-tomcat9/build.gradle
+++ b/extensions/geode-modules-tomcat9/build.gradle
@@ -32,9 +32,6 @@ dependencies {
 
   compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version'))
-  compileOnly('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat9.version'))
-  compileOnly('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat9.version'))
-  compileOnly('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat9.version'))
 
 
   // test
@@ -43,18 +40,12 @@ dependencies {
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
   testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version'))
-  testImplementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat9.version'))
-  testImplementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat9.version'))
-  testImplementation('org.apache.tomcat:tomcat-servlet-api:' + DependencyConstraints.get('tomcat9.version'))
 
 
   // integrationTest
   integrationTestImplementation(project(':extensions:geode-modules-test'))
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version'))
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.mockito:mockito-core')
-
 }
 
 sonarqube {
diff --git a/extensions/geode-modules/build.gradle b/extensions/geode-modules/build.gradle
index e30e4c1..806dced 100644
--- a/extensions/geode-modules/build.gradle
+++ b/extensions/geode-modules/build.gradle
@@ -24,25 +24,18 @@ evaluationDependsOn(":geode-core")
 
 dependencies {
   // main
-  compileOnly(platform(project(':boms:geode-all-bom')))
-  api(platform(project(':boms:geode-all-bom')))
-
-
-  api(project(':geode-core'))
+  implementation(platform(project(':boms:geode-all-bom')))
   api(project(':geode-logging'))
+  implementation(project(':geode-membership'))
   api(project(':geode-common'))
+  implementation(project(':geode-serialization'))
+  implementation('org.slf4j:slf4j-api')
 
+  api(project(':geode-core'))
 
+  compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('javax.servlet:javax.servlet-api')
   compileOnly('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:catalina:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:juli:' + DependencyConstraints.get('tomcat6.version'))
-  compileOnly('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
-
-
-  implementation(project(':geode-membership'))
-  implementation(project(':geode-serialization'))
-  implementation('org.slf4j:slf4j-api')
 
 
   // test
@@ -52,9 +45,6 @@ dependencies {
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
   testImplementation('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
-  testImplementation('org.apache.tomcat:juli:' + DependencyConstraints.get('tomcat6.version'))
-  testImplementation('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
-
 
 
   // integrationTest
@@ -62,20 +52,11 @@ dependencies {
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation('pl.pragmatists:JUnitParams')
   integrationTestImplementation('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('org.mockito:mockito-core')
 
 
   // distributedTest
   distributedTestImplementation(project(':geode-dunit'))
   distributedTestImplementation('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
-  distributedTestImplementation('org.mockito:mockito-core')
-
 }
 
 sonarqube {
diff --git a/extensions/geode-modules/src/test/resources/expected-pom.xml b/extensions/geode-modules/src/test/resources/expected-pom.xml
index 260c0c4..c8b2c2e 100644
--- a/extensions/geode-modules/src/test/resources/expected-pom.xml
+++ b/extensions/geode-modules/src/test/resources/expected-pom.xml
@@ -48,17 +48,17 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.geode</groupId>
-      <artifactId>geode-core</artifactId>
+      <artifactId>geode-logging</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
-      <artifactId>geode-logging</artifactId>
+      <artifactId>geode-common</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
-      <artifactId>geode-common</artifactId>
+      <artifactId>geode-core</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index 1fdd971..632ab9b 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -185,10 +185,7 @@ dependencies {
   testImplementation(project(':geode-log4j')) {
     exclude module: 'geode-core'
   }
-  testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
-
 
   integrationTestImplementation(project(':geode-core'))
   integrationTestImplementation(project(':geode-membership'))
@@ -205,25 +202,15 @@ dependencies {
   integrationTestImplementation(project(':geode-pulse'))
   integrationTestImplementation(project(':geode-assembly:geode-assembly-test'))
   integrationTestImplementation(project(':geode-logging'))
-  integrationTestImplementation('com.fasterxml.jackson.core:jackson-core')
-  integrationTestImplementation('com.fasterxml.jackson.core:jackson-databind')
-  integrationTestImplementation('com.github.stefanbirkner:system-rules')
-  integrationTestImplementation('com.jayway.jsonpath:json-path')
-  integrationTestImplementation('commons-io:commons-io')
-  integrationTestImplementation('javax.annotation:javax.annotation-api')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.apache.httpcomponents:httpcore')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.mockito:mockito-core')
+  integrationTestImplementation('org.apache.httpcomponents:httpclient')
   integrationTestImplementation('org.springframework:spring-beans')
-  gradleLint.ignore {
-    integrationTestImplementation('org.springframework:spring-context')
-  }
-  integrationTestImplementation('org.springframework:spring-core')
+  integrationTestImplementation('org.springframework:spring-context')
   integrationTestImplementation('org.springframework:spring-web')
+  integrationTestImplementation('org.springframework.security:spring-security-oauth2-core')
+  integrationTestImplementation('org.springframework.security:spring-security-oauth2-client')
+  integrationTestImplementation('org.springframework.security:spring-security-oauth2-jose')
+  integrationTestImplementation('javax.annotation:javax.annotation-api')
+  integrationTestImplementation('javax.servlet:javax.servlet-api')
 
 
   integrationTestRuntimeOnly('io.swagger:swagger-annotations')
@@ -231,8 +218,8 @@ dependencies {
   integrationTestRuntimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-joda')
   integrationTestRuntimeOnly('joda-time:joda-time')
 
-
   distributedTestCompileOnly(platform(project(':boms:geode-all-bom')))
+  distributedTestCompileOnly('io.swagger:swagger-annotations')
   distributedTestImplementation(project(':geode-gfsh'))
   distributedTestImplementation(project(':geode-logging'))
   distributedTestImplementation(project(':geode-membership'))
@@ -253,17 +240,6 @@ dependencies {
   distributedTestImplementation(project(':geode-web-management'))
   distributedTestImplementation('com.arakelian:java-jq')
   distributedTestImplementation('javax.servlet:javax.servlet-api')
-  distributedTestImplementation('com.fasterxml.jackson.core:jackson-databind')
-  distributedTestImplementation('org.apache.httpcomponents:httpcore')
-  distributedTestImplementation('org.codehaus.cargo:cargo-core-api-container')
-  distributedTestImplementation('org.hamcrest:hamcrest-core')
-  distributedTestImplementation('org.hamcrest:hamcrest')
-  distributedTestImplementation('commons-io:commons-io')
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.apache.commons:commons-lang3')
-  distributedTestImplementation('org.apache.logging.log4j:log4j-api')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
 
   distributedTestRuntimeOnly(project(':extensions:geode-modules-session-internal')) {
     exclude group: 'org.apache.tomcat'
@@ -288,16 +264,6 @@ dependencies {
   acceptanceTestImplementation('org.gradle:gradle-tooling-api:' + DependencyConstraints.get('gradle-tooling-api.version'))
 
   acceptanceTestImplementation('org.testcontainers:testcontainers')
-  acceptanceTestImplementation('com.fasterxml.jackson.core:jackson-databind')
-  acceptanceTestImplementation('com.github.docker-java:docker-java-api')
-  acceptanceTestImplementation('commons-io:commons-io')
-  acceptanceTestImplementation('io.micrometer:micrometer-core')
-  acceptanceTestImplementation('junit:junit')
-  acceptanceTestImplementation('org.apache.commons:commons-lang3')
-  acceptanceTestImplementation('org.apache.logging.log4j:log4j-api')
-  acceptanceTestImplementation('org.assertj:assertj-core')
-  acceptanceTestImplementation('org.awaitility:awaitility')
-
 
   uiTestImplementation(project(':geode-core'))
   uiTestImplementation(project(':geode-dunit')) {
@@ -309,15 +275,10 @@ dependencies {
   uiTestImplementation('org.seleniumhq.selenium:selenium-api')
   uiTestImplementation('org.seleniumhq.selenium:selenium-remote-driver')
   uiTestImplementation('org.seleniumhq.selenium:selenium-support')
-  uiTestImplementation('org.assertj:assertj-core')
-  uiTestImplementation('junit:junit')
 
   uiTestRuntimeOnly(project(':geode-core'))
   uiTestRuntimeOnly('org.seleniumhq.selenium:selenium-chrome-driver')
 
-
-  upgradeTestCompileOnly(platform(project(':boms:geode-all-bom')))
-
   upgradeTestImplementation(project(':geode-gfsh'))
   upgradeTestImplementation(project(':geode-logging'))
   upgradeTestImplementation(project(':geode-serialization'))
@@ -326,21 +287,16 @@ dependencies {
     exclude module: 'geode-core'
   }
   upgradeTestImplementation(project(':geode-assembly:geode-assembly-test'))
-  upgradeTestImplementation('org.apache.httpcomponents:httpclient')
-  upgradeTestImplementation('com.fasterxml.jackson.core:jackson-core')
-  upgradeTestImplementation('com.fasterxml.jackson.core:jackson-databind')
-  upgradeTestImplementation('org.apache.commons:commons-lang3')
-  upgradeTestImplementation('org.apache.httpcomponents:httpcore')
-  upgradeTestImplementation('org.assertj:assertj-core')
-  upgradeTestImplementation('junit:junit')
 
+  upgradeTestImplementation('org.apache.httpcomponents:httpclient')
 
+  upgradeTestCompileOnly(platform(project(':boms:geode-all-bom')))
+  upgradeTestCompileOnly('io.swagger:swagger-annotations')
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
   upgradeTestRuntimeOnly(project(':extensions:session-testing-war'))
   upgradeTestRuntimeOnly('org.codehaus.cargo:cargo-core-uberjar')
   upgradeTestRuntimeOnly files({ downloadWebServers } )
 
-
   //Web servers used for session module testing
   webServerTomcat6('apache:tomcat:' + DependencyConstraints.get('tomcat6.version') + '@zip')
   webServerTomcat7('org.apache.tomcat:tomcat:' + DependencyConstraints.get('tomcat7.version') + '@zip')
diff --git a/geode-assembly/geode-assembly-test/build.gradle b/geode-assembly/geode-assembly-test/build.gradle
index e17dbb1..bd6559b 100755
--- a/geode-assembly/geode-assembly-test/build.gradle
+++ b/geode-assembly/geode-assembly-test/build.gradle
@@ -17,16 +17,20 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-dependencies {
-  compileOnly(platform(project(':boms:geode-all-bom')))
 
+
+
+dependencies {
+  api(platform(project(':boms:geode-all-bom')))
   compileOnly(project(':extensions:geode-modules-test'))
   compileOnly(project(':geode-core'))
   compileOnly(project(':geode-pulse'))
   compileOnly(project(':geode-junit'))
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-membership'))
+  implementation('javax.servlet:javax.servlet-api')
+  implementation('org.apache.commons:commons-lang3')
   compileOnly(project(':geode-tcp-server'))
-  compileOnly(project(':geode-logging'))
-  compileOnly(project(':geode-membership'))
   compileOnly('com.fasterxml.jackson.core:jackson-databind')
   compileOnly('commons-io:commons-io')
   compileOnly('junit:junit')
@@ -34,11 +38,4 @@ dependencies {
   compileOnly('org.apache.logging.log4j:log4j-api')
   compileOnly('org.assertj:assertj-core')
   compileOnly('org.codehaus.cargo:cargo-core-uberjar')
-  compileOnly('javax.servlet:javax.servlet-api')
-  compileOnly('org.apache.commons:commons-lang3')
-  compileOnly('com.fasterxml.jackson.core:jackson-annotations')
-  compileOnly('org.apache.httpcomponents:httpcore')
-  compileOnly('org.codehaus.cargo:cargo-core-api-container')
-  compileOnly('org.codehaus.cargo:cargo-core-api-generic')
-  compileOnly('org.codehaus.cargo:cargo-core-api-util')
 }
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index 6c27ca8..7d1e817 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -966,7 +966,6 @@ lib/HdrHistogram-2.1.12.jar
 lib/HikariCP-4.0.3.jar
 lib/LatencyUtils-2.0.3.jar
 lib/antlr-2.7.7.jar
-lib/checker-qual-3.8.0.jar
 lib/classgraph-4.8.115.jar
 lib/commons-beanutils-1.9.4.jar
 lib/commons-codec-1.15.jar
@@ -977,18 +976,18 @@ lib/commons-lang3-3.12.0.jar
 lib/commons-logging-1.2.jar
 lib/commons-modeler-2.0.1.jar
 lib/commons-validator-1.7.jar
-lib/error_prone_annotations-2.5.1.jar
-lib/failureaccess-1.0.1.jar
+lib/fastutil-8.5.4.jar
 lib/fastutil-core-8.5.4.jar
 lib/fastutil-extra-8.5.4.jar
 lib/findbugs-annotations-1.3.9-1.jar
+lib/geo-0.7.7.jar
+lib/geode-for-redis-0.0.0.jar
 lib/geode-common-0.0.0.jar
 lib/geode-connectors-0.0.0.jar
 lib/geode-core-0.0.0.jar
 lib/geode-cq-0.0.0.jar
 lib/geode-dependencies.jar
 lib/geode-deployment-legacy-0.0.0.jar
-lib/geode-for-redis-0.0.0.jar
 lib/geode-gfsh-0.0.0.jar
 lib/geode-http-service-0.0.0.jar
 lib/geode-jca-0.0.0.rar
@@ -1005,11 +1004,9 @@ lib/geode-tcp-server-0.0.0.jar
 lib/geode-unsafe-0.0.0.jar
 lib/geode-wan-0.0.0.jar
 lib/gfsh-dependencies.jar
-lib/guava-30.1.1-jre.jar
 lib/httpclient-4.5.13.jar
 lib/httpcore-4.4.14.jar
 lib/istack-commons-runtime-4.0.1.jar
-lib/j2objc-annotations-1.3.jar
 lib/jackson-annotations-2.12.3.jar
 lib/jackson-core-2.12.3.jar
 lib/jackson-databind-2.12.3.jar
@@ -1034,8 +1031,6 @@ lib/jline-2.12.jar
 lib/jna-5.9.0.jar
 lib/jna-platform-5.9.0.jar
 lib/jopt-simple-5.0.4.jar
-lib/jsr305-3.0.2.jar
-lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
 lib/log4j-api-2.14.1.jar
 lib/log4j-core-2.14.1.jar
 lib/log4j-jcl-2.14.1.jar
@@ -1064,12 +1059,9 @@ lib/shiro-event-1.8.0.jar
 lib/shiro-lang-1.8.0.jar
 lib/slf4j-api-1.7.30.jar
 lib/snappy-0.4.jar
-lib/spring-aop-5.3.9.jar
 lib/spring-beans-5.3.9.jar
 lib/spring-context-5.3.9.jar
-lib/spring-context-support-4.2.4.RELEASE.jar
 lib/spring-core-5.3.9.jar
-lib/spring-expression-5.3.9.jar
 lib/spring-jcl-5.3.9.jar
 lib/spring-shell-1.2.0.RELEASE.jar
 lib/spring-web-5.3.9.jar
diff --git a/geode-assembly/src/integrationTest/resources/dependency_classpath.txt b/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
index f1185ab..80e3a68 100644
--- a/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
+++ b/geode-assembly/src/integrationTest/resources/dependency_classpath.txt
@@ -1,7 +1,6 @@
 geode-common-0.0.0.jar
 geode-connectors-0.0.0.jar
 geode-core-0.0.0.jar
-geode-unsafe-0.0.0.jar
 geode-cq-0.0.0.jar
 geode-gfsh-0.0.0.jar
 geode-log4j-0.0.0.jar
@@ -15,21 +14,22 @@ geode-serialization-0.0.0.jar
 geode-tcp-server-0.0.0.jar
 geode-wan-0.0.0.jar
 geode-management-0.0.0.jar
+jackson-databind-2.12.3.jar
 jackson-annotations-2.12.3.jar
 jackson-core-2.12.3.jar
-jackson-databind-2.12.3.jar
 geode-deployment-legacy-0.0.0.jar
 geode-membership-0.0.0.jar
 geode-http-service-0.0.0.jar
+geode-unsafe-0.0.0.jar
 httpclient-4.5.13.jar
 httpcore-4.4.14.jar
 HikariCP-4.0.3.jar
 commons-lang3-3.12.0.jar
 jaxb-api-2.3.1.jar
+log4j-jcl-2.14.1.jar
 log4j-api-2.14.1.jar
 spring-shell-1.2.0.RELEASE.jar
 rmiio-2.1.2.jar
-commons-io-2.11.0.jar
 antlr-2.7.7.jar
 istack-commons-runtime-4.0.1.jar
 jaxb-impl-2.3.2.jar
@@ -39,57 +39,52 @@ shiro-config-ogdl-1.8.0.jar
 commons-beanutils-1.9.4.jar
 commons-codec-1.15.jar
 commons-collections-3.2.2.jar
+commons-io-2.11.0.jar
 commons-logging-1.2.jar
 classgraph-4.8.115.jar
 micrometer-core-1.7.3.jar
 swagger-annotations-1.6.2.jar
+fastutil-core-8.5.4.jar
+fastutil-extra-8.5.4.jar
+fastutil-8.5.4.jar
 javax.resource-api-1.7.1.jar
 jetty-webapp-9.4.43.v20210629.jar
 jetty-servlet-9.4.43.v20210629.jar
 jetty-security-9.4.43.v20210629.jar
 jetty-server-9.4.43.v20210629.jar
 javax.servlet-api-3.1.0.jar
-javax.transaction-api-1.3.jar
 jna-platform-5.9.0.jar
 jna-5.9.0.jar
 jopt-simple-5.0.4.jar
 snappy-0.4.jar
 jgroups-3.6.14.Final.jar
 shiro-cache-1.8.0.jar
-shiro-config-core-1.8.0.jar
 shiro-crypto-hash-1.8.0.jar
 shiro-crypto-cipher-1.8.0.jar
+shiro-config-core-1.8.0.jar
 shiro-event-1.8.0.jar
 shiro-crypto-core-1.8.0.jar
 shiro-lang-1.8.0.jar
 slf4j-api-1.7.30.jar
-fastutil-extra-8.5.4.jar
-fastutil-core-8.5.4.jar
 spring-core-5.3.9.jar
-spring-jcl-5.3.9.jar
-jline-2.12.jar
 javax.activation-api-1.2.0.jar
-jetty-http-9.4.43.v20210629.jar
+jline-2.12.jar
+HdrHistogram-2.1.12.jar
+LatencyUtils-2.0.3.jar
+javax.transaction-api-1.3.jar
+spring-jcl-5.3.9.jar
 jetty-xml-9.4.43.v20210629.jar
+jetty-http-9.4.43.v20210629.jar
 jetty-io-9.4.43.v20210629.jar
 jetty-util-ajax-9.4.43.v20210629.jar
 jetty-util-9.4.43.v20210629.jar
-HdrHistogram-2.1.12.jar
-LatencyUtils-2.0.3.jar
 log4j-slf4j-impl-2.14.1.jar
 log4j-core-2.14.1.jar
-log4j-jcl-2.14.1.jar
 log4j-jul-2.14.1.jar
 lucene-analyzers-phonetic-6.6.6.jar
 lucene-analyzers-common-6.6.6.jar
 lucene-queryparser-6.6.6.jar
 lucene-core-6.6.6.jar
-guava-30.1.1-jre.jar
-jsr305-3.0.2.jar
 lucene-queries-6.6.6.jar
-failureaccess-1.0.1.jar
-listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
-checker-qual-3.8.0.jar
-error_prone_annotations-2.5.1.jar
-j2objc-annotations-1.3.jar
+geo-0.7.7.jar
 netty-all-4.1.67.Final.jar
diff --git a/geode-assembly/src/integrationTest/resources/expected_jars.txt b/geode-assembly/src/integrationTest/resources/expected_jars.txt
index 9f763c2..c18e2a9 100644
--- a/geode-assembly/src/integrationTest/resources/expected_jars.txt
+++ b/geode-assembly/src/integrationTest/resources/expected_jars.txt
@@ -24,7 +24,9 @@ error_prone_annotations
 failureaccess
 fastutil-core
 fastutil-extra
+fastutil
 findbugs-annotations
+geo
 gfsh-dependencies.jar
 guava
 httpclient
@@ -96,7 +98,6 @@ spring-aop
 spring-aspects
 spring-beans
 spring-context
-spring-context-support
 spring-core
 spring-expression
 spring-hateoas
diff --git a/geode-common/build.gradle b/geode-common/build.gradle
index c3219e7..cb48856 100755
--- a/geode-common/build.gradle
+++ b/geode-common/build.gradle
@@ -25,8 +25,6 @@ dependencies {
   // main
   implementation(platform(project(':boms:geode-all-bom')))
   implementation('com.fasterxml.jackson.core:jackson-databind')
-  implementation('com.fasterxml.jackson.core:jackson-annotations')
-  implementation('com.fasterxml.jackson.core:jackson-core')
 
   // test
   testImplementation('junit:junit')
diff --git a/geode-common/src/test/resources/expected-pom.xml b/geode-common/src/test/resources/expected-pom.xml
index e97547e..2f323ad 100644
--- a/geode-common/src/test/resources/expected-pom.xml
+++ b/geode-common/src/test/resources/expected-pom.xml
@@ -51,15 +51,5 @@
       <artifactId>jackson-databind</artifactId>
       <scope>runtime</scope>
     </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/geode-concurrency-test/build.gradle b/geode-concurrency-test/build.gradle
index cbe475a..f257bae 100644
--- a/geode-concurrency-test/build.gradle
+++ b/geode-concurrency-test/build.gradle
@@ -23,6 +23,7 @@ apply from: "${project.projectDir}/../gradle/warnings.gradle"
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
   implementation('junit:junit')
+  implementation('org.apache.logging.log4j:log4j-api')
   integrationTestImplementation('org.assertj:assertj-core')
   integrationTestRuntimeOnly('org.junit.vintage:junit-vintage-engine')
 }
diff --git a/geode-concurrency-test/src/test/resources/expected-pom.xml b/geode-concurrency-test/src/test/resources/expected-pom.xml
index d6045591..ac266b4 100644
--- a/geode-concurrency-test/src/test/resources/expected-pom.xml
+++ b/geode-concurrency-test/src/test/resources/expected-pom.xml
@@ -51,5 +51,10 @@
       <artifactId>junit</artifactId>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/geode-connectors/build.gradle b/geode-connectors/build.gradle
index 0bcd333..8de41a8 100644
--- a/geode-connectors/build.gradle
+++ b/geode-connectors/build.gradle
@@ -49,10 +49,37 @@ dependencies {
   implementation(project(':geode-gfsh'))
   implementation('org.apache.httpcomponents:httpcore')
   implementation('com.fasterxml.jackson.core:jackson-databind')
+
+  testImplementation(project(':geode-membership'))
+  testImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  integrationTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-core'
+  }
+  integrationTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation(project(':geode-dunit')){
+    exclude module: 'geode-core'
+  }
+  acceptanceTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-core'
+  }
+  acceptanceTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+
   implementation('com.zaxxer:HikariCP')
   implementation('org.apache.commons:commons-lang3')
   implementation('javax.xml.bind:jaxb-api')
   implementation('org.apache.logging.log4j:log4j-api')
+  implementation('org.apache.logging.log4j:log4j-jcl') {
+    ext.optional = true
+  }
   implementation('org.springframework.shell:spring-shell') {
     exclude module: 'aopalliance'
     exclude module: 'asm'
@@ -64,47 +91,19 @@ dependencies {
     ext.optional = true
   }
   implementation('com.healthmarketscience.rmiio:rmiio')
-  implementation('commons-io:commons-io')
-
 
-  testImplementation(project(':geode-membership'))
-  testImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
   testImplementation('pl.pragmatists:JUnitParams')
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
 
-
-  integrationTestImplementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
   integrationTestImplementation('junit:junit')
+  integrationTestImplementation('org.assertj:assertj-core')
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
 
-
-  distributedTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-  distributedTestImplementation(project(':geode-dunit')){
-    exclude module: 'geode-core'
-  }
   distributedTestImplementation('junit:junit')
   distributedTestImplementation('org.assertj:assertj-core')
+  distributedTestImplementation('org.mockito:mockito-core')
   distributedTestImplementation('pl.pragmatists:JUnitParams')
-
   distributedTestRuntimeOnly('org.apache.derby:derby')
 
-
-  acceptanceTestImplementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  acceptanceTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
   acceptanceTestImplementation('com.github.stefanbirkner:system-rules') {
     exclude module: 'junit-dep'
   }
@@ -112,13 +111,13 @@ dependencies {
   acceptanceTestImplementation('org.assertj:assertj-core')
   acceptanceTestImplementation('org.awaitility:awaitility')
   acceptanceTestImplementation('org.mockito:mockito-core')
+  acceptanceTestImplementation('pl.pragmatists:JUnitParams')
   acceptanceTestImplementation('org.testcontainers:testcontainers')
 
   acceptanceTestRuntimeOnly('mysql:mysql-connector-java')
   acceptanceTestRuntimeOnly('org.apache.derby:derby')
   acceptanceTestRuntimeOnly('org.postgresql:postgresql')
 
-
   jdbcTestingJars('mysql:mysql-connector-java:8.0.26')
 }
 
diff --git a/geode-connectors/src/test/resources/expected-pom.xml b/geode-connectors/src/test/resources/expected-pom.xml
index bb399e0..b76b329 100644
--- a/geode-connectors/src/test/resources/expected-pom.xml
+++ b/geode-connectors/src/test/resources/expected-pom.xml
@@ -97,6 +97,12 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-jcl</artifactId>
+      <scope>runtime</scope>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>org.springframework.shell</groupId>
       <artifactId>spring-shell</artifactId>
       <scope>runtime</scope>
@@ -137,10 +143,5 @@
       <artifactId>rmiio</artifactId>
       <scope>runtime</scope>
     </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <scope>runtime</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 10c9c77..c9c9b7b 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -181,9 +181,7 @@ dependencies {
 
   //  The antlr configuration is used by the antlr plugin, which compiles grammar
   // files used by the query engine
-  gradleLint.ignore {
-    antlr 'antlr:antlr'
-  }
+  antlr 'antlr:antlr'
 
   // External
   //------------------------------------------------------------
@@ -191,56 +189,52 @@ dependencies {
   //Commons IO is used in persistence and management
   api('commons-io:commons-io')
 
-  //geode-management currently has pieces of the public API
-  //copied into it, so it is an API dependency
-  api(project(':geode-management'))
-
-  //Geode-common has annotations and other pieces used geode-core
-  api(project(':geode-common'))
-
-  //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')
-
-  //Jackson databind is used in gfsh, and also in pdx
-  api('com.fasterxml.jackson.core:jackson-databind')
-
-  //micrometer is used for micrometer based metrics from geode geode
-  api('io.micrometer:micrometer-core')
-
-  // swagger annotations are on public methods used outside of geode-core
-  gradleLint.ignore {
-    api('io.swagger:swagger-annotations') {
-      ext.optional = true
-    }
-  }
-
   //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.
-  gradleLint.ignore {
-    compileOnly('com.google.code.findbugs:jsr305')
-  }
+  compileOnly('com.google.code.findbugs:jsr305')
 
   compileOnly('org.jetbrains:annotations')
 
+  //Jgroups is a core component of our membership system.
+  implementation('org.jgroups:jgroups')
+
+  //Antlr is used by the query engine.
+  implementation('antlr:antlr')
+
+  //Jackson annotations is used in gfsh
+  implementation('com.fasterxml.jackson.core:jackson-annotations')
+
+  //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')
 
+
   //jaxb is used by cluster configuration
   implementation('javax.xml.bind:jaxb-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: '*'
+  }
+
+  runtimeOnly(project(':geode-deployment:geode-deployment-legacy'))
+
   //Commons lang is used in many different places in core
   implementation('org.apache.commons:commons-lang3')
 
@@ -252,19 +246,21 @@ dependencies {
     ext.optional = true
   }
 
+  //micrometer is used for micrometer based metrics from geode geode
+  api('io.micrometer:micrometer-core')
+
+
+  //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
   }
 
-  //Jgroups is a core component of our membership system.
-  implementation('org.jgroups:jgroups')
-
-  //Antlr is used by the query engine.
-  implementation('antlr:antlr')
+  //The resource-API is used by the JCA support.
+  api('javax.resource:javax.resource-api')
 
-  //Jackson annotations is used in gfsh
-  implementation('com.fasterxml.jackson.core:jackson-annotations')
 
   //MX4J is used by the old admin API
   implementation('mx4j:mx4j') {
@@ -291,67 +287,50 @@ dependencies {
   //Log4j is used everywhere
   implementation('org.apache.logging.log4j:log4j-api')
 
+
+  implementation('io.swagger:swagger-annotations') {
+    ext.optional = true
+  }
+
+  runtimeOnly(project(':geode-http-service')) {
+    ext.optional = true
+  }
+
   //Snappy is used for compressing values, if enabled
   implementation('org.iq80.snappy:snappy') {
     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')
+
   //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')
 
-  //Spring web is used for SerializableObjectHttpMessageConverter
-  implementation('org.springframework:spring-web')
-
   //RMIIO is used for uploading jar files and copying them between locator an servers
   implementation('com.healthmarketscience.rmiio:rmiio')
-  implementation('com.fasterxml.jackson.core:jackson-core')
-  implementation('commons-collections:commons-collections')
-  implementation('commons-logging:commons-logging')
-  //FastUtil contains optimized collections that are used in multiple places in core
-  implementation('it.unimi.dsi:fastutil-core')
-  implementation('it.unimi.dsi:fastutil-extra')
-  implementation('javax.transaction:javax.transaction-api')
-  implementation('org.apache.shiro:shiro-cache')
-  implementation('org.apache.shiro:shiro-config-core')
-  implementation('org.apache.shiro:shiro-config-ogdl')
-  implementation('org.apache.shiro:shiro-lang')
-  implementation('org.springframework:spring-core')
-  implementation('org.springframework:spring-jcl')
+
+  //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'))
 
-  runtimeOnly(project(':geode-http-service')) {
-    ext.optional = true
-  }
-
-  //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: '*'
-  }
-  runtimeOnly(project(':geode-deployment:geode-deployment-legacy'))
+  //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)
 
-
-  //Find bugs is used in multiple places in the code to suppress findbugs warnings
-  gradleLint.ignore {
-    testCompileOnly('com.github.stephenc.findbugs:findbugs-annotations')
-  }
-
   testImplementation(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
   testImplementation(project(':geode-concurrency-test'))
-  //FastUtil contains optimized collections that are used in multiple places in core
-  testImplementation('it.unimi.dsi:fastutil')
-  testImplementation('junit:junit')
   testImplementation('org.apache.bcel:bcel')
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
@@ -359,13 +338,7 @@ dependencies {
   testImplementation('pl.pragmatists:JUnitParams')
   testImplementation('com.tngtech.archunit:archunit-junit4')
   testImplementation(project(path: ':geode-core', configuration: 'raOutput'))
-  testImplementation('com.google.code.findbugs:jsr305')
-  testImplementation('com.github.stefanbirkner:system-rules')
-  testImplementation('com.tngtech.archunit:archunit')
-  testImplementation('com.google.guava:guava')
-  testImplementation('org.awaitility:awaitility')
-  testImplementation('org.hamcrest:hamcrest-core')
-  testImplementation('org.hamcrest:hamcrest')
+
   testImplementation(files("${System.getProperty('java.home')}/../lib/tools.jar"))
 
   testRuntimeOnly('commons-collections:commons-collections')
@@ -374,7 +347,6 @@ dependencies {
   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'))
@@ -383,25 +355,15 @@ dependencies {
   integrationTestImplementation(project(':geode-log4j'))
   integrationTestImplementation(project(':geode-concurrency-test'))
   integrationTestImplementation('org.apache.bcel:bcel')
-  gradleLint.ignore {
-    integrationTestImplementation('org.apache.logging.log4j:log4j-core')
-  }
+  integrationTestImplementation('org.apache.logging.log4j:log4j-core')
   integrationTestImplementation('pl.pragmatists:JUnitParams')
-  integrationTestImplementation('com.tngtech.archunit:archunit')
-  integrationTestImplementation('com.github.stefanbirkner:system-rules')
-  integrationTestImplementation('com.google.guava:guava')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('org.mockito:mockito-core')
+  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'
@@ -415,14 +377,6 @@ dependencies {
   distributedTestImplementation('pl.pragmatists:JUnitParams')
   distributedTestImplementation('com.jayway.jsonpath:json-path-assert')
   distributedTestImplementation('net.openhft:compiler')
-  distributedTestImplementation('com.google.guava:guava')
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
-  distributedTestImplementation('org.hamcrest:hamcrest-core')
-  distributedTestImplementation('org.hamcrest:hamcrest')
-  distributedTestImplementation('org.mockito:mockito-core')
-  distributedTestImplementation('org.springframework.shell:spring-shell')
 
   distributedTestRuntimeOnly('org.apache.derby:derby')
 
@@ -430,28 +384,17 @@ dependencies {
   upgradeTestImplementation(project(':geode-dunit')) {
     exclude module: 'geode-core'
   }
-  upgradeTestImplementation('junit:junit')
-  upgradeTestImplementation('com.github.stefanbirkner:system-rules')
-  upgradeTestImplementation('org.assertj:assertj-core')
-  upgradeTestImplementation('org.mockito:mockito-core')
-  upgradeTestImplementation('org.awaitility:awaitility')
-  upgradeTestImplementation('org.hamcrest:hamcrest-core')
-  upgradeTestImplementation('org.hamcrest:hamcrest')
 
   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'))
-  performanceTestImplementation('junit:junit')
-
 
   jmhImplementation('org.jctools:jctools-core')
-  jmhImplementation('junit:junit')
 }
 
 tasks.eclipse.dependsOn(generateGrammarSource)
diff --git a/geode-core/src/test/resources/expected-pom.xml b/geode-core/src/test/resources/expected-pom.xml
index 1073008..c1b7447 100644
--- a/geode-core/src/test/resources/expected-pom.xml
+++ b/geode-core/src/test/resources/expected-pom.xml
@@ -57,13 +57,13 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geode</groupId>
-      <artifactId>geode-management</artifactId>
+      <groupId>io.micrometer</groupId>
+      <artifactId>micrometer-core</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geode</groupId>
-      <artifactId>geode-common</artifactId>
+      <groupId>javax.resource</groupId>
+      <artifactId>javax.resource-api</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -72,25 +72,34 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>javax.resource</groupId>
-      <artifactId>javax.resource-api</artifactId>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-common</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-management</artifactId>
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>io.micrometer</groupId>
-      <artifactId>micrometer-core</artifactId>
-      <scope>compile</scope>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-annotations</artifactId>
-      <scope>compile</scope>
-      <optional>true</optional>
+      <groupId>org.jgroups</groupId>
+      <artifactId>jgroups</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>commons-validator</groupId>
@@ -133,20 +142,15 @@
       <optional>true</optional>
     </dependency>
     <dependency>
-      <groupId>javax.mail</groupId>
-      <artifactId>javax.mail-api</artifactId>
-      <scope>runtime</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.jgroups</groupId>
-      <artifactId>jgroups</artifactId>
+      <groupId>it.unimi.dsi</groupId>
+      <artifactId>fastutil</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
+      <groupId>javax.mail</groupId>
+      <artifactId>javax.mail-api</artifactId>
       <scope>runtime</scope>
+      <optional>true</optional>
     </dependency>
     <dependency>
       <groupId>mx4j</groupId>
@@ -187,6 +191,12 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+      <scope>runtime</scope>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>org.iq80.snappy</groupId>
       <artifactId>snappy</artifactId>
       <scope>runtime</scope>
@@ -198,76 +208,11 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>com.healthmarketscience.rmiio</groupId>
       <artifactId>rmiio</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>it.unimi.dsi</groupId>
-      <artifactId>fastutil-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>it.unimi.dsi</groupId>
-      <artifactId>fastutil-extra</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>javax.transaction</groupId>
-      <artifactId>javax.transaction-api</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-cache</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-config-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-config-ogdl</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-lang</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-jcl</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-logging</artifactId>
       <scope>runtime</scope>
@@ -293,12 +238,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.geode</groupId>
-      <artifactId>geode-http-service</artifactId>
-      <scope>runtime</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
       <groupId>com.sun.istack</groupId>
       <artifactId>istack-commons-runtime</artifactId>
       <scope>runtime</scope>
@@ -314,5 +253,11 @@
       <artifactId>geode-deployment-legacy</artifactId>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-http-service</artifactId>
+      <scope>runtime</scope>
+      <optional>true</optional>
+    </dependency>
   </dependencies>
 </project>
diff --git a/geode-cq/build.gradle b/geode-cq/build.gradle
index 10ecf8b..f16a06b 100644
--- a/geode-cq/build.gradle
+++ b/geode-cq/build.gradle
@@ -30,16 +30,12 @@ dependencies {
 
 
   testImplementation(project(':geode-junit'))
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
 
 
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation(project(':geode-junit'))
   integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.mockito:mockito-core')
+  integrationTestImplementation('org.awaitility:awaitility')
 
 
   distributedTestImplementation(project(':geode-gfsh'))
@@ -52,9 +48,6 @@ dependencies {
   distributedTestImplementation('org.awaitility:awaitility')
   distributedTestImplementation('org.hamcrest:hamcrest')
   distributedTestImplementation('pl.pragmatists:JUnitParams')
-  distributedTestImplementation('com.google.guava:guava')
-  distributedTestImplementation('org.hamcrest:hamcrest-core')
-  distributedTestImplementation('org.mockito:mockito-core')
 
 
   upgradeTestImplementation(project(':geode-dunit'))
@@ -62,7 +55,6 @@ dependencies {
   upgradeTestImplementation('junit:junit')
   upgradeTestImplementation('org.awaitility:awaitility')
   upgradeTestImplementation('org.mockito:mockito-core')
-  upgradeTestImplementation('org.assertj:assertj-core')
 
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 }
diff --git a/geode-deployment/geode-deployment-legacy/build.gradle b/geode-deployment/geode-deployment-legacy/build.gradle
index 259c77a..d19a662 100644
--- a/geode-deployment/geode-deployment-legacy/build.gradle
+++ b/geode-deployment/geode-deployment-legacy/build.gradle
@@ -24,26 +24,14 @@ dependencies {
   implementation(platform(project(':boms:geode-all-bom')))
   compileOnly(platform(project(':boms:geode-all-bom')))
 
-
-  compileOnly(project(':geode-logging'))
-
-
   implementation(project(':geode-core'))
   implementation(project(':geode-common'))
-  implementation('commons-io:commons-io')
-  implementation('org.apache.logging.log4j:log4j-api')
+  implementation('io.swagger:swagger-annotations')
 
+  compileOnly(project(':geode-logging'))
+  compileOnly('com.fasterxml.jackson.core:jackson-databind')
 
   testImplementation(project(':geode-junit'))
-  testImplementation('org.awaitility:awaitility')
-  testImplementation('com.github.stefanbirkner:system-rules')
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-
 
   integrationTestImplementation(project(':geode-junit'))
-  integrationTestImplementation('com.github.stefanbirkner:system-rules')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.mockito:mockito-core')
 }
diff --git a/geode-deployment/geode-deployment-legacy/src/test/resources/expected-pom.xml b/geode-deployment/geode-deployment-legacy/src/test/resources/expected-pom.xml
index 3280b8e..ddda886 100644
--- a/geode-deployment/geode-deployment-legacy/src/test/resources/expected-pom.xml
+++ b/geode-deployment/geode-deployment-legacy/src/test/resources/expected-pom.xml
@@ -57,13 +57,8 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
       <scope>runtime</scope>
     </dependency>
   </dependencies>
diff --git a/geode-dunit/build.gradle b/geode-dunit/build.gradle
index 0b13119..23a543b 100755
--- a/geode-dunit/build.gradle
+++ b/geode-dunit/build.gradle
@@ -22,12 +22,6 @@ apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
-
-  api(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-
-
   implementation(project(':geode-logging'))
   implementation(project(':geode-serialization'))
   implementation(project(':geode-membership'))
@@ -38,6 +32,11 @@ dependencies {
   implementation(project(':geode-log4j')) {
     exclude module: 'geode-core'
   }
+
+  api(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+
   implementation('com.jayway.jsonpath:json-path')
   implementation('org.apache.logging.log4j:log4j-api')
   implementation('org.apache.logging.log4j:log4j-core')
@@ -54,22 +53,19 @@ dependencies {
     ext.optional = true
   }
   implementation('com.google.guava:guava')
-  implementation('com.fasterxml.jackson.core:jackson-databind')
-  implementation('jline:jline')
-  implementation('org.apache.shiro:shiro-core')
-  implementation('org.hamcrest:hamcrest-core')
-  implementation('org.hamcrest:hamcrest')
+  implementation('com.github.stefanbirkner:system-rules') {
+    exclude module: 'junit-dep'
+  }
+
   implementation('org.assertj:assertj-core')
   implementation('org.mockito:mockito-core')
   implementation('org.awaitility:awaitility')
+  implementation('pl.pragmatists:JUnitParams')
+
   implementation('junit:junit') {
     exclude module: 'hamcrest'
   }
 
-
-  testImplementation('pl.pragmatists:JUnitParams')
-
-
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 }
 
diff --git a/geode-dunit/src/test/resources/expected-pom.xml b/geode-dunit/src/test/resources/expected-pom.xml
index 075ebf8..c394379 100644
--- a/geode-dunit/src/test/resources/expected-pom.xml
+++ b/geode-dunit/src/test/resources/expected-pom.xml
@@ -170,29 +170,15 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>jline</groupId>
-      <artifactId>jline</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest</artifactId>
+      <groupId>com.github.stefanbirkner</groupId>
+      <artifactId>system-rules</artifactId>
       <scope>runtime</scope>
+      <exclusions>
+        <exclusion>
+          <artifactId>junit-dep</artifactId>
+          <groupId>*</groupId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.assertj</groupId>
@@ -210,6 +196,11 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
+      <groupId>pl.pragmatists</groupId>
+      <artifactId>JUnitParams</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>runtime</scope>
diff --git a/geode-for-redis/build.gradle b/geode-for-redis/build.gradle
index 6801812..5109311 100644
--- a/geode-for-redis/build.gradle
+++ b/geode-for-redis/build.gradle
@@ -28,108 +28,76 @@ facets {
     includeInCheckLifecycle = false
   }
 }
-configurations {
-  integrationTestImplementation.extendsFrom(commonTestImplementation)
-  acceptanceTestImplementation.extendsFrom(commonTestImplementation)
-  performanceTestImplementation.extendsFrom(commonTestImplementation)
-  distributedTestImplementation.extendsFrom(commonTestImplementation)
-}
 commonTest {
   useJUnitPlatform()
 }
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
-
-
   implementation(project(':geode-serialization'))
   implementation(project(':geode-logging'))
   implementation(project(':geode-core'))
   implementation(project(':geode-gfsh'))
   implementation(project(':geode-membership'))
+  implementation('it.unimi.dsi:fastutil')
+  implementation('com.github.davidmoten:geo')
   implementation('io.netty:netty-all')
   implementation('org.apache.logging.log4j:log4j-api')
+  implementation('commons-codec:commons-codec')
   implementation('org.apache.commons:commons-lang3')
-  implementation('it.unimi.dsi:fastutil-core')
-  implementation('org.apache.shiro:shiro-core')
-
+  implementation('it.unimi.dsi:fastutil')
 
   testImplementation(project(':geode-junit'))
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
   testImplementation('redis.clients:jedis')
   testImplementation('com.pholser:junit-quickcheck-core')
   testImplementation('com.pholser:junit-quickcheck-generators')
   testImplementation('pl.pragmatists:JUnitParams')
-  testImplementation('com.google.guava:guava')
-  testImplementation('org.awaitility:awaitility')
-
 
   commonTestImplementation(project(':geode-junit'))
   commonTestImplementation(project(':geode-dunit'))
-  commonTestImplementation('junit:junit')
-  commonTestImplementation('org.assertj:assertj-core')
   commonTestImplementation('org.testcontainers:testcontainers')
   commonTestImplementation('redis.clients:jedis')
   commonTestImplementation('org.apache.logging.log4j:log4j-core')
-  commonTestImplementation('com.github.docker-java:docker-java-api')
 
-
-  integrationTestImplementation(sourceSets.commonTest.output)
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation(project(':geode-junit'))
-  integrationTestImplementation('com.google.guava:guava')
-  integrationTestImplementation('io.netty:netty-transport')
-  integrationTestImplementation('org.mockito:mockito-core')
-  integrationTestImplementation('org.springframework.shell:spring-shell')
+  integrationTestImplementation(sourceSets.commonTest.output)
+  integrationTestImplementation('redis.clients:jedis')
   integrationTestImplementation('io.lettuce:lettuce-core')
+  integrationTestImplementation('org.apache.logging.log4j:log4j-core')
   // This only exists for debugging PubSubNativeRedisAcceptanceTest
   integrationTestImplementation('org.buildobjects:jproc')
   integrationTestImplementation('pl.pragmatists:JUnitParams')
-  integrationTestImplementation('org.awaitility:awaitility')
-
   integrationTestRuntimeOnly(project(':geode-log4j'))
-
+  integrationTestRuntimeOnly('org.testcontainers:testcontainers')
 
   acceptanceTestImplementation(sourceSets.integrationTest.output)
   acceptanceTestImplementation(sourceSets.distributedTest.output)
   acceptanceTestImplementation(sourceSets.commonTest.output)
   acceptanceTestImplementation(project(':geode-dunit'))
   acceptanceTestImplementation(project(':geode-junit'))
+  acceptanceTestImplementation('redis.clients:jedis')
+  acceptanceTestImplementation('org.testcontainers:testcontainers')
   acceptanceTestRuntimeOnly(project(':geode-log4j'))
   acceptanceTestImplementation('org.springframework.boot:spring-boot-starter-web') {
     exclude module: 'spring-boot-starter-logging'
     exclude module: 'spring-boot-starter-tomcat'
   }
-  gradleLint.ignore {
-    // This only exists for debugging PubSubNativeRedisAcceptanceTest
-    acceptanceTestImplementation('org.buildobjects:jproc')
-    // This annotation is used in tests, but linter is trying to remove it
-    acceptanceTestImplementation('io.github.resilience4j:resilience4j-retry')
-    // This annotation is used in tests, but linter is trying to remove it
-    acceptanceTestImplementation('org.springframework.session:spring-session-data-redis')
-  }
-
-
+  acceptanceTestImplementation('org.springframework.session:spring-session-data-redis')
+  acceptanceTestImplementation('org.apache.logging.log4j:log4j-core')
+  // This only exists for debugging PubSubNativeRedisAcceptanceTest
+  acceptanceTestImplementation('org.buildobjects:jproc')
+  acceptanceTestImplementation('io.github.resilience4j:resilience4j-retry')
+  acceptanceTestImplementation('io.lettuce:lettuce-core')
   acceptanceTestRuntimeOnly('io.lettuce:lettuce-core')
 
-
   distributedTestCompileOnly(platform(project(':boms:geode-all-bom')))
   distributedTestCompileOnly('javax.servlet:javax.servlet-api')
-
-  distributedTestImplementation(sourceSets.commonTest.output)
+  distributedTestImplementation('org.apache.logging.log4j:log4j-core')
   distributedTestImplementation(project(':geode-dunit'))
-  distributedTestImplementation('io.netty:netty-handler')
-  distributedTestImplementation('org.awaitility:awaitility')
-  distributedTestImplementation('org.springframework.boot:spring-boot-autoconfigure')
-  distributedTestImplementation('org.springframework.boot:spring-boot')
-  distributedTestImplementation('org.springframework.data:spring-data-redis')
-  distributedTestImplementation('org.springframework.session:spring-session-core')
-  distributedTestImplementation('org.springframework:spring-context')
-  distributedTestImplementation('org.springframework:spring-core')
-  distributedTestImplementation('org.springframework:spring-web')
-  distributedTestImplementation('org.springframework:spring-webmvc')
+  distributedTestImplementation(sourceSets.commonTest.output)
+  distributedTestImplementation('redis.clients:jedis')
   distributedTestImplementation('io.lettuce:lettuce-core')
   distributedTestImplementation('io.github.resilience4j:resilience4j-retry')
   distributedTestImplementation('org.springframework.boot:spring-boot-starter-web') {
@@ -137,6 +105,7 @@ dependencies {
     exclude module: 'spring-boot-starter-tomcat'
   }
   distributedTestImplementation('org.springframework.session:spring-session-data-redis')
+  distributedTestImplementation('org.testcontainers:testcontainers')
 }
 
 acceptanceTest {
diff --git a/geode-for-redis/src/test/resources/expected-pom.xml b/geode-for-redis/src/test/resources/expected-pom.xml
index eeebb1c..c8da41f 100644
--- a/geode-for-redis/src/test/resources/expected-pom.xml
+++ b/geode-for-redis/src/test/resources/expected-pom.xml
@@ -72,6 +72,16 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
+      <groupId>it.unimi.dsi</groupId>
+      <artifactId>fastutil</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.github.davidmoten</groupId>
+      <artifactId>geo</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
       <groupId>io.netty</groupId>
       <artifactId>netty-all</artifactId>
       <scope>runtime</scope>
@@ -82,18 +92,13 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>it.unimi.dsi</groupId>
-      <artifactId>fastutil-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-core</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
       <scope>runtime</scope>
     </dependency>
   </dependencies>
diff --git a/geode-gfsh/build.gradle b/geode-gfsh/build.gradle
index f0e70e7..e52b466 100644
--- a/geode-gfsh/build.gradle
+++ b/geode-gfsh/build.gradle
@@ -25,19 +25,6 @@ dependencies {
 
   api(project(':geode-core'))
   api(project(':geode-common'))
-  //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'
-  }
-
 
   implementation(project(':geode-logging'))
   implementation(project(':geode-membership'))
@@ -47,58 +34,53 @@ dependencies {
   implementation('org.apache.commons:commons-lang3')
   implementation('com.healthmarketscience.rmiio:rmiio')
   implementation('com.fasterxml.jackson.core:jackson-databind')
-  implementation('net.sf.jopt-simple:jopt-simple')
-  implementation('com.fasterxml.jackson.core:jackson-annotations')
-  implementation('com.fasterxml.jackson.core:jackson-core')
-  implementation('commons-collections:commons-collections')
-  implementation('commons-io:commons-io')
-  implementation('io.micrometer:micrometer-core')
-  implementation('jline:jline')
-  implementation('org.apache.shiro:shiro-core')
-
-  //Log4j is used everywhere
-  implementation('org.apache.logging.log4j:log4j-api')
-
-  //Spring core is used by the the gfsh cli
-  implementation('org.springframework:spring-core') {
-    ext.optional = true
-  }
+  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'))
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('com.github.stefanbirkner:system-rules')
-  testImplementation('com.google.guava:guava')
-  testImplementation('org.mockito:mockito-core')
-
 
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation('pl.pragmatists:JUnitParams')
-  integrationTestImplementation('com.github.stefanbirkner:system-rules')
-  integrationTestImplementation('org.mockito:mockito-core')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
   integrationTestRuntimeOnly('org.apache.derby:derby')
 
-
   distributedTestImplementation(project(':geode-dunit'))
   distributedTestImplementation('pl.pragmatists:JUnitParams')
-  distributedTestImplementation('org.awaitility:awaitility')
-  distributedTestImplementation('com.google.guava:guava')
-  distributedTestImplementation('javax.resource:javax.resource-api')
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.hamcrest:hamcrest-core')
-  distributedTestImplementation('org.hamcrest:hamcrest')
-
   distributedTestRuntimeOnly('org.apache.derby:derby')
 
+  testCompileOnly(platform(project(':boms:geode-all-bom')))
+  testCompileOnly('io.swagger:swagger-annotations')
+
   upgradeTestImplementation(project(':geode-junit'))
   upgradeTestImplementation(project(':geode-dunit'))
+
+  upgradeTestImplementation('org.awaitility:awaitility')
   upgradeTestImplementation('org.assertj:assertj-core')
   upgradeTestImplementation('junit:junit')
   upgradeTestImplementation('xml-apis:xml-apis')
-
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
+
+  implementation('net.sf.jopt-simple:jopt-simple')
+
+  //Log4j is used everywhere
+  implementation('org.apache.logging.log4j:log4j-api')
+
+  //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-gfsh/src/test/resources/expected-pom.xml b/geode-gfsh/src/test/resources/expected-pom.xml
index 4f90a48..84002f7 100644
--- a/geode-gfsh/src/test/resources/expected-pom.xml
+++ b/geode-gfsh/src/test/resources/expected-pom.xml
@@ -132,43 +132,13 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>net.sf.jopt-simple</groupId>
-      <artifactId>jopt-simple</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.micrometer</groupId>
-      <artifactId>micrometer-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>jline</groupId>
-      <artifactId>jline</artifactId>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-core</artifactId>
+      <groupId>net.sf.jopt-simple</groupId>
+      <artifactId>jopt-simple</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
diff --git a/geode-http-service/build.gradle b/geode-http-service/build.gradle
index b092ea3..c932659 100755
--- a/geode-http-service/build.gradle
+++ b/geode-http-service/build.gradle
@@ -22,13 +22,11 @@ apply from: "${project.projectDir}/../gradle/warnings.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
-
   implementation(project(':geode-logging'))
+
   implementation('org.apache.logging.log4j:log4j-api')
   implementation('org.eclipse.jetty:jetty-webapp')
   implementation('org.eclipse.jetty:jetty-server')
-  implementation('org.eclipse.jetty:jetty-http')
-  implementation('org.eclipse.jetty:jetty-util')
   implementation('org.apache.commons:commons-lang3')
 
   compileOnly(project(':geode-core'))
@@ -39,7 +37,4 @@ dependencies {
   testImplementation(project(':geode-core'))
   testImplementation(project(':geode-common'))
   testImplementation(project(':geode-junit'))
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
 }
diff --git a/geode-http-service/src/test/resources/expected-pom.xml b/geode-http-service/src/test/resources/expected-pom.xml
index e93fc21..2768c89 100644
--- a/geode-http-service/src/test/resources/expected-pom.xml
+++ b/geode-http-service/src/test/resources/expected-pom.xml
@@ -67,16 +67,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <scope>runtime</scope>
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 88d3de7..13836e4 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -27,6 +27,7 @@ compileJava {
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
 
+  testImplementation(project(':geode-common'))
   compileOnly(project(':geode-core'))
   compileOnly(project(':geode-membership'))
   compileOnly(project(':geode-logging'))
@@ -51,25 +52,20 @@ 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')
 
   implementation('org.junit.jupiter:junit-jupiter-engine')
   implementation('org.junit.vintage:junit-vintage-engine')
 
   implementation('pl.pragmatists:JUnitParams')
-  implementation('javax.transaction:javax.transaction-api')
-  implementation('org.apache.shiro:shiro-core')
-  implementation('org.hamcrest:hamcrest-core')
-  implementation('org.springframework.shell:spring-shell')
-
-
-  testImplementation(project(':geode-common'))
-
 
   integrationTestImplementation(project(':geode-core'))
   integrationTestImplementation(project(':geode-serialization'))
diff --git a/geode-junit/src/test/resources/expected-pom.xml b/geode-junit/src/test/resources/expected-pom.xml
index b45e2bf..e3db01d 100644
--- a/geode-junit/src/test/resources/expected-pom.xml
+++ b/geode-junit/src/test/resources/expected-pom.xml
@@ -144,6 +144,11 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
+      <groupId>org.skyscreamer</groupId>
+      <artifactId>jsonassert</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter-engine</artifactId>
       <scope>runtime</scope>
@@ -158,25 +163,5 @@
       <artifactId>JUnitParams</artifactId>
       <scope>runtime</scope>
     </dependency>
-    <dependency>
-      <groupId>javax.transaction</groupId>
-      <artifactId>javax.transaction-api</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.shiro</groupId>
-      <artifactId>shiro-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.shell</groupId>
-      <artifactId>spring-shell</artifactId>
-      <scope>runtime</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/geode-log4j/build.gradle b/geode-log4j/build.gradle
index 3e4ccaf3..9eedad0 100644
--- a/geode-log4j/build.gradle
+++ b/geode-log4j/build.gradle
@@ -27,7 +27,7 @@ dependencies {
   implementation(project(':geode-core'))
   implementation(project(':geode-logging'))
   implementation('org.apache.commons:commons-lang3')
-  implementation('commons-io:commons-io')
+
   implementation('org.apache.logging.log4j:log4j-api')
   implementation('org.apache.logging.log4j:log4j-core')
 
@@ -45,23 +45,37 @@ dependencies {
     ext.optional = true
   }
 
-
-  jmhImplementation(project(':geode-junit'))
+  jmhImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  jmhImplementation('junit:junit')
   jmhImplementation('org.assertj:assertj-core')
   jmhImplementation('org.mockito:mockito-core')
 
-
-  testImplementation(project(':geode-junit'))
+  testImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
-  testImplementation('com.github.stefanbirkner:system-rules')
+  testImplementation('org.mockito:mockito-core')
 
-  integrationTestImplementation(project(':geode-junit'))
+  integrationTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
   integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.mockito:mockito-core')
   integrationTestImplementation('org.apache.logging.log4j:log4j-core::tests')
   integrationTestImplementation('org.apache.logging.log4j:log4j-core::test-sources')
   integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('com.github.stefanbirkner:system-rules')
+
+  distributedTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  distributedTestImplementation('commons-io:commons-io')
+  distributedTestImplementation('junit:junit')
+  distributedTestImplementation('org.apache.commons:commons-lang3')
+  distributedTestImplementation('org.assertj:assertj-core')
+  distributedTestImplementation('org.awaitility:awaitility')
+  distributedTestImplementation('org.hamcrest:hamcrest')
+  distributedTestImplementation('org.mockito:mockito-core')
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
 }
diff --git a/geode-log4j/src/test/resources/expected-pom.xml b/geode-log4j/src/test/resources/expected-pom.xml
index 9702d26..874caa6 100644
--- a/geode-log4j/src/test/resources/expected-pom.xml
+++ b/geode-log4j/src/test/resources/expected-pom.xml
@@ -62,11 +62,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
       <scope>runtime</scope>
diff --git a/geode-logging/build.gradle b/geode-logging/build.gradle
index d4deb93..6a32177 100644
--- a/geode-logging/build.gradle
+++ b/geode-logging/build.gradle
@@ -36,8 +36,26 @@ dependencies {
   testImplementation('org.mockito:mockito-core')
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
-  testImplementation('com.tngtech.archunit:archunit')
+
+
+  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')
+
 }
 
 distributedTest {
diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle
index 141c458..fe375d8 100644
--- a/geode-lucene/build.gradle
+++ b/geode-lucene/build.gradle
@@ -37,23 +37,20 @@ dependencies {
   implementation('org.apache.commons:commons-lang3')
   implementation('mx4j:mx4j')
   implementation('org.apache.logging.log4j:log4j-api')
-  implementation('org.springframework.shell:spring-shell')
 
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('com.fasterxml.jackson.core:jackson-annotations')
 
   runtimeOnly('org.apache.lucene:lucene-analyzers-phonetic')
 
 
   testImplementation(project(':geode-junit'))
   testImplementation(project(':geode-lucene:geode-lucene-test'))
-  testImplementation('junit:junit')
   testImplementation('org.apache.lucene:lucene-test-framework')
   testImplementation('com.pholser:junit-quickcheck-generators')
   testImplementation('pl.pragmatists:JUnitParams')
   testImplementation('com.pholser:junit-quickcheck-core')
   testImplementation('com.carrotsearch.randomizedtesting:randomizedtesting-runner')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.awaitility:awaitility')
-  testImplementation('org.mockito:mockito-core')
 
 
   distributedTestImplementation(project(':geode-junit'))
@@ -61,37 +58,21 @@ dependencies {
   distributedTestImplementation(project(':geode-lucene:geode-lucene-test'))
   distributedTestImplementation('pl.pragmatists:JUnitParams')
   distributedTestImplementation('org.hamcrest:hamcrest')
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
-  distributedTestImplementation('org.hamcrest:hamcrest-core')
-  distributedTestImplementation('org.mockito:mockito-core')
 
 
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation(project(':geode-lucene:geode-lucene-test'))
   integrationTestImplementation('org.apache.lucene:lucene-analyzers-phonetic')
   integrationTestImplementation('pl.pragmatists:JUnitParams')
-  integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.mockito:mockito-core')
 
 
   upgradeTestImplementation(project(':geode-dunit'))
-  upgradeTestImplementation('junit:junit')
   upgradeTestImplementation('commons-io:commons-io')
-  upgradeTestImplementation('org.assertj:assertj-core')
-  upgradeTestImplementation('org.awaitility:awaitility')
-
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 
 
   performanceTestImplementation(project(':geode-junit'))
   performanceTestImplementation(project(':geode-lucene:geode-lucene-test'))
-  performanceTestImplementation('junit:junit')
 }
 
 //The lucene integration tests don't have any issues that requiring forking
diff --git a/geode-lucene/geode-lucene-test/build.gradle b/geode-lucene/geode-lucene-test/build.gradle
index c93ab6c..4282886 100644
--- a/geode-lucene/geode-lucene-test/build.gradle
+++ b/geode-lucene/geode-lucene-test/build.gradle
@@ -22,15 +22,13 @@ apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
+  implementation('org.apache.lucene:lucene-core')
+  implementation(project(':geode-logging'))
+  implementation(project(':geode-serialization'))
   api(project(':geode-core'))
-
-
   compileOnly(project(':geode-lucene'))
 
-
-  implementation(project(':geode-logging'))
-  implementation(project(':geode-serialization'))
-  implementation('org.apache.lucene:lucene-core')
   implementation('junit:junit')
+  implementation('org.apache.lucene:lucene-test-framework')
   implementation('org.mockito:mockito-core')
 }
diff --git a/geode-lucene/src/test/resources/expected-pom.xml b/geode-lucene/src/test/resources/expected-pom.xml
index 9c45fa8..2c8d5af 100644
--- a/geode-lucene/src/test/resources/expected-pom.xml
+++ b/geode-lucene/src/test/resources/expected-pom.xml
@@ -108,11 +108,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.springframework.shell</groupId>
-      <artifactId>spring-shell</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.lucene</groupId>
       <artifactId>lucene-analyzers-phonetic</artifactId>
       <scope>runtime</scope>
diff --git a/geode-management/build.gradle b/geode-management/build.gradle
index c2abe48..9c9b901 100755
--- a/geode-management/build.gradle
+++ b/geode-management/build.gradle
@@ -23,38 +23,34 @@ apply from: "${project.projectDir}/../gradle/warnings.gradle"
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
 
-  api('io.swagger:swagger-annotations') {
-    ext.optional = true
-  }
-
-
-  compileOnly(project(':geode-common'))
-
-
   implementation(project(':geode-serialization'))
+
   implementation('org.apache.commons:commons-lang3')
   implementation('commons-io:commons-io')
   implementation('com.fasterxml.jackson.core:jackson-databind')
+  implementation('com.fasterxml.jackson.core:jackson-core')
   implementation('com.fasterxml.jackson.core:jackson-annotations')
   implementation('org.springframework:spring-web')
   implementation('org.apache.httpcomponents:httpclient')
-  implementation('org.apache.httpcomponents:httpcore')
-  implementation('org.springframework:spring-core')
 
+  compileOnly(project(':geode-common')) {
+    exclude module: 'junit'
+  }
+  compileOnly('io.springfox:springfox-swagger2') {
+    exclude module: 'slf4j-api'
+    exclude module: "jackson-annotations"
+  }
 
   testImplementation(project(':geode-common'))
   testImplementation(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
-  testImplementation('com.fasterxml.jackson.core:jackson-core')
-  testImplementation('junit:junit')
-  testImplementation('com.github.stefanbirkner:system-rules')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.awaitility:awaitility')
-  testImplementation('org.mockito:mockito-core')
 
+  testCompileOnly(platform(project(':boms:geode-all-bom')))
+  testCompileOnly('io.swagger:swagger-annotations')
 
   integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation(project(':geode-junit'))
   integrationTestImplementation('junit:junit')
+  integrationTestImplementation('org.awaitility:awaitility')
 }
diff --git a/geode-management/src/test/resources/expected-pom.xml b/geode-management/src/test/resources/expected-pom.xml
index e17203a..3211b78 100644
--- a/geode-management/src/test/resources/expected-pom.xml
+++ b/geode-management/src/test/resources/expected-pom.xml
@@ -47,12 +47,6 @@
   </dependencyManagement>
   <dependencies>
     <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-annotations</artifactId>
-      <scope>compile</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-serialization</artifactId>
       <scope>runtime</scope>
@@ -74,6 +68,11 @@
     </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-annotations</artifactId>
       <scope>runtime</scope>
     </dependency>
@@ -87,15 +86,5 @@
       <artifactId>httpclient</artifactId>
       <scope>runtime</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpcore</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-core</artifactId>
-      <scope>runtime</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/geode-membership/build.gradle b/geode-membership/build.gradle
index 6898186..da30317 100644
--- a/geode-membership/build.gradle
+++ b/geode-membership/build.gradle
@@ -26,43 +26,47 @@ dependencies {
   // Geode-common has annotations and other pieces used by geode-logging
   api(project(':geode-common'))
 
-
-  compileOnly('org.jetbrains:annotations')
-
-
   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-core')
+  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')
+
 
   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')
+
 
 
   integrationTestImplementation(project(':geode-junit'))
-  integrationTestImplementation('pl.pragmatists:JUnitParams')
-  integrationTestImplementation('com.tngtech.archunit:archunit')
   integrationTestImplementation('com.tngtech.archunit:archunit-junit4')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.awaitility:awaitility')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('org.mockito:mockito-core')
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
 
   integrationTestRuntimeOnly('org.apache.logging.log4j:log4j-core')
+
+
+  distributedTestImplementation(project(':geode-junit'))
+  distributedTestImplementation(project(':geode-dunit'))
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
+
+
+
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 }
 
 distributedTest {
diff --git a/geode-membership/src/test/resources/expected-pom.xml b/geode-membership/src/test/resources/expected-pom.xml
index b069e00..9eeaf7c 100644
--- a/geode-membership/src/test/resources/expected-pom.xml
+++ b/geode-membership/src/test/resources/expected-pom.xml
@@ -83,7 +83,7 @@
     </dependency>
     <dependency>
       <groupId>it.unimi.dsi</groupId>
-      <artifactId>fastutil-core</artifactId>
+      <artifactId>fastutil</artifactId>
       <scope>runtime</scope>
     </dependency>
     <dependency>
diff --git a/geode-memcached/build.gradle b/geode-memcached/build.gradle
index d3da415..cc1a11c 100644
--- a/geode-memcached/build.gradle
+++ b/geode-memcached/build.gradle
@@ -27,10 +27,16 @@ dependencies {
   implementation(project(':geode-core'))
   implementation(project(':geode-logging'))
   implementation(project(':geode-serialization'))
+
   implementation('org.apache.logging.log4j:log4j-api')
 
-  integrationTestImplementation(project(':geode-junit'))
+  testImplementation('org.mockito:mockito-core')
+  testImplementation(project(':geode-junit'))
+
+  integrationTestImplementation(project(':geode-membership'))
+  integrationTestImplementation(project(':geode-core'))
   integrationTestImplementation('net.spy:spymemcached')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
+  integrationTestImplementation(project(':geode-junit'))
+
+  distributedTestImplementation(project(':geode-dunit'))
 }
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index d4a72d7..2ae1a57 100644
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -30,10 +30,6 @@ dependencies {
   compileOnly(platform(project(':boms:geode-all-bom')))
   providedCompile(platform(project(':boms:geode-all-bom')))
 
-
-  compileOnly('org.mortbay.jetty:servlet-api')
-
-
   implementation('org.springframework.security:spring-security-core')
   implementation('javax.servlet:javax.servlet-api')
   implementation('mx4j:mx4j') {
@@ -42,8 +38,17 @@ dependencies {
   implementation('mx4j:mx4j-remote') {
     ext.optional = true
   }
+
+  uiTestImplementation('junit:junit')
+  uiTestImplementation('org.apache.httpcomponents:httpcore')
+  uiTestImplementation('org.seleniumhq.selenium:selenium-api')
+  uiTestImplementation('org.assertj:assertj-core')
+  uiTestImplementation('org.apache.httpcomponents:httpclient')
+  uiTestImplementation('org.seleniumhq.selenium:selenium-support')
   implementation('org.springframework:spring-beans')
+
   // Needed to fully use log4j instead of commons-logging.
+  implementation('org.apache.logging.log4j:log4j-jcl')
   implementation('org.apache.logging.log4j:log4j-api')
 
   implementation('commons-beanutils:commons-beanutils')
@@ -82,12 +87,12 @@ dependencies {
   implementation('com.fasterxml.jackson.core:jackson-annotations')
   implementation('com.fasterxml.jackson.core:jackson-core')
   implementation('com.fasterxml.jackson.core:jackson-databind')
-  implementation('org.springframework.security:spring-security-crypto')
 
+  compileOnly('org.mortbay.jetty:servlet-api')
 
   runtimeOnly('org.springframework:spring-expression')
-  runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl')
 
+  runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl')
 
   providedCompile('commons-logging:commons-logging')
 
@@ -99,10 +104,7 @@ dependencies {
   testImplementation(project(':geode-log4j')) {
     exclude module: 'geode-core'
   }
-  testImplementation('com.github.stefanbirkner:system-rules')
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
+  testImplementation('org.springframework:spring-test')
 
 
   integrationTestImplementation(project(':geode-core'))
@@ -112,19 +114,19 @@ dependencies {
   integrationTestImplementation(project(':geode-log4j')) {
     exclude module: 'geode-core'
   }
+
   integrationTestImplementation(project(':geode-pulse'))
   integrationTestImplementation(project(':geode-pulse:geode-pulse-test'))
   integrationTestImplementation(project(':geode-serialization'))
+
   integrationTestImplementation('org.springframework:spring-test')
+  integrationTestImplementation('org.springframework:spring-webmvc')
   integrationTestImplementation('org.springframework.security:spring-security-test')
-  integrationTestImplementation('org.assertj:assertj-core')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.mockito:mockito-core')
-  integrationTestImplementation('org.springframework:spring-core')
+
   integrationTestImplementation('junit:junit')
   integrationTestImplementation('org.hamcrest:hamcrest')
 
-
+  uiTestRuntimeOnly(project(':geode-core'))
   uiTestImplementation(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
@@ -133,15 +135,6 @@ dependencies {
   }
   uiTestImplementation(project(':geode-pulse:geode-pulse-test'))
   uiTestImplementation('org.seleniumhq.selenium:selenium-remote-driver')
-  uiTestImplementation('junit:junit')
-  uiTestImplementation('org.apache.httpcomponents:httpcore')
-  uiTestImplementation('org.seleniumhq.selenium:selenium-api')
-  uiTestImplementation('org.assertj:assertj-core')
-  uiTestImplementation('org.apache.httpcomponents:httpclient')
-  uiTestImplementation('org.seleniumhq.selenium:selenium-support')
-  uiTestImplementation('com.vaadin.external.google:android-json')
-
-  uiTestRuntimeOnly(project(':geode-core'))
 }
 
 def generatedResources = "$buildDir/generated-resources/main"
diff --git a/geode-pulse/geode-pulse-test/build.gradle b/geode-pulse/geode-pulse-test/build.gradle
index 469200d..21b38db 100644
--- a/geode-pulse/geode-pulse-test/build.gradle
+++ b/geode-pulse/geode-pulse-test/build.gradle
@@ -20,25 +20,24 @@ apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
-  api(project(':geode-core'))
-  api(project(':geode-membership'))
-  api(project(':geode-http-service'))
-  api(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-
-
-  compileOnly(project(':geode-pulse'))
-
-
   implementation('org.awaitility:awaitility')
   implementation('junit:junit')
+  implementation('org.eclipse.jetty:jetty-server')
   implementation('commons-io:commons-io')
   implementation('org.apache.commons:commons-lang3')
   implementation('mx4j:mx4j')
   implementation('mx4j:mx4j-remote') {
     ext.optional = true
   }
+
+  api(project(':geode-core'))
+  api(project(':geode-membership'))
+  api(project(':geode-http-service'))
+  api(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+  compileOnly(project(':geode-pulse'))
+
   implementation('org.seleniumhq.selenium:selenium-api')
   implementation('org.seleniumhq.selenium:selenium-chrome-driver')
   implementation('org.seleniumhq.selenium:selenium-support')
diff --git a/geode-rebalancer/build.gradle b/geode-rebalancer/build.gradle
index 6ab0175..96911f1 100644
--- a/geode-rebalancer/build.gradle
+++ b/geode-rebalancer/build.gradle
@@ -24,10 +24,12 @@ apply from: "${project.projectDir}/../gradle/warnings.gradle"
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
   api(project(':geode-core'))
-
-
   implementation(project(':geode-serialization'))
   implementation(project(':geode-logging'))
+  integrationTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-core'
+  }
+
   implementation('org.apache.logging.log4j:log4j-api')
   implementation('org.springframework:spring-context') {
     exclude module: 'spring-beans'
@@ -35,18 +37,12 @@ dependencies {
     exclude module: 'spring-aop'
   }
 
-
   testImplementation('junit:junit')
   testImplementation('org.junit.vintage:junit-vintage-engine')
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
 
-
-  integrationTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
   integrationTestImplementation('junit:junit')
   integrationTestImplementation('org.awaitility:awaitility')
   integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
 }
diff --git a/geode-serialization/build.gradle b/geode-serialization/build.gradle
index 512e7d1..b54ca9b 100755
--- a/geode-serialization/build.gradle
+++ b/geode-serialization/build.gradle
@@ -27,8 +27,10 @@ dependencies {
   implementation(project(':geode-common'))
 
   //FastUtil contains optimized collections that are used in multiple places in core
-  implementation('it.unimi.dsi:fastutil-core')
+  implementation('it.unimi.dsi:fastutil')
 
+  //Log4j is used everywhere
+  implementation('org.apache.logging.log4j:log4j-api')
 
   compileOnly(platform(project(':boms:geode-all-bom')))
   compileOnly('org.jetbrains:annotations')
@@ -37,8 +39,10 @@ dependencies {
     exclude module: 'geode-serialization'
   }
   testImplementation(project(':geode-concurrency-test'))
+
   testImplementation('com.tngtech.archunit:archunit-junit4')
-  testImplementation('com.tngtech.archunit:archunit')
+  testImplementation('org.apache.bcel:bcel')
+  testImplementation('org.mockito:mockito-core')
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
 
@@ -49,7 +53,15 @@ dependencies {
   integrationTestImplementation(project(':geode-dunit')) {
     exclude module: 'geode-serialization'
   }
-  integrationTestImplementation('junit:junit')
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
+  distributedTestImplementation(project(':geode-junit')) {
+    exclude module: 'geode-serialization'
+  }
+  distributedTestImplementation(project(':geode-dunit')) {
+    exclude module: 'geode-serialization'
+  }
+  distributedTestImplementation('pl.pragmatists:JUnitParams')
+  upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 }
 
 distributedTest {
diff --git a/geode-serialization/src/test/resources/expected-pom.xml b/geode-serialization/src/test/resources/expected-pom.xml
index f2ab6a5..3da2a5a 100644
--- a/geode-serialization/src/test/resources/expected-pom.xml
+++ b/geode-serialization/src/test/resources/expected-pom.xml
@@ -53,7 +53,12 @@
     </dependency>
     <dependency>
       <groupId>it.unimi.dsi</groupId>
-      <artifactId>fastutil-core</artifactId>
+      <artifactId>fastutil</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
       <scope>runtime</scope>
     </dependency>
   </dependencies>
diff --git a/geode-tcp-server/build.gradle b/geode-tcp-server/build.gradle
index d8f6746..0a9e583 100644
--- a/geode-tcp-server/build.gradle
+++ b/geode-tcp-server/build.gradle
@@ -21,30 +21,27 @@ apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
 
-
   implementation(project(':geode-logging'))
   implementation(project(':geode-serialization'))
+
   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('junit:junit')
   testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
-  testImplementation('com.tngtech.archunit:archunit')
+
   testImplementation('com.tngtech.archunit:archunit-junit4')
 
+  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('junit:junit')
-  upgradeTestImplementation('org.assertj:assertj-core')
-  upgradeTestImplementation('org.awaitility:awaitility')
 
   upgradeTestRuntimeOnly(project(path: ':geode-old-versions', configuration: 'classpathsOutput'))
 }
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index ab35393..bb614d2 100644
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -37,29 +37,32 @@ dependencies {
   compileOnly(project(':geode-logging'))
   compileOnly(project(':geode-membership'))
   compileOnly(project(':geode-serialization'))
-  compileOnly('javax.servlet:javax.servlet-api')
-  compileOnly('io.swagger:swagger-annotations')
-  compileOnly('org.apache.logging.log4j:log4j-api')
-  // jackson-annotations must be accessed from the geode classloader and not the webapp
-  compileOnly('com.fasterxml.jackson.core:jackson-annotations')
 
+  compileOnly('javax.servlet:javax.servlet-api')
 
   implementation('org.apache.commons:commons-lang3')
   implementation('commons-fileupload:commons-fileupload') {
     exclude module: 'commons-io'
   }
+  // jackson-annotations must be accessed from the geode classloader and not the webapp
+  compileOnly('com.fasterxml.jackson.core:jackson-annotations')
   implementation('com.fasterxml.jackson.core:jackson-core')
   implementation('com.fasterxml.jackson.core:jackson-databind'){
     exclude module: 'jackson-annotations'
   }
+
+  compileOnly('io.swagger:swagger-annotations')
+
   implementation('io.springfox:springfox-swagger2') {
     exclude module: 'slf4j-api'
     exclude module: 'jackson-annotations'
     exclude module: 'swagger-annotations'
   }
+
   implementation('io.springfox:springfox-swagger-ui') {
     exclude module: 'slf4j-api'
   }
+
   implementation('org.springframework:spring-beans')
   implementation('org.springframework.security:spring-security-core')
   implementation('org.springframework.security:spring-security-web')
@@ -83,16 +86,17 @@ dependencies {
     exclude module: 'spring-core'
     exclude module: 'spring-beans'
   }
+  compileOnly('org.apache.logging.log4j:log4j-api')
 
 
   testImplementation(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
   testImplementation(project(':geode-core'))
-  testImplementation('junit:junit')
   testImplementation('javax.servlet:javax.servlet-api')
-  testImplementation('org.assertj:assertj-core')
-  testImplementation('org.mockito:mockito-core')
+
+  integrationTestImplementation('org.springframework:spring-test')
+  integrationTestImplementation('org.springframework.security:spring-security-test')
 
   integrationTestImplementation(project(':geode-core'))
   integrationTestImplementation(project(':geode-junit')) {
@@ -101,16 +105,6 @@ dependencies {
   integrationTestImplementation(project(':geode-dunit')) {
     exclude module: 'geode-core'
   }
-  integrationTestImplementation('org.springframework.security:spring-security-test')
-  integrationTestImplementation('org.springframework.security:spring-security-test')
-  integrationTestImplementation('org.skyscreamer:jsonassert')
-  integrationTestImplementation('org.hamcrest:hamcrest-core')
-  integrationTestImplementation('org.hamcrest:hamcrest')
-  integrationTestImplementation('com.jayway.jsonpath:json-path')
-  integrationTestImplementation('org.springframework:spring-test')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('com.vaadin.external.google:android-json')
-  integrationTestImplementation('org.assertj:assertj-core')
 }
 
 sourceSets {
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index fde1ae8..f7446aa 100644
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -47,13 +47,6 @@ dependencies {
 
   implementation('org.springframework:spring-webmvc')
   implementation('org.apache.commons:commons-lang3')
-  implementation('commons-io:commons-io')
-  implementation('org.apache.shiro:shiro-core')
-  implementation('org.springframework:spring-beans')
-  implementation('org.springframework:spring-context')
-  implementation('org.springframework:spring-core')
-  implementation('org.springframework:spring-jcl')
-  implementation('org.springframework:spring-web')
 
   runtimeOnly('org.springframework:spring-aspects') {
     exclude module: 'aspectjweaver'
@@ -61,28 +54,21 @@ dependencies {
   runtimeOnly('org.springframework:spring-oxm')
   runtimeOnly('commons-fileupload:commons-fileupload')
 
-
   testImplementation(project(':geode-junit'))
-  testImplementation('junit:junit')
-  testImplementation('org.assertj:assertj-core')
   testImplementation('org.springframework:spring-test')
-  testImplementation('org.mockito:mockito-core')
 
   integrationTestImplementation(project(':geode-dunit'));
-  integrationTestImplementation('org.mockito:mockito-core')
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.assertj:assertj-core')
 
   integrationTestRuntimeOnly(files(war.destinationDirectory))
 
   distributedTestImplementation(project(':geode-common'))
   distributedTestImplementation(project(':geode-dunit'))
   distributedTestImplementation('pl.pragmatists:JUnitParams')
-  distributedTestImplementation('junit:junit')
-  distributedTestImplementation('org.assertj:assertj-core')
-  distributedTestImplementation('org.awaitility:awaitility')
 
   distributedTestRuntimeOnly(files(war.destinationDirectory))
+
+  upgradeTestImplementation(project(':geode-dunit')) {
+  }
 }
 
 distributedTest.dependsOn(war)
diff --git a/gradle/lint.gradle b/gradle/lint.gradle
index 3d2181d..9d91f5a 100644
--- a/gradle/lint.gradle
+++ b/gradle/lint.gradle
@@ -18,23 +18,12 @@
 allprojects {
   apply plugin: 'nebula.lint'
   gradleLint.rules = []
-  gradleLint.rules += 'unused-dependency' ; // broken due to Error from [com.netflix.nebula.lint.rule.GradleLintRule$1] processing source file [null]
-//  gradleLint.rules += 'unused-exclude-by-dep' ; // breaks some web bean tests
-//  gradleLint.rules += 'unused-exclude-by-conf' ; // breaks some web bean tests
-//  gradleLint.rules += 'duplicate-dependency-class' ; // broken due to Error from [com.netflix.nebula.lint.rule.GradleLintRule$1] processing source file [null]
-  gradleLint.rules += 'undeclared-dependency'
-//  gradleLint.rules += 'overridden-dependency-version'
-//  gradleLint.rules += 'archaic-wrapper'
-//  gradleLint.rules += 'deprecated-dependency-configuration'
-//  gradleLint.rules += 'deprecated-task-operator'
-//  gradleLint.rules += 'empty-closure-rule'
+  gradleLint.rules += 'overridden-dependency-version'
+  gradleLint.rules += 'unused-dependency'
+  gradleLint.rules += 'unused-exclude-by-dep'
+  gradleLint.rules += 'unused-exclude-by-conf'
 
   gradleLint.alwaysRun = false
   fixGradleLint.mustRunAfter(':combineReports')
-  fixLintGradle.mustRunAfter(':combineReports')
   lintGradle.mustRunAfter(':combineReports')
-  gradleLint {
-    reportFormat = 'html'
-    reportOnlyFixableViolations = true
-  }
 }
diff --git a/static-analysis/pmd-rules/build.gradle b/static-analysis/pmd-rules/build.gradle
index 13e9fd4..60f24fc 100644
--- a/static-analysis/pmd-rules/build.gradle
+++ b/static-analysis/pmd-rules/build.gradle
@@ -22,8 +22,5 @@ dependencies {
   implementation(platform(project(':boms:geode-all-bom')))
   testRuntimeOnly('org.junit.vintage:junit-vintage-engine')
   implementation('net.sourceforge.pmd:pmd-java')
-  implementation('net.sourceforge.pmd:pmd-core')
-
-
   testImplementation('net.sourceforge.pmd:pmd-test')
 }