You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2020/10/10 05:38:27 UTC

[geode] branch develop updated: GEODE-8590: Cleanup dependencies in the session state modules (#5610)

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 6476002  GEODE-8590: Cleanup dependencies in the session state modules (#5610)
6476002 is described below

commit 6476002f8a9195b2f19ff3d746cc4312773bb402
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Fri Oct 9 22:36:15 2020 -0700

    GEODE-8590: Cleanup dependencies in the session state modules (#5610)
    
    * Fixes Geode session state dependencies.
    * Fixes module manifest project detection.
---
 .../src/test/resources/expected-pom.xml            | 12 +++
 .../geode-modules-session-internal/build.gradle    | 22 ++----
 extensions/geode-modules-test/build.gradle         | 41 +++--------
 extensions/geode-modules-tomcat7/build.gradle      | 59 +++++----------
 extensions/geode-modules-tomcat8/build.gradle      | 86 +++++++---------------
 .../src/test/resources/expected-pom.xml            | 60 +++++++++++++++
 extensions/geode-modules-tomcat9/build.gradle      | 48 +++++-------
 extensions/geode-modules/build.gradle              | 56 +++++---------
 .../src/test/resources/expected-pom.xml            | 75 +++++++++++++++++++
 gradle/publish-java.gradle                         |  5 +-
 10 files changed, 247 insertions(+), 217 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 e387908..e09c8c7 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -1059,6 +1059,18 @@
       </dependency>
       <dependency>
         <groupId>org.apache.geode</groupId>
+        <artifactId>geode-modules</artifactId>
+        <version>${version}</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-modules-tomcat8</artifactId>
+        <version>${version}</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
         <artifactId>geode-lucene-test</artifactId>
         <version>${version}</version>
         <scope>compile</scope>
diff --git a/extensions/geode-modules-session-internal/build.gradle b/extensions/geode-modules-session-internal/build.gradle
index 55c7980..f34e326 100644
--- a/extensions/geode-modules-session-internal/build.gradle
+++ b/extensions/geode-modules-session-internal/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -19,21 +17,11 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-
-
 dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  compile(project(':extensions:geode-modules'))
-  compile(project(':geode-core'))
-  implementation(project(':geode-logging'))
+  // main
+  implementation(platform(project(':boms:geode-all-bom')))
+  implementation(project(':extensions:geode-modules'))
 
-  implementation('javax.servlet:javax.servlet-api')
-  implementation('mx4j:mx4j')
-  implementation('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
-  implementation('org.slf4j:slf4j-api')
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('javax.servlet:javax.servlet-api')
 }
-
-jar {
-  baseName = 'geode-modules-session-internal'
-}
-
diff --git a/extensions/geode-modules-test/build.gradle b/extensions/geode-modules-test/build.gradle
index 936c5f6..c7b40e0 100644
--- a/extensions/geode-modules-test/build.gradle
+++ b/extensions/geode-modules-test/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -17,41 +15,20 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
  * limitations under the License.
  */
 
-apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
+import org.apache.geode.gradle.plugins.DependencyConstraints
 
+apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 dependencies {
+  // main
   implementation(platform(project(':boms:geode-all-bom')))
-  implementation(project(':extensions:geode-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
-  implementation(project(':geode-core'))
-  implementation(project(':geode-logging'))
-
-  implementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-
-  implementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-
-  implementation('org.assertj:assertj-core')
+  implementation(project(':geode-dunit'))
   implementation('org.springframework:spring-core')
-  implementation('org.mockito:mockito-core')
-  implementation('commons-io:commons-io')
-  implementation('javax.servlet:javax.servlet-api')
-  implementation('junit:junit')
-  implementation('org.httpunit:httpunit') {
-    // this version of httpunit contains very outdated xercesImpl
-    exclude group: 'xerces'
-  }
+  implementation('org.httpunit:httpunit')
   implementation('pl.pragmatists:JUnitParams')
 
-  compileOnly('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version')) {
-    exclude module: 'annotations-api'
-    exclude module: 'tribes'
-  }
-}
+  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 d2c5fdc..c4d8699 100644
--- a/extensions/geode-modules-tomcat7/build.gradle
+++ b/extensions/geode-modules-tomcat7/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -17,59 +15,38 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
  * limitations under the License.
  */
 
+import org.apache.geode.gradle.plugins.DependencyConstraints
+
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 
 evaluationDependsOn(":geode-core")
 
+dependencies {
+  //main
+  implementation(platform(project(':boms:geode-all-bom')))
 
+  api(project(':geode-core'))
+  api(project(':extensions:geode-modules'))
 
-dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  compile(project(':geode-core'))
-  implementation('mx4j:mx4j')
-  implementation('javax.servlet:javax.servlet-api')
-  integrationTestImplementation('org.httpunit:httpunit')
-  integrationTestImplementation('junit:junit')
-  compile(project(':extensions:geode-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
-  testImplementation(project(':extensions:geode-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
+  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'))
 
-  implementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat7.version')) {
-    exclude module: 'tomcat-annotations-api'
-    exclude module: 'tomcat-servlet-api'
-  }
-  implementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat7.version')) {
-    exclude module: 'tomcat-servlet-api'
-  }
-  implementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat7.version'))
 
-  testImplementation('org.httpunit:httpunit')
+  // test
+  testImplementation(project(':extensions:geode-modules-test'))
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
-  testImplementation(project(':extensions:geode-modules-test'))
-  integrationTestImplementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat7.version'))
+  testImplementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat7.version'))
 
-  integrationTestRuntimeOnly('javax.annotation:jsr250-api')
-  integrationTestRuntimeOnly('javax.ejb:ejb-api')
-  integrationTestRuntimeOnly('javax.servlet:javax.servlet-api')
-  integrationTestRuntimeOnly('org.eclipse.persistence:javax.persistence')
-  integrationTestRuntimeOnly('xerces:xercesImpl')
-}
 
-eclipse.classpath.file {
-  whenMerged { classpath ->
-    classpath.entries.removeAll { entry -> entry.path.contains('geode-modules/build')}
-  }
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
+  integrationTestImplementation('org.httpunit:httpunit')
 }
 
 sonarqube {
diff --git a/extensions/geode-modules-tomcat8/build.gradle b/extensions/geode-modules-tomcat8/build.gradle
index 3a8d665..574b5b3 100644
--- a/extensions/geode-modules-tomcat8/build.gradle
+++ b/extensions/geode-modules-tomcat8/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -17,77 +15,45 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
  * limitations under the License.
  */
 
-plugins {
-    id 'me.champeau.gradle.jmh' version '0.4.8'
-}
+import org.apache.geode.gradle.plugins.DependencyConstraints
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply from: "${rootDir}/${scriptDir}/warnings.gradle"
+apply from: "${rootDir}/${scriptDir}/publish-java.gradle"
 
 evaluationDependsOn(":geode-core")
 
-
 dependencies {
-    compile(platform(project(':boms:geode-all-bom')))
-    distributedTestImplementation('junit:junit')
-    implementation('mx4j:mx4j')
-    distributedTestImplementation(project(':geode-logging'))
-    testImplementation('org.httpunit:httpunit')
-    testImplementation('org.apache.tomcat:tomcat-jaspic-api:' + DependencyConstraints.get('tomcat8.version'))
-    testImplementation('org.httpunit:httpunit')
-    testImplementation('junit:junit')
-    testImplementation('org.assertj:assertj-core')
-    testImplementation('org.mockito:mockito-core')
-    testImplementation('pl.pragmatists:JUnitParams')
-    testImplementation(project(':extensions:geode-modules-test'))
-    distributedTestImplementation('org.httpunit:httpunit')
-    distributedTestImplementation('org.apache.tomcat:tomcat-jaspic-api:' + DependencyConstraints.get('tomcat8.version'))
-    distributedTestImplementation('org.springframework:spring-core')
-    compile(project(':geode-core'))
-    compile(project(':extensions:geode-modules')) {
-      exclude group: 'org.apache.tomcat'
-    }
-    testImplementation(project(':extensions:geode-modules')) {
-      exclude group: 'org.apache.tomcat'
-    }
+  // main
+  implementation(platform(project(':boms:geode-all-bom')))
 
+  api(project(':geode-core'))
+  api(project(':extensions:geode-modules'))
 
-    implementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version')) {
-        exclude module: 'tomcat-annotations-api'
-        exclude module: 'tomcat-servlet-api'
-    }
-    implementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat8.version')) {
-        exclude module: 'tomcat-servlet-api'
-    }
-    implementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat8.version'))
-    implementation('javax.servlet:javax.servlet-api')
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
 
-    integrationTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-core'
-    }
-    integrationTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    integrationTestImplementation(project(':extensions:geode-modules-test'))
-    integrationTestRuntimeOnly('xerces:xercesImpl')
-    integrationTestRuntimeOnly('javax.annotation:javax.annotation-api')
 
-    distributedTestImplementation(project(':geode-dunit')) {
-        exclude module: 'geode-core'
-    }
+  // test
+  testImplementation(project(':extensions:geode-modules-test'))
+  testImplementation('junit:junit')
+  testImplementation('org.assertj:assertj-core')
+  testImplementation('org.mockito:mockito-core')
+  testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat8.version'))
 
-    distributedTestImplementation(project(':geode-junit')) {
-        exclude module: 'geode-core'
-    }
-    distributedTestImplementation(project(':extensions:geode-modules-test'))
 
-    distributedTestRuntimeOnly('xerces:xercesImpl')
-    distributedTestRuntimeOnly('javax.annotation:javax.annotation-api')
-}
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
 
-eclipse.classpath.file {
-    whenMerged { classpath ->
-        classpath.entries.removeAll { entry -> entry.path.contains('geode-modules/build') }
-    }
+
+  // distributedTest
+  distributedTestImplementation(project(':extensions:geode-modules-test'))
+  distributedTestImplementation(project(':geode-dunit'))
+  distributedTestImplementation(project(':geode-logging'))
+  distributedTestImplementation('org.httpunit:httpunit')
 }
 
+sonarqube {
+  skipProject = true
+}
diff --git a/extensions/geode-modules-tomcat8/src/test/resources/expected-pom.xml b/extensions/geode-modules-tomcat8/src/test/resources/expected-pom.xml
new file mode 100644
index 0000000..5819c51
--- /dev/null
+++ b/extensions/geode-modules-tomcat8/src/test/resources/expected-pom.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.geode</groupId>
+  <artifactId>geode-modules-tomcat8</artifactId>
+  <version>${version}</version>
+  <name>Apache Geode</name>
+  <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
+  <url>http://geode.apache.org</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:git:https://github.com:apache/geode.git</connection>
+    <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
+    <url>https://github.com/apache/geode</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-all-bom</artifactId>
+        <version>${version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-core</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-modules</artifactId>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/extensions/geode-modules-tomcat9/build.gradle b/extensions/geode-modules-tomcat9/build.gradle
index dea8c30..8c8fa05 100644
--- a/extensions/geode-modules-tomcat9/build.gradle
+++ b/extensions/geode-modules-tomcat9/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -17,43 +15,37 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
  * limitations under the License.
  */
 
+import org.apache.geode.gradle.plugins.DependencyConstraints
+
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply from: "${rootDir}/${scriptDir}/warnings.gradle"
 
 evaluationDependsOn(":geode-core")
 
-
 dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  api(project(':extensions:geode-modules')) {
-    exclude group: 'org.apache.tomcat'
-  }
-
-  implementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version')) {
-    exclude module: 'tomcat-annotations-api'
-    exclude module: 'tomcat-servlet-api'
-  }
-  implementation('org.apache.tomcat:tomcat-coyote:' + DependencyConstraints.get('tomcat9.version')) {
-    exclude module: 'tomcat-servlet-api'
-  }
-  implementation('org.apache.tomcat:tomcat-juli:' + DependencyConstraints.get('tomcat9.version'))
-  implementation('javax.servlet:javax.servlet-api:4.0.1')
-
-  testImplementation('org.httpunit:httpunit')
+  // main
+  implementation(platform(project(':boms:geode-all-bom')))
+
+  api(project(':geode-core'))
+  api(project(':extensions:geode-modules'))
+
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version'))
+
+
+  // test
+  testImplementation(project(':extensions:geode-modules-test'))
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
-  testImplementation(project(':extensions:geode-modules-test'))
+  testImplementation('org.apache.tomcat:tomcat-catalina:' + DependencyConstraints.get('tomcat9.version'))
 
-  integrationTestImplementation(project(':extensions:geode-modules-test'))
-  integrationTestImplementation('junit:junit')
-  integrationTestImplementation('org.mockito:mockito-core')
 
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
 }
 
-eclipse.classpath.file {
-  whenMerged { classpath ->
-    classpath.entries.removeAll { entry -> entry.path.contains('geode-modules/build') }
-  }
+sonarqube {
+  skipProject = true
 }
-
diff --git a/extensions/geode-modules/build.gradle b/extensions/geode-modules/build.gradle
index 7210d11..3787af1 100644
--- a/extensions/geode-modules/build.gradle
+++ b/extensions/geode-modules/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.geode.gradle.plugins.DependencyConstraints
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -17,60 +15,44 @@ import org.apache.geode.gradle.plugins.DependencyConstraints
  * limitations under the License.
  */
 
+import org.apache.geode.gradle.plugins.DependencyConstraints
+
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
+apply from: "${rootDir}/${scriptDir}/publish-java.gradle"
 
 evaluationDependsOn(":geode-core")
 
-
 dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
+  // main
+  implementation(platform(project(':boms:geode-all-bom')))
   implementation(project(':geode-logging'))
   implementation(project(':geode-membership'))
   implementation(project(':geode-serialization'))
-  compile(project(':geode-core'))
-  integrationTestImplementation(project(':extensions:geode-modules-test')) {
-    exclude module: 'geode-modules'
-  }
-  testImplementation(project(':extensions:geode-modules-test')) {
-    exclude module: 'geode-modules'
-  }
-  integrationTestImplementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-
-  implementation('javax.servlet:javax.servlet-api')
-  implementation('mx4j:mx4j')
-  implementation('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version')) {
-    exclude module: 'annotations-api'
-    exclude module: 'coyote'
-    exclude module: 'tribes'
-  }
-  implementation('org.apache.tomcat:catalina:' + DependencyConstraints.get('tomcat6.version'))
-  implementation('org.apache.tomcat:juli:' + DependencyConstraints.get('tomcat6.version'))
-  implementation('org.apache.tomcat:servlet-api:' + DependencyConstraints.get('tomcat6.version'))
   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'))
+
+
+  // test
   testImplementation('org.apache.bcel:bcel')
   testImplementation('junit:junit')
   testImplementation('org.assertj:assertj-core')
   testImplementation('org.mockito:mockito-core')
+  testImplementation('org.apache.tomcat:catalina-ha:' + DependencyConstraints.get('tomcat6.version'))
 
 
-  integrationTestImplementation('junit:junit')
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
   integrationTestImplementation('pl.pragmatists:JUnitParams')
 
-  integrationTestRuntimeOnly('org.apache.tomcat:coyote:' + DependencyConstraints.get('tomcat6.version'))
-  integrationTestRuntimeOnly('xerces:xercesImpl')
 
-  distributedTestImplementation(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-  distributedTestImplementation(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
+  // distributedTest
+  distributedTestImplementation(project(':geode-dunit'))
 }
 
 sonarqube {
diff --git a/extensions/geode-modules/src/test/resources/expected-pom.xml b/extensions/geode-modules/src/test/resources/expected-pom.xml
new file mode 100644
index 0000000..15e7714
--- /dev/null
+++ b/extensions/geode-modules/src/test/resources/expected-pom.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.geode</groupId>
+  <artifactId>geode-modules</artifactId>
+  <version>${version}</version>
+  <name>Apache Geode</name>
+  <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
+  <url>http://geode.apache.org</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:git:https://github.com:apache/geode.git</connection>
+    <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
+    <url>https://github.com/apache/geode</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-all-bom</artifactId>
+        <version>${version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-core</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-logging</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-membership</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geode</groupId>
+      <artifactId>geode-serialization</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/gradle/publish-java.gradle b/gradle/publish-java.gradle
index 72ad0d8..15db47f 100644
--- a/gradle/publish-java.gradle
+++ b/gradle/publish-java.gradle
@@ -55,11 +55,12 @@ gradle.taskGraph.whenReady({ graph ->
       projectDependencies.clone().each { projectDependency ->
         def geodeProject = projectDependency - "-${version}.jar"
         if (projectDependencies.contains(geodeProject)) {
-          def parentProject = project(":$geodeProject" - "-$version")
-          if (parentProject != null) {
+          try {
+            def parentProject = project(":$geodeProject" - "-$version")
             def collect = parentProject.configurations.runtimeClasspath.collect { it.name }
             runtimeList.removeAll(collect)
             projectDependencies.removeAll(collect.collect {it-".jar"})
+          } catch (UnknownProjectException ignore) {
           }
         }
       }