On Tue, Dec 4, 2012 at 9:34 PM, Vincent Massol <vincent(a)massol.net> wrote:
On Dec 4, 2012, at 8:09 PM, Sergiu Dumitriu <sergiu(a)xwiki.org> 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.
Thanks
-Vincent
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs