[kepler-users] Kepler 2.0, intermodular libraries conflict

David Welker david.v.welker at gmail.com
Mon Aug 9 14:01:15 PDT 2010


Hi Tomasz,

This issue can be a little tricky.

The first thing to note is that you can override other jars. If you put
different jars in your module, they will be used by your module AND all of
Kepler instead of the jars that are there. The problem with this arises in
situations where your jars are not compatible with Kepler. Then things can
break. But this is the first approach to try. Just put your jars in your own
module and see if things work. It sounds like you have already done this.

The second thing to note is that it is possible to use multiple class
loaders. That is, you can use a separate class loader to load different jars
for your module than for the rest of Kepler. Documentation about how to do
this is included in the build system documentation. This might work. The
thing is, I have had problems with this recently when someone was trying to
use a different class loader for Log4j. So, this is not guaranteed to work
and this feature has some bugs that cause it to not work at least some of
the time. Also, of course your IDE is probably not going to know about the
separate class loader, and your IDE might get confused.

The third thing to note is that it might be possible to talk to the Kepler
leadership team and get these jars upgraded in Kepler. This would be a very
reasonable request to make if neither of the above solutions work for you.

-David

On Fri, Aug 6, 2010 at 9:11 AM, Tomasz Żok <tzok at man.poznan.pl> wrote:

> Hi,
>
> I am developing a new module which uses several external .jar libraries.
> These are mostly well known and widely used libraries like log4j, etc.
> However I found out that there is a conflict in library versions that
> disables my module totally. I pinpointed the issue to the minimal subset of
> conflicting jars:
> actors/lib/jar/commons-httpclient-3.0.1.jar
> common/lib/jar/log4j-1.2.8.jar
> common/lib/jar/sms/xercesImpl.jar
>
> My module uses:
> commons-httpclient-3.1.jar
> log4j-1.2.16.jar
> xercesImpl-2.7.1.jar
>
> My libraries are in the classpath when I run Kepler, but they are not
> loaded, because the three conflicting ones precede them. What should I do in
> such situation? Should I somehow formally ask Kepler devs to update theirs
> or should I do anything with my libraries?
>
> Best regards,
> Tomek
>
>
> --
> Tomasz Zok
> Poznan Supercomputing and Networking Center
> ul. Noskowskiego 10, 61-704 Poznan, POLAND
> http://www.man.poznan.pl
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20100809/9720acc8/attachment.html>


More information about the Kepler-users mailing list