You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Anthony Baker <ab...@pivotal.io> on 2016/04/12 23:49:57 UTC

Comparing maven deps vs lib/ dir

The changes for GEODE-27 [1] improved our pom dependencies immensely.  I wrote up a quick sample app [2] to test out the maven dependencies.  Here’s what the sample app pulls in just based on geode-core:

Anthony-Baker-MacBook-Pro:geode-hello-world abaker$ ls -1 build/install/geode-hello-world/lib/
antlr-2.7.7.jar
commons-io-2.3.jar
commons-lang-2.5.jar
commons-logging-1.2.jar
fastutil-7.0.2.jar
findbugs-annotations-1.3.9-1.jar
geode-common-1.0.0-incubating.M2.jar
geode-core-1.0.0-incubating.M2.jar
geode-hello-world.jar
geode-joptsimple-1.0.0-incubating.M2.jar
geode-json-1.0.0-incubating.M2.jar
jackson-annotations-2.2.0.jar
jackson-core-2.2.0.jar
jackson-databind-2.2.0.jar
jansi-1.8.jar
javax.resource-api-1.7.jar
javax.transaction-api-1.2.jar
jgroups-3.6.8.Final.jar
log4j-api-2.5.jar
log4j-core-2.5.jar
log4j-jcl-2.5.jar
log4j-jul-2.5.jar
log4j-slf4j-impl-2.5.jar
slf4j-api-1.7.12.jar

In comparison, here is the geode lib/ dir:

Anthony-Baker-MacBook-Pro:apache-geode abaker$ ls -1 lib/
activation-1.1.jar
antlr-2.7.7.jar
commons-io-2.3.jar
commons-lang-2.5.jar
commons-logging-1.2.jar
commons-modeler-2.0.jar
fastutil-7.0.2.jar
findbugs-annotations-1.3.9-1.jar
geode-common-1.0.0-incubating.M2.jar
geode-core-1.0.0-incubating.M2.jar
geode-cq-1.0.0-incubating.M2.jar
geode-dependencies.jar
geode-jca-1.0.0-incubating.M2.rar
geode-joptsimple-1.0.0-incubating.M2.jar
geode-json-1.0.0-incubating.M2.jar
geode-lucene-1.0.0-incubating.M2.jar
geode-wan-1.0.0-incubating.M2.jar
geode-web-1.0.0-incubating.M2.jar
geode-web-api-1.0.0-incubating.M2.jar
gfsh-dependencies.jar
guava-15.0.jar
jackson-annotations-2.2.0.jar
jackson-core-2.2.0.jar
jackson-databind-2.2.0.jar
jansi-1.8.jar
javax.mail-api-1.4.5.jar
javax.resource-api-1.7.jar
javax.servlet-api-3.1.0.jar
javax.transaction-api-1.2.jar
jetty-http-9.3.6.v20151106.jar
jetty-io-9.3.6.v20151106.jar
jetty-security-9.3.6.v20151106.jar
jetty-server-9.3.6.v20151106.jar
jetty-servlet-9.3.6.v20151106.jar
jetty-util-9.3.6.v20151106.jar
jetty-webapp-9.3.6.v20151106.jar
jetty-xml-9.3.6.v20151106.jar
jgroups-3.6.8.Final.jar
jline-2.12.jar
jna-4.0.0.jar
log4j-api-2.5.jar
log4j-core-2.5.jar
log4j-jcl-2.5.jar
log4j-jul-2.5.jar
log4j-slf4j-impl-2.5.jar
lucene-analyzers-common-5.3.0.jar
lucene-core-5.3.0.jar
lucene-queries-5.3.0.jar
lucene-queryparser-5.3.0.jar
mx4j-3.0.1.jar
mx4j-remote-3.0.1.jar
mx4j-tools-3.0.1.jar
netty-all-4.0.4.Final.jar
ra.jar
slf4j-api-1.7.12.jar
snappy-java-1.1.1.6.jar
spring-core-4.2.4.RELEASE.jar
spring-shell-1.1.0.RELEASE.jar

Comparing to GemFire 8.2 we’ve made the following changes:
- jline
- jna (Dan has already submitted a patch for adding jna [3])
+ log4j-jcl
+ log4j-jul
+ log4j-slf4j-impl
+ slf4j-api
- xom
+ fastutil
+ findbugs-annotations
+ jansi
+ javax.resource
+ javax.transaction
+ jgroups

Do you see any jars that should / should not be in the pom?  Looks like we could remove jansi and findbugs-annotations (though that might cause compile warnings).

I think one that that isn’t clear is *when* optional dependencies become required.  That is, if I use feature X I need to include a dependency on lib Y.  BTW, this looks like a huge step forward compared to M1!


Anthony

