Hi,

When I include the directory api in my project via Maven, it pulls in a dependency for xpp3-1.1.4c.jar.

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-all</artifactId>
      <version>1.0.0-M24</version>
    </dependency>

This can cause problems (for me on Weblogic server) as the xpp3 library includes a version of the javax.xml.namespace.QName class, which can then cause linkage errors when using the prefer-web-inf-classes setting to alter the classpath loading.

My question is simply: is this full dependency on xpp3 still required, or is a dependency on xpp3_min sufficient? It definitely works for me - by changing my pom.xml to the following:

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-all</artifactId>
      <version>1.0.0-M24</version>
      <exclusions>
        <exclusion>
          <groupId>xpp3</groupId>
          <artifactId>xpp3</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>xpp3</groupId>
      <artifactId>xpp3_min</artifactId>
      <version>1.1.4c</version>
    </dependency>

My classloading issues are fixed. I'm obviously not covering all the full tests here though, so there may be stuff that would no longer work with this.

This workaround is fine for my use-case, but it seems that if the full dependency is not required it would be good to replace it with the minimal one.

Cheers,

Barney

Reply via email to