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]

Reply via email to