[1] https://issues.apache.org/jira/browse/GEODE-27
[2] https://github.com/metatype/geode-hello-world
[3] https://reviews.apache.org/r/46110/

Comparing maven deps vs lib/ dir

Posted by Nitin Lamba <nl...@apache.org>.
+1

Great progress indeed!!

On Tuesday, April 12, 2016, Anthony Baker <ab...@pivotal.io> wrote:

> See [1].  Only trouble I had was excluding log4j-slf4j-impl.  Without that
> I hit a startup error complaining about logging conflicts.
>
> compile ('org.apache.geode:geode-core:1.0.0-incubating.M2') {
>     exclude module: 'log4j-slf4j-impl'
>   }
>
> It would be nice to remove both slf4j-api and log4j-slf4j-impl in the
> future.
>
> Anthony
>
> [1] https://github.com/metatype/geode-springboot-hello
>
> > On Apr 12, 2016, at 4:02 PM, William Markito <wm...@pivotal.io>
> wrote:
> >
> > ++1  - Congrats!!
> >
> > We should also try with other frameworks, such as Spring(boot) to see if
> > it's now easier to integrate without going into conflicts.
>
>

Re: Comparing maven deps vs lib/ dir

Posted by Anthony Baker <ab...@pivotal.io>.
See [1].  Only trouble I had was excluding log4j-slf4j-impl.  Without that I hit a startup error complaining about logging conflicts.

compile ('org.apache.geode:geode-core:1.0.0-incubating.M2') {
    exclude module: 'log4j-slf4j-impl'
  }

It would be nice to remove both slf4j-api and log4j-slf4j-impl in the future.

Anthony

[1] https://github.com/metatype/geode-springboot-hello

> On Apr 12, 2016, at 4:02 PM, William Markito <wm...@pivotal.io> wrote:
> 
> ++1  - Congrats!!
> 
> We should also try with other frameworks, such as Spring(boot) to see if
> it's now easier to integrate without going into conflicts.


Re: Comparing maven deps vs lib/ dir

Posted by William Markito <wm...@pivotal.io>.
++1  - Congrats!!

We should also try with other frameworks, such as Spring(boot) to see if
it's now easier to integrate without going into conflicts.

On Tue, Apr 12, 2016 at 3:58 PM John Blum <jb...@pivotal.io> wrote:

