Jon, > From: Jon Stevens [mailto:[EMAIL PROTECTED] > Sent: Saturday, 25 November 2000 12:31 > To: [EMAIL PROTECTED] > Subject: [PROPOSAL] jar distribution system (was: Re: Jars in CVS ??) > > > I envision something like this: > > <http://jakarta.apache.org/jars/allfiles.xml> > > Then, in that file is a list of URL's to the .jar files...it > could look > something like this (not well thought out): > > <product name="Ant" permissionToDistribute="true"> > <version="1.2" latest="true"> > <file url="http://jakarta.apache.org/jars/files/ant-1.2.jar"> > <depends product="Xerces" version="1.2.1"/> > </file> > </version> > <version="1.1" latest="false"> > <file url="http://jakarta.apache.org/jars/files/ant-1.1.jar"> > <depends product="Xerces" version="1.1"/> > </file> > </version> > </product> >
OK, I like this idea. Rather than duplicate jars into every project, it allows each project to go and fetch the jars where necessary, from where they live. More like a web. > Then, we could write a simple Ant Task that would grab the > file and then > download the appropriate .jar files as needed. > > <jpan url="http://jakarta.apache.org/jars/allfiles.xml" product="Ant" > version="latest"> > > It would then download ant-1.2.jar and xerces-1.2.1.jar. > > We could put whatever .jar files we got permission to > distribute up there. > If we didn't have permission, then we could have a permission > error message > that would tell people where they could download the file > from instead. We wouldn't need to redistribute anyway, since such a task could conceivably go to the actual home of each jar. For example, why duplicate junit.jar on jakarta.apache.org when it is available from junit.org. I think that where a jar is not available as a "direct" download, such as JMX, taht is whenwe would need to display the "permission" message. > > Note that Ant is a bad example above since there is a > catch-22. You can't > download Ant with <jpan> (!CPAN) unless you already have Ant. :-) > But ant could bootstrap in the components needed for the optional tasks, such as junit. > So, who volunteers to build such a system? It really > shouldn't be that hard > and I think it would be immensely useful. > I'm certainly interested. I see this as a sort of distributed package manager. Rather than an allfiles.xml, I would see each "product" having its own file. When the <jpan> task processes that description, it would download the files of the other products upon which it depends. <product name="Ant"> <version="1.2" latest="true"> <file url="http://jakarta.apache.org/jars/files/ant-1.2.jar"/> <require product="jaxp" version="1.0" jpanurl="http://jakarta.apache.org/products/jaxp.xml"/> <optional product="junit" version="3.2" jpanurl="http://jakarta.apache.org/products/junit.xml"/> </version> </product> <product name="jaxp"> <version="1.0" latest="true"> <choice> <product name="jaxp_reference" version="1.01" jpanurl="..."/> <product name="Xerces" version="1.2.1" jpanurl="..."/> </choice> </version> </product> jpan may have to be interactive. Just kicking around a few ideas :-) Conor
