You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/07/06 14:54:08 UTC
svn commit: rev 22624 - in avalon/trunk: . tools/magic tools/magic/src/main/org/apache/avalon/tools/model tools/magic/src/main/org/apache/avalon/tools/tasks tools/supplemental
Author: mcconnell
Date: Tue Jul 6 05:54:08 2004
New Revision: 22624
Added:
avalon/trunk/tools/supplemental/index.xml
Modified:
avalon/trunk/build.xml
avalon/trunk/tools/magic/build.xml
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Home.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/AbstractDeliverableTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BarTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/CleanTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ContextualTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/FilterTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InitializeTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InstallTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JarTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavacTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavadocTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PrepareTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PublishTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ReplicateTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/UnbarTask.java
avalon/trunk/tools/supplemental/build.xml
Log:
Updates to support better setup process that includes addition of avalon supplimentation content as part of the avalon setup process (as destinct from the magic setup process). In addition - updates to the task names logged on magic task.
Modified: avalon/trunk/build.xml
==============================================================================
--- avalon/trunk/build.xml (original)
+++ avalon/trunk/build.xml Tue Jul 6 05:54:08 2004
@@ -5,15 +5,35 @@
<available property="magic.available" classname="org.apache.avalon.tools.model.Home"/>
+ <property environment="ENV"/>
<property name="magic.dir" value="${basedir}/tools/magic"/>
<property file="${basedir}/user.properties"/>
<property file="${basedir}/build.properties"/>
-
<property name="reactor.xml"
value="${project.home}/build/reactor.xml"/>
- <target name="setup">
+ <condition property="magic.env.declared" value="false">
+ <isset property="ENV.MAGIC_HOME"/>
+ </condition>
+
+ <target name="declare-magic-home" if="magic.env.declared">
+ <property name="magic.home" value="${ENV.MAGIC_HOME}"/>
+ </target>
+
+ <target name="check-magic-home" unless="magic.env.declared">
+ <property name="magic.home" value="${user.home}/.magic"/>
+ </target>
+
+ <target name="setup" depends="check-magic-home,declare-magic-home">
<ant dir="." antfile="${magic.dir}/setup.xml"/>
+ <path id="magic.path">
+ <pathelement location="${user.dir}/.ant/lib/avalon-tools-magic.jar"/>
+ </path>
+ <taskdef name="unbar" classpath="magic.path"
+ classname="org.apache.avalon.tools.tasks.UnbarTask"/>
+ <property name="magic.cache" value="${magic.home}/cache"/>
+ <unbar repository="${magic.cache}"
+ href="http://www.dpml.net/avalonx/supplemental/bars/avalonx-supplemental-1.0.bar"/>
</target>
<target name="clean" depends="verify">
Modified: avalon/trunk/tools/magic/build.xml
==============================================================================
--- avalon/trunk/tools/magic/build.xml (original)
+++ avalon/trunk/tools/magic/build.xml Tue Jul 6 05:54:08 2004
@@ -62,7 +62,11 @@
</target>
<target name="unbar">
- <x:unbar bar="target/deliverables/bars/${project.short-filename}.bar"/>
+ <x:unbar file="target/deliverables/bars/${project.short-filename}.bar"/>
+ </target>
+
+ <target name="unbar2">
+ <x:unbar href="http://www.dpml.net/avalon/tools/bars/${project.short-filename}.bar"/>
</target>
</project>
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Home.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Home.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Home.java Tue Jul 6 05:54:08 2004
@@ -444,18 +444,6 @@
}
}
- private File createTempFile()
- {
- try
- {
- return File.createTempFile( "~magic", ".tmp" );
- }
- catch( IOException ioe )
- {
- throw new BuildException( ioe );
- }
- }
-
private Resource createResource(
final Element element, final File anchor )
{
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/AbstractDeliverableTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/AbstractDeliverableTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/AbstractDeliverableTask.java Tue Jul 6 05:54:08 2004
@@ -50,6 +50,7 @@
}
final Checksum checksum = (Checksum) getProject().createTask( "checksum" );
+ checksum.setTaskName( getTaskName() );
checksum.setFile( file );
checksum.setFileext( "." + MD5_EXT );
checksum.init();
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BarTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BarTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BarTask.java Tue Jul 6 05:54:08 2004
@@ -94,6 +94,7 @@
fileset.createExclude().setName( "**/*." + BAR_EXT + "*" );
final Jar jar = (Jar) getProject().createTask( "jar" );
+ jar.setTaskName( getTaskName() );
jar.setDestFile( bar );
jar.addFileset( fileset );
jar.setIndex( true );
@@ -115,6 +116,7 @@
final Manifest.Section block = new Manifest.Section();
block.setName( "Block" );
+ addAttribute( block, "Block-Key", def.getKey() );
addAttribute( block, "Block-Group", def.getInfo().getGroup() );
addAttribute( block, "Block-Name", def.getInfo().getName() );
if( null != def.getInfo().getVersion() )
@@ -126,6 +128,7 @@
}
manifest.addConfiguredSection( block );
+
jar.addConfiguredManifest( manifest );
}
catch( Throwable e )
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java Tue Jul 6 05:54:08 2004
@@ -17,11 +17,12 @@
package org.apache.avalon.tools.tasks;
+import org.apache.tools.ant.BuildException;
+
import org.apache.avalon.tools.model.Definition;
import org.apache.avalon.tools.model.ResourceRef;
import org.apache.avalon.tools.model.Info;
import org.apache.avalon.tools.model.Resource;
-import org.apache.tools.ant.BuildException;
import org.apache.avalon.tools.model.Plugin.ListenerDef;
import org.apache.avalon.tools.model.Plugin.TaskDef;
import org.apache.avalon.tools.model.Plugin;
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/CleanTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/CleanTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/CleanTask.java Tue Jul 6 05:54:08 2004
@@ -39,6 +39,7 @@
log( "removing target directory" );
final Project project = getProject();
final Delete delete = (Delete) project.createTask( "delete" );
+ delete.setTaskName( getTaskName() );
delete.setDir( target );
delete.init();
delete.execute();
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ContextualTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ContextualTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ContextualTask.java Tue Jul 6 05:54:08 2004
@@ -77,6 +77,7 @@
public void mkDir( final File dir )
{
final Mkdir mkdir = (Mkdir) getProject().createTask( "mkdir" );
+ mkdir.setTaskName( getTaskName() );
mkdir.setDir( dir );
mkdir.init();
mkdir.execute();
@@ -95,6 +96,7 @@
final Project project, final File file ) throws BuildException
{
final Property props = (Property) project.createTask( "property" );
+ props.setTaskName( getTaskName() );
props.init();
props.setFile( file );
props.execute();
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/FilterTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/FilterTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/FilterTask.java Tue Jul 6 05:54:08 2004
@@ -110,6 +110,7 @@
if( null != value )
{
final Filter filter = (Filter) getProject().createTask( "filter" );
+ filter.setTaskName( getTaskName() );
filter.init();
filter.setToken( m_token );
filter.setValue( value );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InitializeTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InitializeTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InitializeTask.java Tue Jul 6 05:54:08 2004
@@ -119,6 +119,7 @@
{
File destination = resource.getArtifact( project, false );
Copy copy = (Copy) project.createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setFile( source );
copy.setTofile( destination );
copy.setPreserveLastModified( true );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InstallTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InstallTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/InstallTask.java Tue Jul 6 05:54:08 2004
@@ -82,6 +82,7 @@
{
mkDir( destination );
final Copy copy = (Copy) getProject().createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setPreserveLastModified( true );
copy.setTodir( destination );
copy.addFileset( fileset );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java Tue Jul 6 05:54:08 2004
@@ -169,6 +169,7 @@
{
mkDir( dest );
final Copy copy = (Copy) getProject().createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setPreserveLastModified( true );
copy.setTodir( dest );
@@ -204,6 +205,7 @@
private void compile( final File sources, final File classes, final Path classpath )
{
final Javac javac = (Javac) getProject().createTask( "javac" );
+ javac.setTaskName( getTaskName() );
final Path src = javac.createSrc();
final Path.PathElement element = src.createPathElement();
element.setLocation( sources );
@@ -292,6 +294,7 @@
junit.setErrorProperty( ERROR_KEY );
junit.setFailureProperty( FAILURE_KEY );
+ junit.setTaskName( getTaskName() );
junit.execute();
}
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JarTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JarTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JarTask.java Tue Jul 6 05:54:08 2004
@@ -80,6 +80,7 @@
}
final Jar jar = (Jar) getProject().createTask( "jar" );
+ jar.setTaskName( getTaskName() );
jar.setDestFile( jarFile );
jar.setBasedir( classes );
jar.setIndex( true );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavacTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavacTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavacTask.java Tue Jul 6 05:54:08 2004
@@ -116,6 +116,7 @@
private void compile( final File sources, final File classes, final Path classpath )
{
final Javac javac = (Javac) getProject().createTask( "javac" );
+ javac.setTaskName( getTaskName() );
final Path src = javac.createSrc();
final Path.PathElement element = src.createPathElement();
element.setLocation( sources );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavadocTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavadocTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavadocTask.java Tue Jul 6 05:54:08 2004
@@ -209,6 +209,7 @@
final int category, final File root, final boolean flag )
{
final Javadoc javadoc = (Javadoc) getProject().createTask( "javadoc" );
+ javadoc.setTaskName( getTaskName() );
javadoc.init();
javadoc.setDestdir( root );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PrepareTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PrepareTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PrepareTask.java Tue Jul 6 05:54:08 2004
@@ -193,6 +193,7 @@
mkDir( destination );
final Copy copy = (Copy) getProject().createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setTodir( destination );
copy.setFiltering( filtering );
copy.setOverwrite( false );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java Tue Jul 6 05:54:08 2004
@@ -84,6 +84,7 @@
property.init();
property.setName( m_property );
property.setValue( value );
+ property.setTaskName( getTaskName() );
property.execute();
}
else
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PublishTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PublishTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PublishTask.java Tue Jul 6 05:54:08 2004
@@ -78,6 +78,7 @@
{
mkDir( destination );
final Copy copy = (Copy) getProject().createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setPreserveLastModified( true );
copy.setTodir( destination );
copy.addFileset( fileset );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ReplicateTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ReplicateTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/ReplicateTask.java Tue Jul 6 05:54:08 2004
@@ -162,6 +162,7 @@
{
mkDir( destination );
final Copy copy = (Copy) getProject().createTask( "copy" );
+ copy.setTaskName( getTaskName() );
copy.setPreserveLastModified( true );
copy.setTodir( destination );
copy.addFileset( fileset );
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/UnbarTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/UnbarTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/UnbarTask.java Tue Jul 6 05:54:08 2004
@@ -17,16 +17,17 @@
package org.apache.avalon.tools.tasks;
-import org.apache.avalon.tools.model.Definition;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Jar;
-import org.apache.tools.ant.taskdefs.Manifest;
-import org.apache.tools.ant.taskdefs.ManifestException;
-import org.apache.tools.ant.types.FileSet;
+import org.apache.tools.ant.taskdefs.Get;
+import org.apache.tools.ant.taskdefs.Expand;
+import org.apache.tools.ant.types.PatternSet;
import java.io.File;
import java.io.IOException;
+import java.net.URL;
+import java.net.JarURLConnection;
+import java.util.jar.Manifest;
/**
* Unpack a bar file into a repository.
@@ -36,18 +37,49 @@
*/
public class UnbarTask extends Task
{
+ /**
+ * Group identifier manifest key.
+ */
+ public static final String BLOCK_KEY_KEY = "Block-Key";
+ public static final String BLOCK_GROUP_KEY = "Block-Group";
+ public static final String BLOCK_NAME_KEY = "Block-Name";
+ public static final String BLOCK_VERSION_KEY = "Block-Version";
+ public static final String BLOCK = "Block";
+
public static final String BAR_EXT = "bar";
private File m_cache;
private File m_bar;
+ private URL m_href;
public void setRepository( final File cache )
{
m_cache = cache;
}
+
+ public void setHref( final URL href )
+ {
+ if( m_bar == null )
+ {
+ m_href = href;
+ }
+ else
+ {
+ final String error =
+ "The file and href attributes are mutually exclusive.";
+ throw new BuildException( error );
+ }
+ }
- public void setBar( final File bar )
+ public void setFile( final File bar )
{
+ if( m_href != null )
+ {
+ final String error =
+ "The file and href attributes are mutually exclusive.";
+ throw new BuildException( error );
+ }
+
if( bar.exists() )
{
m_bar = bar;
@@ -74,18 +106,49 @@
private File getBar()
{
- if( null == m_bar )
+ if( null != m_bar )
+ {
+ return m_bar;
+ }
+ else if( null != m_href )
+ {
+ return getRemoteBar( m_href );
+ }
+ else
{
final String error =
- "You must declare the 'bar' filename.";
+ "You must declare the file or href attribute.";
throw new BuildException( error );
}
- else
+ }
+
+ private File getRemoteBar( URL url )
+ {
+ File temp = createTempFile();
+ Get get = (Get) getProject().createTask( "get" );
+ get.setSrc( url );
+ get.setDest( temp );
+ get.init();
+ get.execute();
+ return temp;
+ }
+
+ private File createTempFile()
+ {
+ try
{
- return m_bar;
+ File temp = File.createTempFile( "~magic-", ".bar" );
+ temp.deleteOnExit();
+ return temp;
+ }
+ catch( IOException ioe )
+ {
+ throw new BuildException( ioe );
}
}
+
+
private File getDefaultRepository()
{
String cache = getProject().getProperty( "magic.cache" );
@@ -95,13 +158,59 @@
}
else
{
- return getProject().getBaseDir();
+ final String error =
+ "Unbar task currently restricted to usage within magic build files.";
+ throw new BuildException( error );
}
}
public void execute() throws BuildException
{
- log( "bar: " + getBar() );
+ File bar = getBar();
+ File cache = getRepository();
+
+ log( "bar: " + bar );
log( "cache: " + getRepository() );
+
+ try
+ {
+
+ URL jurl = new URL( "jar:" + bar.toURL() + "!/" );
+ JarURLConnection connection = (JarURLConnection) jurl.openConnection();
+ Manifest manifest = connection.getManifest();
+ final String key = getBlockAttribute( manifest, BLOCK_KEY_KEY );
+ final String group = getBlockAttribute( manifest, BLOCK_GROUP_KEY );
+ final String name = getBlockAttribute( manifest, BLOCK_NAME_KEY );
+ final String version = getBlockAttribute( manifest, BLOCK_VERSION_KEY );
+
+ log( "key: " + key );
+ log( "group: " + group );
+ log( "name: " + name );
+ if( null != version )
+ {
+ log( "version: " + version );
+ }
+
+ File destination = new File( cache, group );
+ Expand expand = (Expand) getProject().createTask( "unjar" );
+ expand.setSrc( bar );
+ expand.setDest( destination );
+ PatternSet patternset = new PatternSet();
+ patternset.createInclude().setName( "**/*" );
+ patternset.createExclude().setName( "META-INF/**" );
+ expand.addPatternset( patternset );
+ expand.setTaskName( getTaskName() );
+ expand.init();
+ expand.execute();
+ }
+ catch( Throwable e )
+ {
+ throw new BuildException( e );
+ }
+ }
+
+ private String getBlockAttribute( Manifest manifest, String key )
+ {
+ return (String) manifest.getAttributes( BLOCK ).getValue( key );
}
}
Modified: avalon/trunk/tools/supplemental/build.xml
==============================================================================
--- avalon/trunk/tools/supplemental/build.xml (original)
+++ avalon/trunk/tools/supplemental/build.xml Tue Jul 6 05:54:08 2004
@@ -6,27 +6,13 @@
<property name="supplemental.bar" value="avalonx-supplemental-1.0.bar"/>
<property name="mailapi.jar" value="mailapi-1.3.1.jar"/>
- <x:home index="../index.xml"/>
+ <x:home index="index.xml"/>
<import file="../../central/system/build/standard.xml"/>
- <available property="mailet.cache.available"
- file="${magic.cache}/avalonx/supplemental/jars/${mailapi.jar}"/>
<available property="mailet.etc.available"
file="etc/deliverables/jars/${mailapi.jar}"/>
- <target name="package" depends="info" unless="mailet.cache.available">
- <property name="supplemental.path" value="avalonx/supplemental"/>
- <property name="supplemental.dir" value="${magic.cache}/${supplemental.path}"/>
- <mkdir dir="target"/>
- <get src="http://www.dpml.net/${supplemental.path}/bars/${supplemental.bar}" usetimestamp="true"
- dest="target/${supplemental.bar}"/>
- <unzip src="target/${supplemental.bar}" dest="${magic.cache}/${supplemental.path}">
- <patternset>
- <include name="**/*"/>
- <exclude name="META-INF/**"/>
- <exclude name="**/bars/**"/>
- </patternset>
- </unzip>
+ <target name="package" depends="info,verify,bar">
</target>
<target name="verify" depends="info" unless="mailet.etc.available">
Added: avalon/trunk/tools/supplemental/index.xml
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/supplemental/index.xml Tue Jul 6 05:54:08 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<index>
+
+ <!--
+ Avalon eXternal Supplemental.
+ -->
+
+ <project basedir=".">
+ <info>
+ <group>avalonx/supplemental</group>
+ <name>avalonx-supplemental</name>
+ <version>1.0</version>
+ </info>
+ </project>
+
+</index>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org