ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conor MacNeill" <co...@m64.com>
Subject RE: [PROPOSAL] jar distribution system (was: Re: Jars in CVS ??)
Date Sat, 25 Nov 2000 15:25:44 GMT
Jon,

> From: Jon Stevens [mailto:jon@latchkey.com]
> Sent: Saturday, 25 November 2000 12:31
> To: ant-dev@jakarta.apache.org
> 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


Mime
View raw message