John Plocher wrote: > On Tue, Dec 9, 2008 at 11:01 AM, Tom Childers <tom.childers at sun.com> wrote: > >> ... then links may get changed and cause things to break. >> > > >> We asked the team to adopt the convention established for junit, LSARC/ >> 2008/633, similar to /usr/lib: >> >> /usr/share/lib/java/junit.jar link to most recent version >> /usr/share/lib/java/junit-4.5.jar >> /usr/share/lib/java/junit-3.8.2.jar >> ...etc. >> >> However, if they place all the findbugs pieces, like >> annotations-1.3.4.jar, in /usr/share/lib/java, then we have the >> situation that multiple projects who require and deliver the same >> component can overwrite each other. annotations.jar could be changed >> to link to a different version, breaking the functionality of >> something that is already installed. >> > > > Shouldn't those <somethings> depend directly on the versioned item and > NOT on the convenience link? That is, if I depend on junit, I should either > > A) link to /usr/share/lib/java/junit.jar IFF the interface stability > I care about > is Committed, > or > B) link to /usr/share/lib/java/junit-4.5.jar if the interface > stability is less stable >
Is there case precedent that indicates that all libraries should be versioned when installed? What happens for consumers of various version of: dom4j.jar, jaxen.jar, jsr-305.jar, et al listed there - presumably those won't be symlinks? Given the amount of java applications and scaffolding that's in the project pipeline, are we heading towards java jar hell?