This jjar stuff seems pretty spiffy. How much does it cost? Can I have it painted in 
metallic-blue and leather seats? :-) 

At 16:27 08.08.2001 -0400, Geir Magnusson Jr. wrote:
>Vincent Massol wrote:
>> 
>> ----- Original Message -----
>> From: "Jason van Zyl" <[EMAIL PROTECTED]>
>> To: "Vincent Massol" <[EMAIL PROTECTED]>
>> Sent: Wednesday, August 08, 2001 7:24 PM
>> Subject: Re: Central Repository for JARs
>> 
>> [snip]
>> > Ah, do you use .ant.properties? I consider what's in build.properties to
>> be
>> > ant properties.
>> 
>> yes, me too :)
>> 
>> [snip]
>> > > why don't you do it as I have proposed ? It looks fine and simple to me.
>> >
>> > I actually don't understand what you're saying.
>> 
>> I am proposing :
>> 
>> * JJAR be an Ant taks. This is agreed, it seems. So you just have to drop it
>> in $ANT_HOME/lib (or even better if it is included in optional.jar but not
>> necessary for a first release),
>
>it is an ant task... (or has one...)
>
>> * I define in my build.properties (for example) the location of the
>> repository directory (lib.repo property)
>
>Yep
>
>> * I point my jars to this in build.properties. For example, in Cactus I need
>> the servlet 2.2 API jar, so I would write :
>> 
>> lib.repo = c:/tmp/repo
>> servlet22.jar = c:/tmp/repo/XXX/servlet.jar
>
>The problems here is that it doens't take advantage of what jjar really
>has to offer.
>
>Try this :
>
>- you define, for your project, the dependencies for that project in a
>local (or central) descriptor
>- then jjar takes care of making sure that the jars and their
>dependencies (and their dependencies...) are in the local repository
>- then you do it by blind faith :) that you can include all the jars in
>the repo in the classpath, something like
>
> <!-- Build classpath -->
>  <path id="classpath">
>    <fileset dir="./repository">
>      <include name="**/*.jar"/>
>    </fileset>
>  </path>
>
>What you get out of this is that you only define the dependencies in
>*one place* the project decription in the repository.
> 
>Keeps maintenance to a minimum.
> 
>> Question: How do you standardize XXX ? In other words how do you define the
>> location of a given jar in the repository (server side). I believe, this is
>> actually what Sam was saying and GUMP has defined a way to define it.
>
>How do you define it?
>
>Here's how it's done in the current repository descriptor for ant
>
>  <package name="ant" default="1.3" latest="1.3">
>        <info>
>          <desc>The amazing Jakarta build tool.</desc>
>          <href>http://jakarta.apache.org/ant/</href>
>        </info>
>
>        <versionset>
>
>           <version version="1.3">
>              <note> current production version</note>
>              <jar>ant-1.3.jar</jar>
>              <dependencies>
>                <dep package="jaxp" version="1.0"/>
>              </dependencies>
>           </version>
>       </versionset>
>    </package>
>
>Note that the repository has a name for the jar, ant-1.3.jar.  This will
>be unique in the repository. (It's up to the repository maintainer to
>ensure this.  Can't be that hard.  You could keep it in a subdir if that
>lit your lucky...
>
>What I indended is for this whole filename issue to disappear because
>its really a human factor.  We could easily call them 1.jar 2.jar 3.jar
>4.jar etc (but it would be a drag to try and figure out what is what...)
>because the whole process is automatic.  But for human-friendlyness,
>ant-1.3.jar is ok...
>
>Remember, the version information about a jar in the local repository
>comes from *inside* the jar, not the filename.  JJAR looks at each jar
>in the repository, and gets the JJAR package name ('ant') and version
>from within.  Again, part of the maintenance of the repository -
>hopefully it can be pushed to be automatically done in the build process
>of the jars by the projects themselves..
>
>> 
>> * Somewhere in my build.xml, I call the jjar task to update my local jars. A
>> good place would be my init target for instance. That would be something
>> like:
>> 
>> <jjar repo="${lib.repo}" config="<config file>"/>
>
>Yes. You could have the repository descriptor as part of the source
>tree...
> 
>> I think we need a jjar config file that defines the needed jars and their
>> versions. We might also need profiles, like
>> 
>> <config file>:
>> 
>> <dependencies>
>> 
>>   <profile name="latest">
>>     <jar name="servlet.api"> <!-- by default when no version is defined, use
>> latest -->
>>     ...
>>   </profile>
>> 
>>   <profile name="stable">
>>     <jar name="velocity" version="1.1"/>
>>     ...
>>   </profile>
>> 
>> </dependencies
>> 
>> Although profiles would be refinement that is not needed for the first
>> release.
>> But I do think we need a file to describe the dependencies.
>
>It already does that. <sigh>
>
>For a project, you only define the projects that you need, and the
>version.  JJAR already can take care of the rest...
> 
>> * The jjar behaviour would be :
>> - if no internet connection, does nothing,
>> - if newest jars download them in lib.repo otherwise do nothing.
>
>sort of.
> 
>> [snip]
>> > >> We could get gump to build velocity-latest.jar and put that into the
>> > >> repository as well though I think it will always be the case that a
>> > > project
>> > >> binds to a version.
>> > >
>> > > nope ... velocity-latest is the same as velocity-1.2, it contains
>> version
>> > > information in the name! :)
>> >
>> > How would you know that velocity-1.2 is the latest for sure?
>> 
>> I don't know that. That's my question ! I'm just saying that we need a
>> mechanism (like the one proposed above) to be able to manage latest
>> versions.
>
>That's handled by the central repository.  if your project uses
>Velocity/latest, then you will get whatever is defined to be the latest
>version of Velocity when  you refresh...
> 
>> Note: It's funny because I have a sense of 'deja-vu' .... I remember
>> discussin all this on this same mailing list about 4 months ago ... :)
>> -Vincent
>
>Yes, and it was done then :)
>
>geir
>
>-- 
>Geir Magnusson Jr.                           [EMAIL PROTECTED]
>System and Software Consulting
>Developing for the web?  See http://jakarta.apache.org/velocity/
>Well done is better than well said - New England Proverb

--
Ceki Gülcü - http://qos.ch

Reply via email to