> +1 This is a huge improvement; nice work!  Not sure about all them, but I
> seem to remember the log4j extension JARs (e.g. log4j-jcl, log4j-jul and
> log4j-slf4j-impl) definitely being feature specific.  I think it was *Gfsh*
> that used JUL and embedded Tomcat (at the time) that used SLF4J.
>
> findbugs-annotations is needed at runtime, when a GemFire class having
> those annotations is loaded, of course.
>
>
> On Tue, Apr 12, 2016 at 2:49 PM, Anthony Baker <ab...@pivotal.io> wrote:
>
> > The changes for GEODE-27 [1] improved our pom dependencies immensely.  I
> > wrote up a quick sample app [2] to test out the maven dependencies.
> Here’s
> > what the sample app pulls in just based on geode-core:
> >
> > Anthony-Baker-MacBook-Pro:geode-hello-world abaker$ ls -1
> > build/install/geode-hello-world/lib/
> > antlr-2.7.7.jar
> > commons-io-2.3.jar
> > commons-lang-2.5.jar
> > commons-logging-1.2.jar
> > fastutil-7.0.2.jar
> > findbugs-annotations-1.3.9-1.jar
> > geode-common-1.0.0-incubating.M2.jar
> > geode-core-1.0.0-incubating.M2.jar
> > geode-hello-world.jar
> > geode-joptsimple-1.0.0-incubating.M2.jar
> > geode-json-1.0.0-incubating.M2.jar
> > jackson-annotations-2.2.0.jar
> > jackson-core-2.2.0.jar
> > jackson-databind-2.2.0.jar
> > jansi-1.8.jar
> > javax.resource-api-1.7.jar
> > javax.transaction-api-1.2.jar
> > jgroups-3.6.8.Final.jar
> > log4j-api-2.5.jar
> > log4j-core-2.5.jar
> > log4j-jcl-2.5.jar
> > log4j-jul-2.5.jar
> > log4j-slf4j-impl-2.5.jar
> > slf4j-api-1.7.12.jar
> >
> > In comparison, here is the geode lib/ dir:
> >
> > Anthony-Baker-MacBook-Pro:apache-geode abaker$ ls -1 lib/
> > activation-1.1.jar
> > antlr-2.7.7.jar
> > commons-io-2.3.jar
> > commons-lang-2.5.jar
> > commons-logging-1.2.jar
> > commons-modeler-2.0.jar
> > fastutil-7.0.2.jar
> > findbugs-annotations-1.3.9-1.jar
> > geode-common-1.0.0-incubating.M2.jar
> > geode-core-1.0.0-incubating.M2.jar
> > geode-cq-1.0.0-incubating.M2.jar
> > geode-dependencies.jar
> > geode-jca-1.0.0-incubating.M2.rar
> > geode-joptsimple-1.0.0-incubating.M2.jar
> > geode-json-1.0.0-incubating.M2.jar
> > geode-lucene-1.0.0-incubating.M2.jar
> > geode-wan-1.0.0-incubating.M2.jar
> > geode-web-1.0.0-incubating.M2.jar
> > geode-web-api-1.0.0-incubating.M2.jar
> > gfsh-dependencies.jar
> > guava-15.0.jar
> > jackson-annotations-2.2.0.jar
> > jackson-core-2.2.0.jar
> > jackson-databind-2.2.0.jar
> > jansi-1.8.jar
> > javax.mail-api-1.4.5.jar
> > javax.resource-api-1.7.jar
> > javax.servlet-api-3.1.0.jar
> > javax.transaction-api-1.2.jar
> > jetty-http-9.3.6.v20151106.jar
> > jetty-io-9.3.6.v20151106.jar
> > jetty-security-9.3.6.v20151106.jar
> > jetty-server-9.3.6.v20151106.jar
> > jetty-servlet-9.3.6.v20151106.jar
> > jetty-util-9.3.6.v20151106.jar
> > jetty-webapp-9.3.6.v20151106.jar
> > jetty-xml-9.3.6.v20151106.jar
> > jgroups-3.6.8.Final.jar
> > jline-2.12.jar
> > jna-4.0.0.jar
> > log4j-api-2.5.jar
> > log4j-core-2.5.jar
> > log4j-jcl-2.5.jar
> > log4j-jul-2.5.jar
> > log4j-slf4j-impl-2.5.jar
> > lucene-analyzers-common-5.3.0.jar
> > lucene-core-5.3.0.jar
> > lucene-queries-5.3.0.jar
> > lucene-queryparser-5.3.0.jar
> > mx4j-3.0.1.jar
> > mx4j-remote-3.0.1.jar
> > mx4j-tools-3.0.1.jar
> > netty-all-4.0.4.Final.jar
> > ra.jar
> > slf4j-api-1.7.12.jar
> > snappy-java-1.1.1.6.jar
> > spring-core-4.2.4.RELEASE.jar
> > spring-shell-1.1.0.RELEASE.jar
> >
> > Comparing to GemFire 8.2 we’ve made the following changes:
> > - jline
> > - jna (Dan has already submitted a patch for adding jna [3])
> > + log4j-jcl
> > + log4j-jul
> > + log4j-slf4j-impl
> > + slf4j-api
> > - xom
> > + fastutil
> > + findbugs-annotations
> > + jansi
> > + javax.resource
> > + javax.transaction
> > + jgroups
> >
> > Do you see any jars that should / should not be in the pom?  Looks like
> we
> > could remove jansi and findbugs-annotations (though that might cause
> > compile warnings).
> >
> > I think one that that isn’t clear is *when* optional dependencies become
> > required.  That is, if I use feature X I need to include a dependency on
> > lib Y.  BTW, this looks like a huge step forward compared to M1!
> >
> >
> > Anthony
> >
> > [1] https://issues.apache.org/jira/browse/GEODE-27
> > [2] https://github.com/metatype/geode-hello-world
> > [3] https://reviews.apache.org/r/46110/
> >
>
>
>
> --
> -John
> 503-504-8657
> john.blum10101 (skype)
>
-- 
~/William

Re: Comparing maven deps vs lib/ dir

Posted by John Blum <jb...@pivotal.io>.
+1 This is a huge improvement; nice work!  Not sure about all them, but I
seem to remember the log4j extension JARs (e.g. log4j-jcl, log4j-jul and
log4j-slf4j-impl) definitely being feature specific.  I think it was *Gfsh*
that used JUL and embedded Tomcat (at the time) that used SLF4J.

findbugs-annotations is needed at runtime, when a GemFire class having
those annotations is loaded, of course.


On Tue, Apr 12, 2016 at 2:49 PM, Anthony Baker <ab...@pivotal.io> wrote:

