Peter Donald wrote:

> At 04:35  12/4/01 -0700, Nael Mohammad wrote:
> 
>> Can you elaborate on CJAN?
> 
> 
> It was an idea originally brought up by Jon to implement a system similar
> to CPAN but for java not perl. So you would basically have a global
> repository where you could download binary snapshots (ie .jar/.war/.ear
> files) of products. 

Cool.  Let's do it!


> 
> Associated with each product has a list of jars each with a name (and
> optionally a flavour) and a version. So you could have
> turbine-debug-1.2.3.jar, avalon-4.5.6.jar, log4j-7.8.jar etc
> 

OK


> When doing a build you can choose to update your local jars so that the
> required versions are stored in a system wide, workspace wide or project
> wide repository.

OK


> 
> For instance in the Avalon projects I currently have a temporary hack till
> CJAN arrives that installs the jars into a location specified by cjan.home.
> So I set cjan.home in "${user.home}/.ant.properties". The binaries are
> installed into systemwide /opt/apps/cjan in my case and other projects
> directly reference it from there.
> 
> When full CJAN comes about the system will look something like this
> 
> <target name="cjan-update">
>   
>   <cjan-get category="xml/parser" name="xerces" version="1.2"/>
> 
> </target>

Cool.


> 
> This will first check your local repositories for appropriate jar. In my
> case it would check the following locations
> 
> /opt/apps/cjan/xml/parser/xerces-1.2[.*].jar
> /opt/Repositories/avalon/lib/xml/parser/xerces-1.2[.*].jar
> /opt/Repositories/avalon/jakarta-avalon/lib/xml/parser/xerces-1.2[.*].jar
> 
> (or you could elide category directories - xml/parser - if it looked better).
> 
> It would detect that I don't have xerces around with correct version and
> download the appropriate jar from CJAN repository
> 
> ie http://www.cjan.org/directory/xml/parser/xerces-1.2[.*].jar
> 
> It would then install it into a local system specific place dependening on
> permissions and settings. I would choose for it to be installed at
> workspace level - namely
> 
> /opt/Repositories/avalon/lib/xml/parser/xerces-1.2[.*].jar
> 
> It would then set the property xerces.jar to the location of the jar. 
> 
> A bit further on you go 
> 
> <classpath id="project.class.path">
>   <pathelement location="${xerces.jar}" />
>   ...
> </classpath>
> 
> Subsequent runs would not need to download jar but instead could use this
> one directly.
> 

Great.


> This would allow each project to depend on particular versions, be easy for
> end user and remove need for binaries in CVS. 

Since I understand the commons sandbox to be just the sort of thing for 
this, and I also understand that every jakarta committer has access to 
the sandbox, I am going to start the code part of CJAN.  I see it as an 
optional ant task with some repository configuration information.

See you all in the sandbox.

Scott Sanders


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to