Found a SO question on the problem.
http://stackoverflow.com/questions/11677572/dealing-with-xerces-hell-in-java-maven
I think the best option is probably to move off xerces (Egon’s mentioned this
has been a problematic library before).
J
On Sep 4, 2014, at 11:37 AM, Oscar Mora <oscarmorape...@gmail.com> wrote:
> Hi John,
>
> totally right, as you point out, the 'ClassLoader' goes nuts when
> SAXParserFactory comes from a different jar and from the JRE (rt.jar).
>
> The rebuilt cdk.jar (without xml-apis:xml-apis) works fine for me.
>
> thanks again for your time.
>
> Oscar
>
> 2014-09-04 12:03 GMT+02:00 John May <john...@ebi.ac.uk>:
> Hi Oscar,
>
> Thanks for the example of configuring shade to exclude it.
>
> I guess the issue you were having was it was clashing with the JDK class (see
> below). XML APIs is not really my domain but I'll see if we can remove
> dependence on xmlapis from the CDK so you don’t have to add the hack. I
> believe it's mainly used for XOM which is used for CML and might be an
> artifact of an old xom version.
>
> J
>
> <Screen Shot 2014-09-04 at 10.58.42 AM.png>
>
>
> On Sep 4, 2014, at 10:56 AM, Oscar Mora <oscarmorape...@gmail.com> wrote:
>
>> John,
>>
>> I have tried your hunch but it does works for me, after looking and adding
>> <scope>provided</scope> to all 'xom:xom' dependencies the final jar still
>> contains the classes of the dependency. Sorry
>>
>> I found one way to solve this. If anybody runs in the same problem, the
>> following has worked for me:
>>
>> The packaging process is performed using 'shade-plugin'
>> (http://maven.apache.org/plugins/maven-shade-plugin/) in bundle/pom.xml:
>>
>> ...
>> <plugin>
>> <groupId>org.apache.maven.plugins</groupId>
>> <artifactId>maven-shade-plugin</artifactId>
>> <version>2.2</version>
>> <configuration>
>> <finalName>cdk-${project.parent.version}</finalName>
>> <filters>
>> <filter>
>> <artifact>*:*</artifact>
>> <excludes>
>> <exclude>META-INF/*.SF</exclude>
>> <exclude>META-INF/*.DSA</exclude>
>> <exclude>META-INF/*.RSA</exclude>
>> </excludes>
>> </filter>
>> </filters>
>> </configuration>
>> <executions>
>> <execution>
>> <phase>package</phase>
>> <goals>
>> <goal>shade</goal>
>> </goals>
>> </execution>
>> </executions>
>> </plugin>
>> ...
>>
>> The configuration tag of this plug-in allows to exclude specific
>> dependencies by using the <artifactSet> tag. I have added the following (in
>> bold):
>>
>> ...
>> <plugin>
>> <groupId>org.apache.maven.plugins</groupId>
>> <artifactId>maven-shade-plugin</artifactId>
>> <version>2.2</version>
>> <configuration>
>> <finalName>cdk-${project.parent.version}</finalName>
>> <filters>
>> <filter>
>> <artifact>*:*</artifact>
>> <excludes>
>> <exclude>META-INF/*.SF</exclude>
>> <exclude>META-INF/*.DSA</exclude>
>> <exclude>META-INF/*.RSA</exclude>
>> </excludes>
>> </filter>
>> </filters>
>> <artifactSet>
>> <excludes>
>> <exclude>xml-apis:xml-apis:*:*</exclude>
>> </excludes>
>> </artifactSet>
>> </configuration>
>> <executions>
>> <execution>
>> <phase>package</phase>
>> <goals>
>> <goal>shade</goal>
>> </goals>
>> </execution>
>> </executions>
>> </plugin>
>> ...
>>
>> In my case I wanted to remove dependency xml-apis:xml-apis. The final
>> package cdk-1.5.7.jar does not contain the classes of this dependency.
>>
>> thanks for your time.
>>
>> Oscar
>>
>>
>>
>> 2014-09-03 20:32 GMT+02:00 John May <john...@ebi.ac.uk>:
>> Hi Oscar,
>>
>> Just a hunch but might also need to exclude xom also - xom depends on
>> xml-apis (see here http://mvnrepository.com/artifact/xom/xom/1.2.5).
>>
>>> [WARNING] xml-apis-1.3.03.jar, xpp3-1.1.4c.jar define 1 overlappping
>>> classes:
>>> [WARNING] - javax.xml.namespace.QName
>>> [WARNING] xom-1.2.5.jar, xml-apis-1.3.03.jar define 1 overlappping classes:
>>> [WARNING] - org.w3c.dom.UserDataHandler
>>
>> J
>>
>> On Sep 3, 2014, at 7:06 PM, Oscar Mora <oscarmorape...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I use CDK as external library in a java-based project. I am experiencing
>>> problems with the 'Classloader' and for this I would like to rebuild CDK
>>> avoiding the inclusion of an specific dependency. The class which I think
>>> is problematic (I must admit I am not 100% sure) is:
>>>
>>> javax.xml.parsers.SAXParserFactory
>>>
>>> This class is contained in the dependency:
>>>
>>> xml-apis.xml-apis
>>>
>>> I have detected this dependency in cdk/base/dict sub-project
>>>
>>> <dependency>
>>> <groupId>xml-apis</groupId>
>>> <artifactId>xml-apis</artifactId>
>>> <version>1.3.03</version>
>>> </dependency>
>>>
>>> and I have added the following line to the pom.xml contained in
>>> cdk/base/dict/pom.xml :
>>>
>>> <dependency>
>>> <groupId>xml-apis</groupId>
>>> <artifactId>xml-apis</artifactId>
>>> <version>1.3.03</version>
>>> <scope>provided</scope>
>>> </dependency>
>>>
>>> Then, I have rebuilt the CDK project using the command:
>>>
>>> $mvn clean compile package -Dmaven.test.skip=true
>>>
>>> But the final .jar (contained in bundle/target) still contains the class:
>>>
>>> javax.xml.parsers.SAXParserFactory
>>>
>>> What am I doing wrong ? Could anybody give me a piece of advice to solve
>>> this situation ?
>>>
>>> thanks in advance
>>>
>>> Oscar
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Slashdot TV.
>>> Video for Nerds. Stuff that matters.
>>> http://tv.slashdot.org/_______________________________________________
>>> Cdk-user mailing list
>>> Cdk-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/cdk-user
>>
>>
>> ------------------------------------------------------------------------------
>> Slashdot TV.
>> Video for Nerds. Stuff that matters.
>> http://tv.slashdot.org/
>> _______________________________________________
>> Cdk-user mailing list
>> Cdk-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/cdk-user
>>
>>
>> ------------------------------------------------------------------------------
>> Slashdot TV.
>> Video for Nerds. Stuff that matters.
>> http://tv.slashdot.org/_______________________________________________
>> Cdk-user mailing list
>> Cdk-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/cdk-user
>
>
> ------------------------------------------------------------------------------
> Slashdot TV.
> Video for Nerds. Stuff that matters.
> http://tv.slashdot.org/_______________________________________________
> Cdk-user mailing list
> Cdk-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/cdk-user
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user