Hey! Uber jars have been around for quite a while but some old problems are still biting our ankles. The biggest problem is JBoss Logging... But before diving into the technical discussion, I would like to clarify how do we treat Uber Jars and how other (let's call them "extra") modules should integrate with them...
How Uber Jars look like: - All Uber Jar dependencies are declared as: - provided - those are APIs which should be available on your container - optional - all other dependencies - compile - JTA (I'm not sure why, but probably because this is a required API). I think it should be changed to provided at some point. - Uber Jars have (almost) no dependencies (apart from JTA) - Uber Jars contain everything to get a standard application running with ISPN in a single jar Now the biggest question is how to integrate other extra modules with them - for example Spring or Cache Stores? Here are the options: - Not integrate at all... users should use standard (small) jars in such use cases - This one has a big impact on our users, so I would assume no - All extra modules should shade everything they need and provide their own Uber Jars (like Spring Uber Jar = ISPN Core + Spring) - This one might be really hard to maintain, so I would also vote for no. - All extra modules should integrate with small jars and Uber Jars (but not both at the same time). An example application might want to add Spring-embedded and Infinispan-embedded to it's classpath and it's ready to go. Alternatively it could add Spring-embedded + infinispan-core + whatever is needed. Adding both infinispan-embedded and infinispan-core is prohibited. - Easy for the users, a bit harder for us. My vote goes here. Could you please share some thoughts whether this makes sense or not? Once we achieve common understanding - I'll propose some technical solutions. Thanks Sebastian
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev