You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2019/03/22 21:43:25 UTC
[geode] branch develop updated: GEODE-6532: Using
implementation/api in geode-core instead of compile
This is an automated email from the ASF dual-hosted git repository.
upthewaterspout 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 8fd839e GEODE-6532: Using implementation/api in geode-core instead of compile
8fd839e is described below
commit 8fd839e8b73e40bd2dfd14f331b587431bd35a66
Author: Dan Smith <ds...@pivotal.io>
AuthorDate: Fri Mar 22 14:43:12 2019 -0700
GEODE-6532: Using implementation/api in geode-core instead of compile
* Using implementation or api where appropriate in geode-core
dependencies. This allows downstream consumers of geode-core to get these
dependencies as runtime dependencies instead of compile.
* Adding first order dependencies to other subprojects that needed them.
* Removing a couple of dependencies from geode-core that we were only
using transitively.
* Adding comments to geode-core dependencies
---
extensions/geode-modules-session/build.gradle | 1 +
geode-connectors/build.gradle | 1 +
.../src/test/resources/expected-pom.xml | 5 +
geode-core/build.gradle | 162 ++++++++++++----
geode-core/src/test/resources/expected-pom.xml | 216 ++++++++++-----------
geode-redis/build.gradle | 1 +
geode-redis/src/test/resources/expected-pom.xml | 5 +
geode-web-api/build.gradle | 1 +
geode-web-management/build.gradle | 1 +
geode-web/build.gradle | 10 +-
gradle/publish.gradle | 10 +-
11 files changed, 252 insertions(+), 161 deletions(-)
diff --git a/extensions/geode-modules-session/build.gradle b/extensions/geode-modules-session/build.gradle
index 7756f4b..76c386f 100644
--- a/extensions/geode-modules-session/build.gradle
+++ b/extensions/geode-modules-session/build.gradle
@@ -48,6 +48,7 @@ dependencies {
integrationTestCompile('org.eclipse.jetty:jetty-http:' + DependencyConstraints.get('jetty.version') + ':tests')
integrationTestCompile('org.eclipse.jetty:jetty-server')
integrationTestCompile('org.eclipse.jetty:jetty-servlet:' + DependencyConstraints.get('jetty.version') + ':tests')
+ integrationTestCompile('org.eclipse.jetty:jetty-servlet:' + DependencyConstraints.get('jetty.version'))
integrationTestCompile('org.eclipse.jetty:jetty-util')
integrationTestCompile('org.httpunit:httpunit') {
exclude group: 'javax.servlet'
diff --git a/geode-connectors/build.gradle b/geode-connectors/build.gradle
index f72ec14..b267982 100644
--- a/geode-connectors/build.gradle
+++ b/geode-connectors/build.gradle
@@ -70,6 +70,7 @@ dependencies {
exclude module: 'spring-core'
ext.optional = true
}
+ compile('com.healthmarketscience.rmiio:rmiio')
testCompile('pl.pragmatists:JUnitParams')
diff --git a/geode-connectors/src/test/resources/expected-pom.xml b/geode-connectors/src/test/resources/expected-pom.xml
index 11163c9..309fbc0 100644
--- a/geode-connectors/src/test/resources/expected-pom.xml
+++ b/geode-connectors/src/test/resources/expected-pom.xml
@@ -118,5 +118,10 @@
</exclusions>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>com.healthmarketscience.rmiio</groupId>
+ <artifactId>rmiio</artifactId>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index caf08a5..be7e5cc 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -149,13 +149,15 @@ task jcaJar(type: Jar, dependsOn: raJar) {
configurations {
classesOutput {
- extendsFrom compile
+ extendsFrom api
description 'a dependency that exposes the compiled classes'
}
}
dependencies {
- compile(platform(project(':boms:geode-all-bom')))
+
+ //These bom dependencies are used to constrain the versions of the dependencies listed below
+ api(platform(project(':boms:geode-all-bom')))
compileOnly(platform(project(':boms:geode-all-bom')))
// As plugin configurations that do not extend from compile,
// we must explicitly impose version constraints on these configurations.
@@ -163,93 +165,162 @@ dependencies {
jcaAnnotationProcessor(platform(project(':boms:geode-all-bom')))
jmhCompile(platform(project(':boms:geode-all-bom')))
+
+ //A dependency that contains the compiled output of the source. What is this for?
classesOutput sourceSets.main.output
// Source Dependencies
+ //------------------------------------------------------------
+
+ // The antlr configuration is used by the antlr plugin, which compiles grammar
+ // files used by the query engine
antlr 'antlr:antlr'
// External
+ //------------------------------------------------------------
+
+
+ //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")
- compile('com.github.stephenc.findbugs:findbugs-annotations')
- compile('org.jgroups:jgroups')
- compile('antlr:antlr')
- compile('com.fasterxml.jackson.core:jackson-annotations')
- compile('com.fasterxml.jackson.core:jackson-databind')
- compile('commons-io:commons-io')
- compile('commons-validator:commons-validator')
- compile('commons-digester:commons-digester')
- compile('com.sun.activation:javax.activation')
- compile('javax.xml.bind:jaxb-api')
- compile('com.sun.xml.bind:jaxb-impl')
- compile('com.sun.istack:istack-commons-runtime') {
+
+ //Find bugs is used in multiple places in the code to suppress findbugs warnings
+ implementation('com.github.stephenc.findbugs:findbugs-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 IO is used in persistence and management
+ implementation('commons-io:commons-io')
+
+ //Commons validator is used to validate inet addresses in membership
+ implementation('commons-validator:commons-validator')
+
+ //javax.activation is runtime dependency for gfsh with java 11 (used by gfsh-over-http)
+ runtimeOnly('com.sun.activation:javax.activation')
+
+ //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: '*'
}
- compile('org.apache.commons:commons-lang3')
- compile('commons-modeler:commons-modeler') {
- exclude module: 'commons-digester'
+ //Commons lang is used in many different places in core
+ implementation('org.apache.commons:commons-lang3')
+
+ //Commons modeler is used by the (deprecated) admin API
+ implementation('commons-modeler:commons-modeler') {
exclude module: 'commons-logging-api'
exclude module: 'mx4j-jmx'
exclude module: 'xml-apis'
ext.optional = true
}
- compile('io.micrometer:micrometer-core')
- compile('it.unimi.dsi:fastutil')
- compile('javax.mail:javax.mail-api') {
+ //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
}
- compile('javax.resource:javax.resource-api')
- compile('mx4j:mx4j') {
+
+ //The resource-API is used by the JCA support.
+ api('javax.resource:javax.resource-api')
+
+
+ //MX4J is used by the old admin API
+ implementation('mx4j:mx4j') {
ext.optional = true
}
- compile('mx4j:mx4j-remote') {
+
+ //MX4J remote is used by the old admin API
+ implementation('mx4j:mx4j-remote') {
ext.optional = true
}
- compile('mx4j:mx4j-tools') {
+
+ //MX4J tools is used by the old admin API
+ implementation('mx4j:mx4j-tools') {
ext.optional = true
}
- compile('net.java.dev.jna:jna')
- compile('net.sf.jopt-simple:jopt-simple')
+ //JNA is used for locking memory and preallocating disk files.
+ implementation('net.java.dev.jna:jna')
- compile('org.apache.logging.log4j:log4j-api')
- compile('org.apache.logging.log4j:log4j-core')
+ //JOptSimple is used by gfsh. A couple of usages have leaked into DiskStore
+ implementation('net.sf.jopt-simple:jopt-simple')
+ //Log4j is used everywhere
+ implementation('org.apache.logging.log4j:log4j-api')
+ implementation('org.apache.logging.log4j:log4j-core')
+
+ //Jansi is used by the CLI (maybe? it is a runtime dependency)
runtimeOnly('org.fusesource.jansi:jansi') {
ext.optional = true
}
- runtimeOnly('org.slf4j:slf4j-api')
+ //This routes slf4j logs to log4j. Shiro and micrometer use slf4j
runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl') {
exclude module: 'slf4j-api'
ext.optional = true
}
+ //This routes commons logging logs to log4j. Several apache commons dependencies use commons logging
runtimeOnly('org.apache.logging.log4j:log4j-jcl') {
ext.optional = true
}
+ //This routes jdk logs to log4j. Several dependencies use JDK logs (jackson, jaxb, ...)
runtimeOnly('org.apache.logging.log4j:log4j-jul') {
ext.optional = true
}
- compile('org.eclipse.jetty:jetty-webapp') {
+ //Jetty is used by the http service, which is used for the developer and management rest APIs
+ implementation('org.eclipse.jetty:jetty-webapp') {
ext.optional = true
}
- compile('org.eclipse.jetty:jetty-server')
+ //Jetty is used by the http service, which is used for the developer and management rest APIs
+ implementation('org.eclipse.jetty:jetty-server')
+
+
+ //Spring webmvc is used by the REST management API
compileOnly('org.springframework:spring-webmvc') {
exclude module: 'aopalliance'
exclude module: 'spring-aop'
ext.optional = true
}
+ //Spring webmvc is used by the REST management API
testCompile('org.springframework:spring-webmvc') {
exclude module: 'aopalliance'
exclude module: 'spring-aop'
ext.optional = true
}
- compile('org.springframework:spring-core') {
+ //Spring core is used by the REST API, and the gfsh cli
+ implementation('org.springframework:spring-core') {
ext.optional = true
}
- compile('org.springframework.shell:spring-shell') {
+
+ //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'
@@ -258,18 +329,31 @@ dependencies {
exclude module: 'spring-context-support'
exclude module: 'spring-core'
}
- compile('org.iq80.snappy:snappy') {
+
+ //Snappy is used for compressing values, if enabled
+ implementation('org.iq80.snappy:snappy') {
ext.optional = true
}
- compile('org.apache.shiro:shiro-core')
+ //Shiro is used for security checks throughout geode-core
+ //API - Shiro is exposed in geode's ResourcePermission class
+ api('org.apache.shiro:shiro-core')
- compile('io.github.classgraph:classgraph')
+ //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')
- compile('com.healthmarketscience.rmiio:rmiio')
+ //RMIIO is used for uploading jar files and copying them between locator an servers
+ implementation('com.healthmarketscience.rmiio:rmiio')
- compile(project(':geode-common'))
- compile(project(':geode-management'))
+ //Geode-common has annotations and other pieces used geode-core
+ //Currently it has ExpirationAction in it, which is an API dependency in core, but
+ //probably does not belong in this project
+ api(project(':geode-common'))
+
+ //geode-management currently has pieces of the public API
+ //copied into it, so it is an API dependency
+ api(project(':geode-management'))
jcaAnnotationProcessor 'org.apache.logging.log4j:log4j-core'
diff --git a/geode-core/src/test/resources/expected-pom.xml b/geode-core/src/test/resources/expected-pom.xml
index 6790b99..55372f4 100644
--- a/geode-core/src/test/resources/expected-pom.xml
+++ b/geode-core/src/test/resources/expected-pom.xml
@@ -47,90 +47,125 @@
</dependencyManagement>
<dependencies>
<dependency>
- <groupId>com.github.stephenc.findbugs</groupId>
- <artifactId>findbugs-annotations</artifactId>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.jgroups</groupId>
- <artifactId>jgroups</artifactId>
+ <groupId>io.micrometer</groupId>
+ <artifactId>micrometer-core</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
+ <groupId>javax.resource</groupId>
+ <artifactId>javax.resource-api</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
+ <groupId>org.springframework.shell</groupId>
+ <artifactId>spring-shell</artifactId>
<scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>cglib</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>asm</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-aop</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>guava</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>aopalliance</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-context-support</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
+ <groupId>org.apache.shiro</groupId>
+ <artifactId>shiro-core</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
+ <groupId>org.apache.geode</groupId>
+ <artifactId>geode-common</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>commons-validator</groupId>
- <artifactId>commons-validator</artifactId>
+ <groupId>org.apache.geode</groupId>
+ <artifactId>geode-management</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>commons-digester</groupId>
- <artifactId>commons-digester</artifactId>
- <scope>compile</scope>
+ <groupId>com.github.stephenc.findbugs</groupId>
+ <artifactId>findbugs-annotations</artifactId>
+ <scope>runtime</scope>
</dependency>
<dependency>
- <groupId>com.sun.activation</groupId>
- <artifactId>javax.activation</artifactId>
- <scope>compile</scope>
+ <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-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.istack</groupId>
- <artifactId>istack-commons-runtime</artifactId>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>commons-modeler</groupId>
<artifactId>commons-modeler</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<exclusions>
<exclusion>
<artifactId>commons-logging-api</artifactId>
<groupId>*</groupId>
</exclusion>
<exclusion>
- <artifactId>commons-digester</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
<artifactId>xml-apis</artifactId>
<groupId>*</groupId>
</exclusion>
@@ -142,146 +177,102 @@
<optional>true</optional>
</dependency>
<dependency>
- <groupId>io.micrometer</groupId>
- <artifactId>micrometer-core</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
- <groupId>javax.resource</groupId>
- <artifactId>javax.resource-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>mx4j</groupId>
<artifactId>mx4j</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mx4j</groupId>
<artifactId>mx4j-remote</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mx4j</groupId>
<artifactId>mx4j-tools</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>net.sf.jopt-simple</groupId>
<artifactId>jopt-simple</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
- <groupId>org.springframework.shell</groupId>
- <artifactId>spring-shell</artifactId>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <artifactId>cglib</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>spring-core</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>asm</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>spring-aop</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>guava</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>aopalliance</artifactId>
- <groupId>*</groupId>
- </exclusion>
- <exclusion>
- <artifactId>spring-context-support</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>org.iq80.snappy</groupId>
<artifactId>snappy</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-core</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.healthmarketscience.rmiio</groupId>
<artifactId>rmiio</artifactId>
- <scope>compile</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
- <groupId>org.apache.geode</groupId>
- <artifactId>geode-common</artifactId>
- <scope>compile</scope>
+ <groupId>com.sun.activation</groupId>
+ <artifactId>javax.activation</artifactId>
+ <scope>runtime</scope>
</dependency>
<dependency>
- <groupId>org.apache.geode</groupId>
- <artifactId>geode-management</artifactId>
- <scope>compile</scope>
+ <groupId>com.sun.istack</groupId>
+ <artifactId>istack-commons-runtime</artifactId>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>*</artifactId>
+ <groupId>*</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.fusesource.jansi</groupId>
@@ -290,11 +281,6 @@
<optional>true</optional>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<scope>runtime</scope>
diff --git a/geode-redis/build.gradle b/geode-redis/build.gradle
index 88eb424..36c770e 100644
--- a/geode-redis/build.gradle
+++ b/geode-redis/build.gradle
@@ -22,6 +22,7 @@ dependencies {
compile(project(':geode-core'))
compile('com.github.davidmoten:geo')
compile('io.netty:netty-all')
+ compile('org.apache.logging.log4j:log4j-api')
distributedTestCompile(project(':geode-dunit'))
integrationTestCompile('redis.clients:jedis')
distributedTestCompile('redis.clients:jedis')
diff --git a/geode-redis/src/test/resources/expected-pom.xml b/geode-redis/src/test/resources/expected-pom.xml
index e9b66ba..a3ad99b 100644
--- a/geode-redis/src/test/resources/expected-pom.xml
+++ b/geode-redis/src/test/resources/expected-pom.xml
@@ -61,5 +61,10 @@
<artifactId>netty-all</artifactId>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index cdea6c8..402ef01 100644
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -64,6 +64,7 @@ dependencies {
exclude module: 'spring-core'
exclude module: 'spring-beans'
}
+ compileOnly('org.apache.logging.log4j:log4j-api')
testCompile(project(':geode-junit')) {
diff --git a/geode-web-management/build.gradle b/geode-web-management/build.gradle
index bff4ebf..b5b6731 100644
--- a/geode-web-management/build.gradle
+++ b/geode-web-management/build.gradle
@@ -84,6 +84,7 @@ dependencies {
exclude module: 'spring-core'
exclude module: 'spring-beans'
}
+ compileOnly('org.apache.logging.log4j:log4j-api')
commonTestCompile(project(':geode-core'))
commonTestCompile(project(':geode-junit')) {
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index f92a6e6..c24aa6a 100644
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -23,6 +23,7 @@ apply from: "${project.projectDir}/../gradle/publish.gradle"
dependencies {
compile(platform(project(':boms:geode-all-bom')))
compileOnly('javax.servlet:javax.servlet-api')
+ testCompile('javax.servlet:javax.servlet-api')
compileOnly(project(path: ':geode-core', configuration: 'classesOutput'))
runtimeOnly('org.springframework:spring-aspects') {
@@ -60,9 +61,7 @@ dependencies {
}
- integrationTestCompile(project(':geode-dunit')) {
- exclude module: 'geode-core'
- }
+ integrationTestCompile(project(':geode-dunit'));
integrationTestRuntime(files(war.destinationDir))
integrationTestRuntime('org.springframework:spring-webmvc') {
@@ -71,9 +70,8 @@ dependencies {
}
- distributedTestCompile(project(':geode-dunit')){
- exclude module: 'geode-core'
- }
+ distributedTestCompile(project(':geode-common'))
+ distributedTestCompile(project(':geode-dunit'))
distributedTestCompile('pl.pragmatists:JUnitParams')
distributedTestRuntime(files(war.destinationDir))
diff --git a/gradle/publish.gradle b/gradle/publish.gradle
index 1f5ea28..0a12a10 100644
--- a/gradle/publish.gradle
+++ b/gradle/publish.gradle
@@ -84,11 +84,19 @@ publishing {
def runtimeDeps = project.configurations.runtime.dependencies.collectEntries {
[it.name, it]
}
+ depMap.putAll(runtimeDeps)
def runtimeOnlyDeps = project.configurations.runtimeOnly.dependencies.collectEntries {
[it.name, it]
}
- depMap.putAll(runtimeDeps)
depMap.putAll(runtimeOnlyDeps)
+ def implementationDependencies = project.configurations.implementation.dependencies.collectEntries {
+ [it.name, it]
+ }
+ depMap.putAll(implementationDependencies)
+ def apiDependencies = project.configurations.api.dependencies.collectEntries {
+ [it.name, it]
+ }
+ depMap.putAll(apiDependencies)
asNode().dependencies.dependency.findAll {
def dep = depMap.get(it.artifactId.text())
return dep?.hasProperty('optional') && dep.optional