You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Berin Loritsch <bl...@apache.org> on 2003/06/06 17:25:43 UTC

Excalibur-* Directories on the dist site

Recently one of Leos added a bunch of Excalibur-** directories on the
dist site.  It appears that they are used in conjunction with an
automatic download type of functionality.

Is this one of the steps to have Merlin integration?  If so, could
you explain a little on how to set those up for all the new libraries?

As we update new versions of these components, do we merely change the
pointers, or do we simply add to it?

Lastly, do we want to simply organize everything this way?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Excalibur-* Directories on the dist site

Posted by Berin Loritsch <bl...@apache.org>.
Leo Simons wrote:
> Berin Loritsch wrote:
> 
>> Recently one of Leos added a bunch of Excalibur-** directories on the
>> dist site.
> 
> 
> that'd be me!
> 
>> It appears that they are used in conjunction with an
>> automatic download type of functionality.
> 
> 
> yep, among other things. I outlined all of that in the "[PROPOSAL] 
> follow apache mirror layout convention" thread. That was a long e-mail; 
> I can repost if you want.

I can look it up on MARC.

> 
> ----
> 
>> Is this one of the steps to have Merlin integration?
> 
> 
> Uhm, the new structure among other things has
> 
> /dist/avalon/${groupId}/jars/${artifactId}-${version}.jar
> 
> which means www.apache.org/dist/avalon/ is now usable as a maven "remote 
> repository". I've been writing a forrest plugin for maven, and so far it 
> seems to be working rather well. IIUC, RuperTask and Centipede can work 
> with the same layout. This is nice because merlin (which builds using 
> maven) can use our own repository.
> 
> That's not the only goal: In addition, we're now following the layout 
> conventions as decided on by the infrastructure team and agreed upon on 
> the repository list.

Ok.

> 
> ----
> 
>> If so, could
>> you explain a little on how to set those up for all the new libraries?
> 
> 
> basically, you will want to symlink to the latest files replacing the 
> version with 'latest', to provide for easy access to the latest version 
> (like 
> http://www.apache.org/dist/avalon/framework/Avalon-latest-bin.zip). And 
> you want to follow the maven convention of 
> ${groupId}/jars/${artifactId}-${version}.jar. This might deserve to go 
> on the wiki:
> 

Sure, put it on the WIKI.  I have some to build up, so I want to get it
done ASAP.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Excalibur-* Directories on the dist site

Posted by Leo Simons <le...@apache.org>.
Berin Loritsch wrote:
> Recently one of Leos added a bunch of Excalibur-** directories on the
> dist site.

that'd be me!

> It appears that they are used in conjunction with an
> automatic download type of functionality.

yep, among other things. I outlined all of that in the "[PROPOSAL] 
follow apache mirror layout convention" thread. That was a long e-mail; 
I can repost if you want.

----

> Is this one of the steps to have Merlin integration?

Uhm, the new structure among other things has

/dist/avalon/${groupId}/jars/${artifactId}-${version}.jar

which means www.apache.org/dist/avalon/ is now usable as a maven "remote 
repository". I've been writing a forrest plugin for maven, and so far it 
seems to be working rather well. IIUC, RuperTask and Centipede can work 
with the same layout. This is nice because merlin (which builds using 
maven) can use our own repository.

That's not the only goal: In addition, we're now following the layout 
conventions as decided on by the infrastructure team and agreed upon on 
the repository list.

----

> If so, could
> you explain a little on how to set those up for all the new libraries?

basically, you will want to symlink to the latest files replacing the 
version with 'latest', to provide for easy access to the latest version 
(like 
http://www.apache.org/dist/avalon/framework/Avalon-latest-bin.zip). And 
you want to follow the maven convention of 
${groupId}/jars/${artifactId}-${version}.jar. This might deserve to go 
on the wiki:

= Supporting the new-style URLS =

I'm in the process of getting components built by maven. In that case 
all that's needed is some info in project.xml and the command 
`maven:deploy -Dversion=1.1.1 -Dtag=MYCOMP_1_1_1`. However this is work 
in progress, so right now some manual steps are involved. This is a 
basic explanation of what you need to do:

*WARNING*: all scripts and commands are *untested*!

= Adding a new component =

Two basic options:

== 1) keep supporting placing the new libraries in 
http://www.apache.org/dist/avalon/excalibur/components/, and symlink ==

This works like:

# first put files up at avalon/excalibur/components/ like you're used to

ssh www.apache.org

# symlink to the component location as excalibur-$COMP_NAME/source and
# excalibur-$COMP_NAME/binaries
umask 0002

export COMP_NAME="xmlutil" # example, edit this!
export VERSION="1.1" # example, edit this!

cd /www/www.apache.org/dist/avalon/
mkdir excalibur-$COMP_NAME
cd excalibur-$COMP_NAME
ln -s ../excalibur/components/$COMP_NAME source
ln -s source binaries

# extract jarfiles into the 'jars' directory
mkdir jars
unzip binaries/$COMP_NAME-$VERSION.zip '*.jar' -d jars

useful might be a script like this:

=== export-component.sh ====

#!/bin/sh
#
# Make linking a little easier
#
# usage: export-component.sh componentname version
#
export COMP_NAME=$1
export VERSION=$2

echo building new-style structure for $COMP_NAME version $VERSION ...

cd /www/www.apache.org/dist/avalon/
mkdir excalibur-$COMP_NAME
cd excalibur-$COMP_NAME
ln -s ../excalibur/components/$COMP_NAME source
ln -s source binaries

# extract jarfiles into the 'jars' directory
mkdir jars
unzip binaries/$COMP_NAME-$VERSION.zip '*.jar' -d jars

# cleanup
unset COMP_NAME
unset VERSION

== 2) just place the files in the new location ==

