axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Ruby" <>
Subject Managing versions of Apache Jakarta software
Date Thu, 28 Mar 2002 19:12:02 GMT

- Sam Ruby
---------------------- Forwarded by Sam Ruby/Raleigh/IBM on 03/28/2002
02:11 PM ---------------------------

"ajack" <> on 03/28/2002 01:56:01 PM

Please respond to "Jakarta General List" <>

To:    <>
Subject:    Managing versions of Apache Jakarta software


I've been lucky enough to have benefited from a lot of the excellent
packages put out be this community, e.g.
etc etc, and I thank you all for that. Recently however my utilization of a
lot of Apache software has bitten me (commons-logging in AXIS in this
and it all comes down to "JAR version hell" & conflicts between various
versions delivered with various components.

Upon investigation I see that some Jakarta projects distribute JARs with
version information inside (notably log4j, XALAN) and some do not (notable
AXIS and commons-logging, which is sad since they are newer and changing,
need it badly.)

Please please please make it a standard that all Jakarta JARs are
distributed with correct version information in them. This will not resolve
the JAR hell of conflicts, but it will allow folk to be able to document
what exact versions they use of libraries & track down environmental

Just to attempt to help, here are some things I have found:

Javasoft did provide a JAR versioning, albeit [unfortunately] in a manifest
file, not in the code [so not great for keeping in synch, IMHO].


Here is a sample manifest from LOG4J:

 Manifest-version: 1.0

 Name: org/apache/log4j/
 Implementation-Title: log4j
 Implementation-Version: 1.1.3
 Implementation-Vendor: "Apache Software Foundation"

Now, it occurred to me that ANT would be the best tool to use for keeping
manifest files in synchronization with code/releases, but I found [not that
there may not exist] no easy way to do this with built in commands.

That said I saw a couple of ways of managing the manifest within apache ant
scripts, the simplest in log4j that does a search and replace in a template
jar to set the version string:

  <target name="prejar" depends="build">
    <mkdir dir="${jar.dest}"/>
    <filter token="version" value="${version}" />
    <copy file="${manifest.src}" tofile="${jar.dest}/"

and then later used the manifest attribute on the jar task:

 <jar jarfile="${jar.dest}/log4j-core.jar" basedir="${javac.dest}"

Please look at Jakarta projects to see if versioning is missing, and please
look at adding it. As I manage a deployment of a number of machines/domains
of jakarta software the easier I can determine versions the better for
resolving issues. I would believe this would help other users also.

Thanks in advance of any consideration.


Open Business Interchange: <>
The Revolutionary B2Bi Web Service ...


Here is the XALAN manifest:

Manifest-Version: 1.0
Main-Class: org.apache.xalan.xslt.Process
Created-By: 1.2.2 (Sun Microsystems Inc.)
Class-Path: jaxp.jar xerces.jar crimson.jar xml-apis.jar

Name: org/apache/xml
Implementation-Vendor: Apache Software Foundation
Implementation-Version: 2.2.D14
Implementation-Title: org.apache.xml
Comment: DTM implementation and utilities

Name: org/apache/xpath
Implementation-Vendor: Apache Software Foundation
Implementation-Version: 2.2.D14
Implementation-Title: org.apache.xpath
Comment: XPath engine

Name: org/apache/xalan
Specification-Title: Java API for XML Processing
Specification-Vendor: Sun Microsystems Inc.
Implementation-Vendor: Apache Software Foundation
Specification-Version: 1.1
Implementation-Version: 2.2.D14
Implementation-Title: org.apache.xalan
Comment: Main Xalan engine implementing TrAX/JAXP

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message