The following dependency uses 2.1.2 version of iText, not sure how to make it use the latest version 5.0.2 of iText.
First, jboss-seam-pdf-2.2.0.GA.jar
has the following dependencies (skipping exclusions, refer to the root POM org.jboss.seam:root:2.2.0.GA.pom
for full details):
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.2</version>
...
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext-rtf</artifactId>
<version>2.1.2</version>
...
</dependency>
Second, the only itext 5.0.2 artifact I could find is the one mentioned in this thread (and available in the repository http://maven.itextpdf.com/):
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.0.2</version>
</dependency>
As we can see it has different groupId
and artifactId
than the previous itext dependencies so we can't use Maven'sdependencyManagement
here to force the use of this version (assuming this artifact replaces the previous one, I have no idea about this). So this leaves us with exclusions
. Something like this:
<project>
...
<properties>
<jboss-seam.version>2.2.0.GA</jboss-seam.version>
</properties>
<repositories>
<repository>
<id>itext</id>
<url>http://maven.itextpdf.com</url>
</repository>
<repository>
<id>jboss</id>
<url>http://repository.jboss.org/maven2</url>
</repository>
</repositories>
<dependencies>
...
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-pdf</artifactId>
<version>${jboss-seam.version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ui</artifactId>
</exclusion>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext-rtf</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.0.2</version>
</dependency>
</dependencies>
</project>
With this POM, the dependency tree becomes:
$ mvn dependency:tree
...
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.statckoverflow:Q2793234:jar:1.0-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.jboss.seam:jboss-seam-pdf:jar:2.2.0.GA:compile
[INFO] | \- com.sun.facelets:jsf-facelets:jar:1.1.15.B1:compile
[INFO] \- com.itextpdf:itextpdf:jar:5.0.2:compile
...
I'm not saying this will work at runtime, I'm just giving you a way to replace a dependency with Maven.