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

onichols pushed a commit to branch support/1.12
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.12 by this push:
     new e2c8b66  GEODE-8590: Cleanup dependencies in the session state modules 
and GEODE-8732: Update Tomcat9 module to publish to Maven (#5906)
e2c8b66 is described below

commit e2c8b66b81170e51dce7e187ca225b3a7385f430
Author: Sarah <sab...@pivotal.io>
AuthorDate: Fri Jan 15 19:29:29 2021 -0500

    GEODE-8590: Cleanup dependencies in the session state modules and 
GEODE-8732: Update Tomcat9 module to publish to Maven (#5906)
    
    * GEODE-8590: Cleanup dependencies in the session state modules and 
GEODE-8732: Update Tomcat9 module to publish to Maven
    
    * Fix duplicate jar issue
    
    Co-authored-by: Jacob Barrett <jbarr...@pivotal.io>
---
 .../src/test/resources/expected-pom.xml            | 18 +++++
 .../geode-modules-session-internal/build.gradle    | 22 ++----
 extensions/geode-modules-test/build.gradle         | 37 ++++------
 extensions/geode-modules-tomcat7/build.gradle      | 68 +++++++-----------
 extensions/geode-modules-tomcat8/build.gradle      | 81 +++++++---------------
 .../src/test/resources/expected-pom.xml            | 60 ++++++++++++++++
 extensions/geode-modules-tomcat9/build.gradle      | 61 +++++++---------
 .../src/test/resources/expected-pom.xml            | 60 ++++++++++++++++
 extensions/geode-modules/build.gradle              | 68 ++++++++----------
 .../src/test/resources/expected-pom.xml            | 75 ++++++++++++++++++++
 gradle/publish-java.gradle                         | 47 +++++++++++++
 11 files changed, 381 insertions(+), 216 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 5d604b6..2a2923f2 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -969,6 +969,24 @@
       </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-modules-tomcat9</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 02bfdf6..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'))
 
-  compile('javax.servlet:javax.servlet-api')
-  compile('mx4j:mx4j')
-  compile('org.apache.tomcat:servlet-api:' + 
DependencyConstraints.get('tomcat6.version'))
-  compile('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 6d9fef3..47d42c6 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,35 +15,24 @@ 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"
 
+dependencies {
+  // main
+  implementation(platform(project(':boms:geode-all-bom')))
+  implementation(project(':geode-dunit'))
+  implementation('org.springframework:spring-core')
+  implementation('org.httpunit:httpunit')
+  implementation('pl.pragmatists:JUnitParams')
 
+  api(project(':extensions:geode-modules'))
 
-dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  compile(project(':extensions:geode-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
-  compile(project(':geode-core'))
-  implementation(project(':geode-logging'))
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('org.apache.tomcat:catalina-ha:' + 
DependencyConstraints.get('tomcat6.version'))
 
   compile(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
-
-  compile('commons-io:commons-io')
-  compile('javax.servlet:javax.servlet-api')
-  compile('junit:junit')
-  compile('org.httpunit:httpunit') {
-    // this version of httpunit contains very outdated xercesImpl
-    exclude group: 'xerces'
-  }
-
-  compileOnly('org.apache.tomcat:catalina-ha:' + 
DependencyConstraints.get('tomcat6.version')) {
-    exclude module: 'annotations-api'
-    exclude module: 'coyote'
-    exclude module: 'tribes'
-  }
 }
-
diff --git a/extensions/geode-modules-tomcat7/build.gradle 
b/extensions/geode-modules-tomcat7/build.gradle
index 5f07e7e..211ab56 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,57 +15,39 @@ 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"
 
 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'))
-  compile('mx4j:mx4j')
-  compile('javax.servlet:javax.servlet-api')
-  integrationTestCompile('org.httpunit:httpunit')
-  integrationTestCompile('junit:junit')
-  compile(project(':extensions:geode-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
-  testCompile(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'))
 
-  compile('org.apache.tomcat:tomcat-catalina:' + 
DependencyConstraints.get('tomcat7.version')) {
-    exclude module: 'tomcat-annotations-api'
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-coyote:' + 
DependencyConstraints.get('tomcat7.version')) {
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-juli:' + 
DependencyConstraints.get('tomcat7.version'))
 
-  testCompile('org.httpunit:httpunit')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
-  testCompile('org.mockito:mockito-core')
-  testCompile(project(':extensions:geode-modules-test'))
-  integrationTestCompile(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestCompile(project(':extensions:geode-modules-test'))
+  // 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('tomcat7.version'))
+  testImplementation('org.apache.tomcat:tomcat-coyote:' + 
DependencyConstraints.get('tomcat7.version'))
 
-  integrationTestRuntime('javax.annotation:jsr250-api')
-  integrationTestRuntime('javax.ejb:ejb-api')
-  integrationTestRuntime('javax.servlet:javax.servlet-api')
-  integrationTestRuntime('org.eclipse.persistence:javax.persistence')
-  integrationTestRuntime('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 {
+  skipProject = true
+}
diff --git a/extensions/geode-modules-tomcat8/build.gradle 
b/extensions/geode-modules-tomcat8/build.gradle
index 1d12728..e9aa13f 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,71 +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 {
+  // 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')))
-  distributedTestCompile('junit:junit')
-  compile('mx4j:mx4j')
-  distributedTestImplementation(project(':geode-logging'))
-  testCompile('org.httpunit:httpunit')
-  testCompile('org.apache.tomcat:tomcat-jaspic-api:' + 
DependencyConstraints.get('tomcat8.version'))
-  testCompile('org.httpunit:httpunit')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
-  testCompile('org.mockito:mockito-core')
-  testCompile(project(':extensions:geode-modules-test'))
-  distributedTestCompile('org.httpunit:httpunit')
-  distributedTestCompile('org.apache.tomcat:tomcat-jaspic-api:' + 
DependencyConstraints.get('tomcat8.version'))
-  compile(project(':geode-core'))
-  compile(project(':extensions:geode-modules')) {
-    exclude group: 'org.apache.tomcat'
-  }
-  testCompile(project(':extensions:geode-modules')) {
-    exclude group: 'org.apache.tomcat'
-  }
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('org.apache.tomcat:tomcat-catalina:' + 
DependencyConstraints.get('tomcat8.version'))
 
 
-  compile('org.apache.tomcat:tomcat-catalina:' + 
DependencyConstraints.get('tomcat8.version')) {
-    exclude module: 'tomcat-annotations-api'
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-coyote:' + 
DependencyConstraints.get('tomcat8.version')) {
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-juli:' + 
DependencyConstraints.get('tomcat8.version'))
-  compile('javax.servlet:javax.servlet-api')
+  // 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'))
 
-  integrationTestCompile(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestCompile(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestCompile(project(':extensions:geode-modules-test'))
-  integrationTestRuntime('xerces:xercesImpl')
-  integrationTestRuntime('javax.annotation:javax.annotation-api')
 
-  distributedTestCompile(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
 
-  distributedTestCompile(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-  distributedTestCompile(project(':extensions:geode-modules-test'))
 
-  distributedTestRuntime('xerces:xercesImpl')
-  distributedTestRuntime('javax.annotation:javax.annotation-api')
+  // distributedTest
+  distributedTestImplementation(project(':extensions:geode-modules-test'))
+  distributedTestImplementation(project(':geode-dunit'))
+  distributedTestImplementation(project(':geode-logging'))
+  distributedTestImplementation('org.httpunit:httpunit')
 }
 
-eclipse.classpath.file {
-  whenMerged { classpath ->
-    classpath.entries.removeAll { entry -> 
entry.path.contains('geode-modules/build')}
-  }
+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 417714a..5ba303c 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,46 +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}/publish-java.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(':extensions:geode-modules')) {
-    exclude group: 'org.apache.tomcat'
-  }
-  testCompile(project(':extensions:geode-modules')) {
-    exclude group: 'org.apache.tomcat'
-  }
-
-  compile('org.apache.tomcat:tomcat-catalina:' + 
DependencyConstraints.get('tomcat9.version')) {
-    exclude module: 'tomcat-annotations-api'
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-coyote:' + 
DependencyConstraints.get('tomcat9.version')) {
-    exclude module: 'tomcat-servlet-api'
-  }
-  compile('org.apache.tomcat:tomcat-juli:' + 
DependencyConstraints.get('tomcat9.version'))
-  compile('javax.servlet:javax.servlet-api:' + '3.1.0')
-
-  testCompile('org.httpunit:httpunit')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
-  testCompile('org.mockito:mockito-core')
-  testCompile(project(':extensions:geode-modules-test')) 
-
-  distributedTestCompile(project(':extensions:geode-modules-test'))
-
-  distributedTestRuntime('xerces:xercesImpl')
-  distributedTestRuntime('javax.annotation:javax.annotation-api')
-}
+  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('org.apache.tomcat:tomcat-catalina:' + 
DependencyConstraints.get('tomcat9.version'))
 
-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'))
 }
 
+sonarqube {
+  skipProject = true
+}
diff --git 
a/extensions/geode-modules-tomcat9/src/test/resources/expected-pom.xml 
b/extensions/geode-modules-tomcat9/src/test/resources/expected-pom.xml
new file mode 100644
index 0000000..6187a17
--- /dev/null
+++ b/extensions/geode-modules-tomcat9/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-tomcat9</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/build.gradle 
b/extensions/geode-modules/build.gradle
index 8a6e4d4..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,54 +15,46 @@ 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'))
-  integrationTestCompile(project(':extensions:geode-modules-test')) {
-    exclude module: 'geode-modules'
-  }
-  integrationTestCompile(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
-  integrationTestCompile(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
+  implementation('org.slf4j:slf4j-api')
 
-  compile('javax.servlet:javax.servlet-api')
-  compile('mx4j:mx4j')
-  compile('org.apache.tomcat:catalina-ha:' + 
DependencyConstraints.get('tomcat6.version')) {
-    exclude module: 'annotations-api'
-    exclude module: 'coyote'
-    exclude module: 'tribes'
-  }
-  compile('org.apache.tomcat:catalina:' + 
DependencyConstraints.get('tomcat6.version'))
-  compile('org.apache.tomcat:juli:' + 
DependencyConstraints.get('tomcat6.version'))
-  compile('org.apache.tomcat:servlet-api:' + 
DependencyConstraints.get('tomcat6.version'))
-  compile('org.slf4j:slf4j-api')
+  api(project(':geode-core'))
 
-  testCompile('org.apache.bcel:bcel')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
-  testCompile('org.mockito:mockito-core')
-  integrationTestCompile('junit:junit')
+  compileOnly(platform(project(':boms:geode-all-bom')))
+  compileOnly('javax.servlet:javax.servlet-api')
+  compileOnly('org.apache.tomcat:catalina-ha:' + 
DependencyConstraints.get('tomcat6.version'))
 
-  integrationTestRuntime('org.apache.tomcat:coyote:' + 
DependencyConstraints.get('tomcat6.version'))
-  integrationTestRuntime('xerces:xercesImpl')
 
-  distributedTestCompile(project(':geode-junit')) {
-    exclude module: 'geode-core'
-  }
-  distributedTestCompile(project(':geode-dunit')) {
-    exclude module: 'geode-core'
-  }
+  // 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'))
+
+
+  // integrationTest
+  integrationTestImplementation(project(':extensions:geode-modules-test'))
+  integrationTestImplementation(project(':geode-dunit'))
+  integrationTestImplementation('pl.pragmatists:JUnitParams')
+
+
+  // distributedTest
+  distributedTestImplementation(project(':geode-dunit'))
 }
 
+sonarqube {
+  skipProject = true
+}
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 4abecae..d00ccbf 100644
--- a/gradle/publish-java.gradle
+++ b/gradle/publish-java.gradle
@@ -26,3 +26,50 @@ publishing {
     }
   }
 }
+
+gradle.taskGraph.whenReady({ graph ->
+  tasks.withType(Jar).each { jar ->
+    jar.doFirst {
+      def projectDependencies = []
+      def runtimeList = []
+
+      // Iterate over runtime classpath dependencies and separate project 
dependencies from library
+      // dependencies.
+      configurations.runtimeClasspath
+              .collect { it.name - ".jar" }
+              .each { dependency ->
+                if (dependency.startsWith("geode-")) {
+                  projectDependencies.add(dependency)
+                } else {
+                  runtimeList.add(dependency+".jar")
+                }
+              }
+
+      // Iterate over project (parent) dependencies and remove its runtime 
library dependencies from
+      // the current project's runtime library dependencies.
+      // Also removes all parent project's runtime project dependencies from 
the current project.
+      // This returns a unique set of parent project and library dependencies 
that are not found
+      // within it's parent's project dependencies.
+      projectDependencies.clone().each { projectDependency ->
+        def geodeProject = projectDependency - "-${version}.jar"
+        if (projectDependencies.contains(geodeProject)) {
+          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) {
+          }
+        }
+      }
+
+      manifest {
+        attributes.put("Class-Path", runtimeList.join(' '))
+        attributes.put("Dependent-Modules", projectDependencies.join(' '))
+        attributes.put("Module-Name", project.name)
+      }
+    }
+  }
+})
+
+

Reply via email to