On 12/04/2012 03:34 PM, Vincent Massol wrote:
On Dec 4, 2012, at 8:09 PM, Sergiu Dumitriu <[email protected]> wrote:
On 12/04/2012 01:10 PM, Vincent Massol wrote:
Hi devs,
I'd like to propose that we stop shading Rendering Standalone. The reasons are:
1) It's far from perfect. For example we have at least 3 libs we cannot shade:
<!-- We don't relocate the following packages since they cause runtime issues: - javax.xml - org.w3c - org.apache.xerces -->
2) As we added some libs to our deps we forgot to relocate them so right now we don't shade (to cite a few): com.steadystate.css, javax.validation, ant, aspectj, slf4j, etc 3) There are lots of resources coming from dependent jars and those are not shaded. For example:
283 Tue Dec 04 18:50:42 CET 2012 javacc.class 286 Tue Dec 04 18:50:42 CET 2012 jjdoc.class 235 Tue Dec 04 18:50:42 CET 2012 jjtree.class 0 Tue Dec 04 18:50:42 CET 2012 org/xwiki/shaded/javacc/
or
3783 Tue Dec 04 18:50:42 CET 2012 org/xwiki/shaded/javacc/utils/JavaFileGenerator.class 3693 Tue Dec 04 18:50:42 CET 2012 templates/CharStream.template 15990 Tue Dec 04 18:50:42 CET 2012 templates/JavaCharStream.template 867 Tue Dec 04 18:50:42 CET 2012 templates/MultiNode.template 1317 Tue Dec 04 18:50:42 CET 2012 templates/Node.template 5962 Tue Dec 04 18:50:42 CET 2012 templates/ParseException.template 12711 Tue Dec 04 18:50:42 CET 2012 templates/SimpleCharStream.template 3227 Tue Dec 04 18:50:42 CET 2012 templates/SimpleNode.template 4005 Tue Dec 04 18:50:42 CET 2012 templates/Token.template 368 Tue Dec 04 18:50:42 CET 2012 templates/TokenManager.template 4244 Tue Dec 04 18:50:42 CET 2012 templates/TokenMgrError.template 48 Tue Dec 04 18:50:42 CET 2012 version.properties
So I'd like to keep a standalone distribution to make it easy to test XWiki Rendering but without any shading.
Here's my +1
+0.
I believe that it will be a good idea to shade a few critical libraries that are likely to appear in incompatible version, and which are known to cause problems otherwise and which work fine when shaded. I did a quick check on dependency:tree and there doesn't seem to be any such library, but we've had such problems with rhino and asm in the xwiki-platform, and even log4j when the container prefers to use its own version.
The most problematic libraries AFAIK are the ones we exclude because they can't be shaded :)
The problem is that right now we document this as if it was a working solution when it definitely isn't and I don't think it's good that we do so. Providing just a bundle to quickly get started if you don't have maven and making sure to mention the JAR hell issue and how to fix it if you want to include it in your project is the best solution I can think of.
Actually what we could do to make sure there's no misunderstanding is just to provide a zip will all JARs and leave it to the user to use them in his project.
+1, that's even better IMO than hiding dependencies in a big jar, which will cause problems. -- Sergiu Dumitriu http://purl.org/net/sergiu