[infinispan-dev] Uber Jars

Tristan Tarrant ttarrant at redhat.com
Tue Jun 3 03:53:22 EDT 2014

Dear all,

on Thursday I issued a PR [1] to introduce Uber Jars, i.e. single jars 
which wrap our multitude of jars and some of the transitive 
dependencies, but it was (rightly) pointed out that we should have a 
little discussion here first.

Firstly, I'm using the maven shade plugin which repackages multiple jars 
into one with:
- automatic transitive resolution
- the ability to include/exclude certain jars
- move classes if necessary to other packages to avoid conflicts
- rewrite the POM with the new dependencies.

Here is my global strategy:
- define a set of uber-jars (see below)
- include all non-optional dependencies in each uber-jar except for the 
specification Jars (e.g. javax.transaction and javax.persistence)
- rename some internal-only dependencies to avoid conflicts
- uber jars MUST NOT inherit from infinispan-parent (too much cruft in 
there) but only from infinispan-bom.

The Uber Jars
- infinispan-embedded-all (infinispan-commons, infinispan-core, jgroups, 
jboss-marshalling-osgi, jboss-logging, infinispan-cachestore-jdbc, 
infinispan-cachestore-jpa, infinispan-cachestore-leveldb)
- infinispan-remote-all (infinispan-commons, infinispan-client-hotrod, 
commons-pool, jboss-marshalling-osgi, jboss-logging, 
infinispan-remote-query-client, infinispan-query-dsl, 
infinispan-protostream, protobuf-java)
- infinispan-query-all (infinispan-query, infinispan-query-dsl, 
hibernate-hql-parser, antlr, stringtemplate, hibernate-hql-lucene, 
hibernate-search-engine, infinispan-lucene-v4, 
hibernate-search-analyzers, lucene*, solr*, avro, jackson-core, 
jackson-mapper, paranamer, apache-compress, infinispan-lucene-directory, 
hibernate-search-infinispan, hibernate-commons-annotations). This 
package will depend on infinispan-embedded-all and we should only make a 
Lucene v4 version).

Discuss :)


[1] https://github.com/infinispan/infinispan/pull/2589

More information about the infinispan-dev mailing list