> The changes for GEODE-27 [1] improved our pom dependencies immensely.  I
> wrote up a quick sample app [2] to test out the maven dependencies.  Here’s
> what the sample app pulls in just based on geode-core:
>
> Anthony-Baker-MacBook-Pro:geode-hello-world abaker$ ls -1
> build/install/geode-hello-world/lib/
> antlr-2.7.7.jar
> commons-io-2.3.jar
> commons-lang-2.5.jar
> commons-logging-1.2.jar
> fastutil-7.0.2.jar
> findbugs-annotations-1.3.9-1.jar
> geode-common-1.0.0-incubating.M2.jar
> geode-core-1.0.0-incubating.M2.jar
> geode-hello-world.jar
> geode-joptsimple-1.0.0-incubating.M2.jar
> geode-json-1.0.0-incubating.M2.jar
> jackson-annotations-2.2.0.jar
> jackson-core-2.2.0.jar
> jackson-databind-2.2.0.jar
> jansi-1.8.jar
> javax.resource-api-1.7.jar
> javax.transaction-api-1.2.jar
> jgroups-3.6.8.Final.jar
> log4j-api-2.5.jar
> log4j-core-2.5.jar
> log4j-jcl-2.5.jar
> log4j-jul-2.5.jar
> log4j-slf4j-impl-2.5.jar
> slf4j-api-1.7.12.jar
>
> In comparison, here is the geode lib/ dir:
>
> Anthony-Baker-MacBook-Pro:apache-geode abaker$ ls -1 lib/
> activation-1.1.jar
> antlr-2.7.7.jar
> commons-io-2.3.jar
> commons-lang-2.5.jar
> commons-logging-1.2.jar
> commons-modeler-2.0.jar
> fastutil-7.0.2.jar
> findbugs-annotations-1.3.9-1.jar
> geode-common-1.0.0-incubating.M2.jar
> geode-core-1.0.0-incubating.M2.jar
> geode-cq-1.0.0-incubating.M2.jar
> geode-dependencies.jar
> geode-jca-1.0.0-incubating.M2.rar
> geode-joptsimple-1.0.0-incubating.M2.jar
> geode-json-1.0.0-incubating.M2.jar
> geode-lucene-1.0.0-incubating.M2.jar
> geode-wan-1.0.0-incubating.M2.jar
> geode-web-1.0.0-incubating.M2.jar
> geode-web-api-1.0.0-incubating.M2.jar
> gfsh-dependencies.jar
> guava-15.0.jar
> jackson-annotations-2.2.0.jar
> jackson-core-2.2.0.jar
> jackson-databind-2.2.0.jar
> jansi-1.8.jar
> javax.mail-api-1.4.5.jar
> javax.resource-api-1.7.jar
> javax.servlet-api-3.1.0.jar
> javax.transaction-api-1.2.jar
> jetty-http-9.3.6.v20151106.jar
> jetty-io-9.3.6.v20151106.jar
> jetty-security-9.3.6.v20151106.jar
> jetty-server-9.3.6.v20151106.jar
> jetty-servlet-9.3.6.v20151106.jar
> jetty-util-9.3.6.v20151106.jar
> jetty-webapp-9.3.6.v20151106.jar
> jetty-xml-9.3.6.v20151106.jar
> jgroups-3.6.8.Final.jar
> jline-2.12.jar
> jna-4.0.0.jar
> log4j-api-2.5.jar
> log4j-core-2.5.jar
> log4j-jcl-2.5.jar
> log4j-jul-2.5.jar
> log4j-slf4j-impl-2.5.jar
> lucene-analyzers-common-5.3.0.jar
> lucene-core-5.3.0.jar
> lucene-queries-5.3.0.jar
> lucene-queryparser-5.3.0.jar
> mx4j-3.0.1.jar
> mx4j-remote-3.0.1.jar
> mx4j-tools-3.0.1.jar
> netty-all-4.0.4.Final.jar
> ra.jar
> slf4j-api-1.7.12.jar
> snappy-java-1.1.1.6.jar
> spring-core-4.2.4.RELEASE.jar
> spring-shell-1.1.0.RELEASE.jar
>
> Comparing to GemFire 8.2 we’ve made the following changes:
> - jline
> - jna (Dan has already submitted a patch for adding jna [3])
> + log4j-jcl
> + log4j-jul
> + log4j-slf4j-impl
> + slf4j-api
> - xom
> + fastutil
> + findbugs-annotations
> + jansi
> + javax.resource
> + javax.transaction
> + jgroups
>
> Do you see any jars that should / should not be in the pom?  Looks like we
> could remove jansi and findbugs-annotations (though that might cause
> compile warnings).
>
> I think one that that isn’t clear is *when* optional dependencies become
> required.  That is, if I use feature X I need to include a dependency on
> lib Y.  BTW, this looks like a huge step forward compared to M1!
>
>
> Anthony
>
> [1] https://issues.apache.org/jira/browse/GEODE-27
> [2] https://github.com/metatype/geode-hello-world
> [3] https://reviews.apache.org/r/46110/
>



-- 
-John
503-504-8657
john.blum10101 (skype)