[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
java jartool (Was Re: java-getopt)
On Mon, 27 Aug 2001, Etienne M. Gagnon wrote:
> I'm reading with much interest the thread about .jar inclusion. If any
> body had a neat solution, feel free to discuss it.
> The only solution path I see is in the direction of the neat "libtool
> versioning", e.g. you give a "3 number" version based on implemented
> interface versions, e.g. CURRENT.REVISION.AGE. But this requires a
> standard .jar repository location, and some custom class-loading
> mechanism to "emulate" load time versioning checking/resolution (which
> is done partly at library install time on UNIX using file system
> "links"). This a seems ambitious to implement, but would certainly
> resolve all the library versioning problems (at least as well as they
> are on Linux).
Guess what, couple of months ago I have started developing such a JAR
tool, with a standard jar repository on local filesystem, X.Y.Z versioning
(folowing the Java versioning specs), and custom classloading, and custom
extension to the MANIFEST file (there is no "dependecies" entry for
example, with the library name and version pattern to be specified).
It is 80% finished, give me some more time and I will have it "released"
together with automatic jar upgrade subsystem, and the GUI for browsing
installed Java libraries.
It is based (to some extend) on RPM-like package (modules) management
systems, and all the project (like sablecc) needs to do is to specify the
library name and version pattern it is dependent on inside the MANIFEST
file. All the classloading and dependency resolution is done internally by
the jar tool system.
If anybody is interesting helping with the
design/documentation/implementation please let me know.
If working alone I am planning to have it released (current development
iteration) once the stable JDK 1.4 is released (yes, the initial
implementation is based on JDK 1.4 properties management and regular
expressions pattern matching APIs, but, well, if I have time I could make
it pluggable and use older JDKs with external libraries for doing that).