[XOM-interest] XOM 1.2 Released

Adam Constabaris adamc at email.unc.edu
Fri Feb 27 11:19:56 EST 2009


Count me as someone who thinks it would be useful to make XOM 1.2 
available through Maven (which also helps Ant/Ivy users).

Realizing fully that what I'm about to say is not going to make it sound 
like I believe Maven/Ivy are useful in the end, I'll add a plea to 
consider how XOM specifies its dependencies before uploading a POM to 
Maven's central repo.  I'm willing to help with any of the specifics, if 
need be.

XOM 1.1 specifies Jaxen as a dependency, which is true in one sense 
(XOM's XPath uses Jaxen code), but not in the Maven sense (since the XOM 
jar bundled the Jaxen classes).  This makes incorporating XOM 1.1 into 
one's applications harder than it needs to be, because Jaxen's 
transitive dependencies fan out over dom4j, xpp3, and all sorts of other 
stuff, so pulling in XOM pulls in 'competing' libraries you probably 
don't need or want.  This can be handled with Maven's exclusion 
mechanism, but it's still kind of painful.

IIUC, in the Maven sense, XOM depends only on having one of its 
supported XML parsers (and, if you're using it for XSLT, an XSLT 
processor) on the classpath ; in practice, this means having a JRE that 
includes JAXP (JRE 1.4+) or the relevant parser (e.g. Xerces) jar. 
Since Elliotte wants to maintain (or, speaking strictly, advertises) 
compatibility all the way back to Java 1.0, this makes things a little 
more interesting.  Different environments will call for different POMs.

If you want to support this backwards compatibility with Maven, you'll 
probably need to use "classifiers"; a classifier is an extra piece of 
metadata that lets you select an environment-specific version of a jar 
or its dependencies (e.g. xom-1.2-jdk13.jar could be byte-for byte 
identical with xom-1.2-jdk14.jar, but they'd have different POMs with 
different dependencies).

Alternately you could bet that Maven users are likely to be working with 
JRE 1.4 and later, and ship a POM with no (or only optional) 
dependencies (and perhaps document that in the POM's description, just 
in case) ...

cheers,

AC


Elliotte Harold wrote:
> Ulrich Nicolas Lissé wrote:
>> Great news!
>>
>> May I ask you to upload the final version to some public maven repository?
>>
> 
> Eventually once I'm sure it's OK. Maven's a bit of a pain because I 
> don't use maven to build XOM itself.
> 



More information about the XOM-interest mailing list