jaaron wrote: > To have a true run-time jar dependency solution you would need a > standard installation and launch mechanism. I suppose something based > on JNLP (WebStart) plus some sort of "ports" or "emerge" system could do > this, but I don't think it exists yet. Interesting idea though.
I'll probably be flamed for saying this here :-) but M$.NET "common language runtime" , the .NET equivalent of the JVM, has a solution to this issue. As I've mentioned elsewhere I expect its because M$ have been plagued much more than Java with the versioning problem, manifested as "DLL Hell" in windows systems where new software could upgrade system DLL's and break installed applications which have specific dependance on the older versions. Java has less of a nightmare in this respect, but we pay the price of the same basic problem by living under an ever increasing mountain of duplicated jars. The solution M$ have delivered appears to simply be a global registry (the Global Assembly Cache), but it is well thought out in respect to M$ probelm and is capable of maintaining multiple versions of the same Assemblies (think jars) and using the correct one, either the newest or a specified version. I haven't investigated it too deeply but I have a feeling that where two bits of the same application depend on different versions of the same assembly this is taken care of properly too. From what I can see it relies heavily on code signing to deliver secure name spaces and version identification, and prevent unintentional namespace conflicts. Thus anyone can download and install multiple versions (or your application installer can do it) where necessary, and you only need to install each required Assembly-version once per machine. I expect anyone suggesting that jakarta, or anyone else java-esque, should mimic M$ would be rightly laughed off the pitch but as the problem is the same it would seem sensible to at least examine the GAC and consider its pros and cons when formulating ideas for a java jar management solution. d. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]