ssh www.apache.org
cd /www/www.apache.org/dist/avalon/
mkdir -p excalibur-$COMP_NAME/source
cd excalibur-$COMP_NAME
ln -s source binaries
mkdir jars
unzip binaries/$COMP_NAME-$VERSION.zip '*.jar' -d jars

= New release for an existing component =

in the event that you're doing a new release of something that was 
already released, life is a bit easier. You'll likely just want to 
upload the files like before to avalon/excalibur/components/, then do

cd /www/www.apache.org/dist/avalon/excalibur-$COMP_NAME
unzip binaries/$COMP_NAME-$VERSION.zip '*.jar' -d jars

= Easy urls for the latest distro's =

Not yet implemented for excalibur, but we should. For a particular 
subproject, have a symlink to the latest distribution files in binaries/ 
and source/ in the base directory, then symlink to those files, 
replacing the version with 'latest':

=== basiclink.sh ===

#!/bin/sh
#
# usage: basiclink.sh groupname distname version
export GROUPNAME=$1
export DISTNAME=$2
export VERSION=$3

cd /www/www.apache.org/dist/avalon/$GROUPNAME
ln -s binaries/$DISTNAME-$VERSION-bin* .
ln -s source/$DISTNAME-$VERSION-src* .
ln -s $DISTNAME-$VERSION-src.zip $DISTNAME-latest-src.zip
ln -s $DISTNAME-$VERSION-bin.zip $DISTNAME-latest-bin.zip
ln -s $DISTNAME-$VERSION-src.zip.asc $DISTNAME-latest-src.zip.asc
ln -s $DISTNAME-$VERSION-bin.zip.asc $DISTNAME-latest-bin.zip.asc
ln -s $DISTNAME-$VERSION-src.tar.gz $DISTNAME-latest-src.tar.gz
ln -s $DISTNAME-$VERSION-bin.tar.gz $DISTNAME-latest-bin.tar.gz
ln -s $DISTNAME-$VERSION-src.tar.gz.asc $DISTNAME-latest-src.tar.gz.asc
ln -s $DISTNAME-$VERSION-bin.tar.gz.asc $DISTNAME-latest-bin.tar.gz.asc

==== Sample usage ====

ssh www.apache.org
umask 0002
basiclink.sh framework Avalon 4.1.5

----

Hope that's enough info!

----

> Lastly, do we want to simply organize everything this way?

yes! All existing distributions we have now support the new-style urls 
(and the old-style as well, since I didn't move any files). For example, 
the following maven project.xml snippet now works as expected:

<dependency>
	<groupId>phoenix</groupId>
	<version>4.0.4</version>
	<id>phoenix-bsh-commands</id>
</dependency>

providing you add

maven.repo.remote=http://www.apache.org/dist/avalon/,http://www.ibiblio.org/maven/

to your project.properties.

----

cheers!

- LSD



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org