svn commit: rev 21591 - in avalon/trunk: central central/site central/site/src/xdocs/central/tools/magic central/site/src/xdocs/central/tools/magic/spells central/system central/system/setup planet planet/tutorials planet/tutorials/hello tools tools/magic tools/magic/src/main/org/apache/avalon/tools/model tools/magic/src/main/org/apache/avalon/tools/tasks
[email protected] 22 Jun 2004 13:21:50 -0000
Newsgroups
gmane.comp.jakarta.avalon.cvs
Message-ID
<[email protected] >
Author: mcconnell
Date: Tue Jun 22 06:21:47 2004
New Revision: 21591
Modified:
avalon/trunk/central/build.xml
avalon/trunk/central/site/build.xml
avalon/trunk/central/site/src/xdocs/central/tools/magic/navigation.xml
avalon/trunk/central/site/src/xdocs/central/tools/magic/spells/installation.xml
avalon/trunk/central/system/index.properties
avalon/trunk/central/system/index.xml
avalon/trunk/central/system/setup/setup.xml
avalon/trunk/planet/build.xml
avalon/trunk/planet/tutorials/build.xml
avalon/trunk/planet/tutorials/hello/build.xml
avalon/trunk/tools/build.xml
avalon/trunk/tools/magic/build.xml
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Repository.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/HomeTask.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/JavacTask.java
avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JavadocTask.java
Log:
housekeeping, cleaning up of some magic sources, doc updates, etc.
Modified: avalon/trunk/central/build.xml
==============================================================================
--- avalon/trunk/central/build.xml (original)
+++ avalon/trunk/central/build.xml Tue Jun 22 06:21:47 2004
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<project name="central" default="dist" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
+<project name="central" default="default" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
<property file="build.properties"/>
<import file="${project.home}/build/reactor.xml"/>
Modified: avalon/trunk/central/site/build.xml
==============================================================================
--- avalon/trunk/central/site/build.xml (original)
+++ avalon/trunk/central/site/build.xml Tue Jun 22 06:21:47 2004
@@ -11,16 +11,13 @@
token="RUNTIME-VERSION"/>
</target>
- <target name="javadoc">
-
- <x:javadoc title="Merlin Runtime" id="avalon-runtime">
+ <target name="javadoc" depends="prepare">
+ <x:javadoc title="Merlin Runtime" id="avalon-runtime" staged="true">
<x:link href="http://java.sun.com/j2se/1.4/docs/api" />
</x:javadoc>
- <!--
<x:javadoc title="Avalon Magic" id="avalon-tools-magic">
<x:link href="http://java.sun.com/j2se/1.4/docs/api" />
</x:javadoc>
- -->
</target>
<target name="site" depends="standard.site">
Modified: avalon/trunk/central/site/src/xdocs/central/tools/magic/navigation.xml
==============================================================================
--- avalon/trunk/central/site/src/xdocs/central/tools/magic/navigation.xml (original)
+++ avalon/trunk/central/site/src/xdocs/central/tools/magic/navigation.xml Tue Jun 22 06:21:47 2004
@@ -28,7 +28,7 @@
<item name="Templates" href="templates/index.html"/>
<item name="Tasks" href="tasks/index.html"/>
<item name="Javadoc"
- href="../../../avalon/tools/avalon-tools-magic/impl/index.html"/>
+ href="../../../avalon/tools/avalon-tools-magic/index.html"/>
</menu>
</body>
Modified: avalon/trunk/central/site/src/xdocs/central/tools/magic/spells/installation.xml
==============================================================================
--- avalon/trunk/central/site/src/xdocs/central/tools/magic/spells/installation.xml (original)
+++ avalon/trunk/central/site/src/xdocs/central/tools/magic/spells/installation.xml Tue Jun 22 06:21:47 2004
@@ -9,7 +9,54 @@
<body>
<section name="Installing Magic">
- <p>IN PREPARATION</p>
+ <subsection name="Installing Ant">
+
+ <p>
+ Magic runs on top of Ant. Before installing Magic
+ you need to build or <a href="http://ant.apache.org/bindownload.cgi">
+ download a binary installation of Ant</a> (version 1.6.1 or later).
+ </p>
+
+ </subsection>
+
+ <subsection name="Magic Setup">
+
+ <p>
+ Magic registers content in a common repository. If you want to
+ share the repository with Merlin you should define the
+ AVALON_HOME environment variable with a value pointing to a
+ directory within which the repository will be created. If
+ undefined, the installation will create a private repository in
+ central/system/.cache.
+ </p>
+
+ <p>
+ From your the root avalon/truck checkout directory...
+ </p>
+
+<source>
+$ ant setup
+</source>
+
+ <p>
+ The above command invokes the ant file central/system/setup/setup.xml
+ which downloads the magic library and installs this under
+ ${user.home}/.ant/lib. It also checks for the presence of Junit
+ libraries and will download these if required.
+ </p>
+
+ </subsection>
+
+ <subsection name="Building Avalon">
+
+ <p>
+ From your the root avalon/truck checkout directory...
+ </p>
+<source>
+$ ant
+</source>
+
+ </subsection>
</section>
</body>
Modified: avalon/trunk/central/system/index.properties
==============================================================================
--- avalon/trunk/central/system/index.properties (original)
+++ avalon/trunk/central/system/index.properties Tue Jun 22 06:21:47 2004
@@ -22,9 +22,12 @@
# A sequence of remote repositories used to resolve artifacts
# requested as part of the build process.
-dpml.net = http://www.dpml.net/
-java.repo = http://www.apache.org/dist/java-repository/
-ibiblio.org = http://www.ibiblio.org/maven/
+dpml.net = http://www.dpml.net
+java.repo = http://www.apache.org/dist/java-repository
+ibiblio.org = http://www.ibiblio.org/maven
project.hosts = ${dpml.net};${java.repo};${ibiblio.org}
avalon.tools.bar.url = ${dpml.net}/avalon/tools/bars/avalon-tools.bar
+
+junit.jar = junit-3.8.1.jar
+junit.jar.url = ${dpml.net}/junit/jars/${junit.jar}
Modified: avalon/trunk/central/system/index.xml
==============================================================================
--- avalon/trunk/central/system/index.xml (original)
+++ avalon/trunk/central/system/index.xml Tue Jun 22 06:21:47 2004
@@ -125,6 +125,7 @@
</info>
<dependencies>
<include key="avalon-runtime" runtime="false" build="false" test="false"/>
+ <include key="avalon-tools-magic" runtime="false" build="false" test="false"/>
</dependencies>
</project>
Modified: avalon/trunk/central/system/setup/setup.xml
==============================================================================
--- avalon/trunk/central/system/setup/setup.xml (original)
+++ avalon/trunk/central/system/setup/setup.xml Tue Jun 22 06:21:47 2004
@@ -6,9 +6,6 @@
TODO
Check for jdk 1.4 as the build system prerequisite.
Check for ant 1.6.1 minimum version.
- Check for dependent ant libs (junit, xsl stuff, etc.)
- and if not available download and add to
- ${user.home}/.ant/lib.
-->
<property file="index.properties"/>
@@ -27,7 +24,9 @@
<isset property="project.proxy.host"/>
</condition>
- <target name="setup" depends="check-avalon,setup-repository,setup-antlib">
+ <available property="junit.available" classname="junit.framework.TestCase"/>
+
+ <target name="setup" depends="check-avalon,setup-repository,setup-antlib,setup-junit">
<echo message="Setup complete."/>
</target>
@@ -56,6 +55,12 @@
<exclude name="**/bars/**"/>
</patternset>
</unzip>
+ </target>
+
+ <target name="setup-junit" depends="setup-antlib" unless="junit.available">
+ <echo message="Resolving junit..."/>
+ <get src="${junit.jar.url}" usetimestamp="true"
+ dest="${ant.lib}/${junit.jar}"/>
</target>
<target name="setup-antlib" depends="setup-repository">
Modified: avalon/trunk/planet/build.xml
==============================================================================
--- avalon/trunk/planet/build.xml (original)
+++ avalon/trunk/planet/build.xml Tue Jun 22 06:21:47 2004
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<project name="runtime" default="install" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
+<project name="runtime" default="default" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
<property file="build.properties"/>
<import file="${project.system}/build/reactor.xml"/>
Modified: avalon/trunk/planet/tutorials/build.xml
==============================================================================
--- avalon/trunk/planet/tutorials/build.xml (original)
+++ avalon/trunk/planet/tutorials/build.xml Tue Jun 22 06:21:47 2004
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<project name="runtime" default="install" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
+<project name="runtime" default="default" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
<property file="build.properties"/>
<import file="${project.system}/build/reactor.xml"/>
Modified: avalon/trunk/planet/tutorials/hello/build.xml
==============================================================================
--- avalon/trunk/planet/tutorials/hello/build.xml (original)
+++ avalon/trunk/planet/tutorials/hello/build.xml Tue Jun 22 06:21:47 2004
@@ -6,19 +6,19 @@
<property file="build.properties"/>
<import file="${project.system}/build/standard.xml"/>
+ <!--
<target name="javadoc" depends="prepare">
<x:javadoc>
<x:link href="http://java.sun.com/j2se/1.4/docs/api" />
- <!--
<x:link key="avalon-runtime"
href="http://www.apache.org/~mcconnell/docs/avalon/runtime/3.3.0/api"/>
<x:link key="avalon-runtime"
href="./../../../../../avalon/runtime/3.3.0/api"/>
- -->
<x:link key="avalon-runtime"
href="http://@DOC-ROOT@/avalon/runtime/3.3.0/api"/>
</x:javadoc>
</target>
+ -->
</project>
Modified: avalon/trunk/tools/build.xml
==============================================================================
--- avalon/trunk/tools/build.xml (original)
+++ avalon/trunk/tools/build.xml Tue Jun 22 06:21:47 2004
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<project name="tools" default="dist" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
+<project name="tools" default="default" basedir="." xmlns:x="antlib:org.apache.avalon.tools">
<property file="build.properties"/>
<import file="${project.home}/build/reactor.xml"/>
Modified: avalon/trunk/tools/magic/build.xml
==============================================================================
--- avalon/trunk/tools/magic/build.xml (original)
+++ avalon/trunk/tools/magic/build.xml Tue Jun 22 06:21:47 2004
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<project name="avalon-tools-magic" default="dist" basedir="."
+<project name="avalon-tools-magic" default="install" basedir="."
xmlns:x="antlib:org.apache.avalon.tools">
<property file="build.properties"/>
@@ -8,6 +8,12 @@
<target name="package" depends="standard.package">
<x:bar name="avalon-tools.bar"/>
+ </target>
+
+ <target name="javadoc" depends="prepare">
+ <x:javadoc title="Avalon Magic" id="avalon-tools-magic">
+ <x:link href="http://java.sun.com/j2se/1.4/docs/api" />
+ </x:javadoc>
</target>
<target name="install" depends="standard.install">
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Repository.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Repository.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/model/Repository.java Tue Jun 22 06:21:47 2004
@@ -118,7 +118,15 @@
ArrayList list = new ArrayList();
while( tokenizer.hasMoreTokens() )
{
- list.add( tokenizer.nextToken() );
+ String host = tokenizer.nextToken();
+ if( host.endsWith( "/" ) )
+ {
+ list.add( host );
+ }
+ else
+ {
+ list.add( host + "/" );
+ }
}
return (String[]) list.toArray( new String[0] );
}
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 Jun 22 06:21:47 2004
@@ -24,7 +24,7 @@
import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Copy;
-import org.apache.tools.ant.taskdefs.Javac;
+import org.apache.tools.ant.taskdefs.Property;
import org.apache.tools.ant.taskdefs.Mkdir;
import org.apache.tools.ant.taskdefs.optional.junit.FormatterElement;
import org.apache.tools.ant.taskdefs.optional.junit.JUnitTask;
@@ -45,6 +45,9 @@
*/
public abstract class ContextualTask extends Task
{
+ private static final String USER_PROPERTIES = "user.properties";
+ private static final String BUILD_PROPERTIES = "build.properties";
+
private boolean m_init = false;
private Context m_context;
@@ -53,6 +56,7 @@
if( !isInitialized() )
{
Project project = getProject();
+ setupProperties( project, project.getBaseDir() );
m_context = Context.getContext( project );
m_init = true;
}
@@ -83,5 +87,31 @@
mkdir.setDir( dir );
mkdir.init();
mkdir.execute();
+ }
+
+ protected void setupProperties( Project project, File dir )
+ {
+ setupUserProperties( project, dir );
+ setupBuildProperties( project, dir );
+ }
+
+ private void setupUserProperties( Project project, File dir )
+ {
+ File user = Context.getFile( dir, USER_PROPERTIES );
+ loadProperties( project, user );
+ }
+
+ private void setupBuildProperties( Project project, File dir )
+ {
+ File build = Context.getFile( dir, BUILD_PROPERTIES );
+ loadProperties( project, build );
+ }
+
+ protected void loadProperties( Project project, File file ) throws BuildException
+ {
+ Property props = (Property) project.createTask( "property" );
+ props.init();
+ props.setFile( file );
+ props.execute();
}
}
Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/HomeTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/HomeTask.java (original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/HomeTask.java Tue Jun 22 06:21:47 2004
@@ -45,24 +45,32 @@
public static final String SYSTEM_KEY = "project.system";
private static final String CACHE_DIR_KEY = "project.home.cache.dir";
- private static final String USER_PROPERTIES = "user.properties";
- private static final String BUILD_PROPERTIES = "build.properties";
private static final String INDEX_PROPERTIES = "index.properties";
private static Home HOME;
private String m_path;
+ private boolean m_executed = false;
+
public void setIndex( String path )
{
- m_path = path;
+ if( null != HOME )
+ {
+ log(
+ "Ignoring path - home is already initialized.",
+ Project.MSG_VERBOSE );
+ }
+ else
+ {
+ m_path = path;
+ }
}
- public void init()
+ public void execute()
{
- if( !isInitialized() )
+ if( !m_executed )
{
- super.init();
Project project = getProject();
File index = getIndexFile();
File system = getSystemHome( project, index );
@@ -78,6 +86,8 @@
getProject().setNewProperty(
CACHE_DIR_KEY,
HOME.getRepository().getCacheDirectory().toString() );
+
+ m_executed = true;
}
}
@@ -96,36 +106,10 @@
}
}
- private void setupProperties( Project project, File dir )
- {
- setupUserProperties( project, dir );
- setupBuildProperties( project, dir );
- }
-
- private void setupUserProperties( Project project, File dir )
- {
- File user = Context.getFile( dir, USER_PROPERTIES );
- readProperties( project, user );
- }
-
- private void setupBuildProperties( Project project, File dir )
- {
- File build = Context.getFile( dir, BUILD_PROPERTIES );
- readProperties( project, build );
- }
-
private void setupSystemProperties( Project project, File dir )
{
File build = Context.getFile( dir, INDEX_PROPERTIES );
- readProperties( project, build );
- }
-
- private void readProperties( Project project, File file ) throws BuildException
- {
- Property props = (Property) project.createTask( "property" );
- props.init();
- props.setFile( file );
- props.execute();
+ loadProperties( project, build );
}
private File getIndexFile()
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 Jun 22 06:21:47 2004
@@ -51,7 +51,6 @@
public void execute() throws BuildException
{
Definition definition = getReferenceDefinition();
- log( "installing deliverables" );
installDeliverables( definition );
}
@@ -74,6 +73,7 @@
File deliverables = new File( target, Context.DELIVERABLES );
if( deliverables.exists() )
{
+ log( "Installing deliverables", Project.MSG_VERBOSE );
File cache = getHome().getRepository().getCacheDirectory();
FileSet fileset = new FileSet();
fileset.setDir( deliverables );
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 Jun 22 06:21:47 2004
@@ -99,7 +99,7 @@
}
else
{
- log( "no src main to compile : " + main.toString() );
+ log( "no src main", Project.MSG_VERBOSE );
}
}
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 Jun 22 06:21:47 2004
@@ -157,6 +157,7 @@
private String m_id;
private String m_title;
private List m_links = new ArrayList();
+ private boolean m_staged = false;
public void setId( String id )
{
@@ -168,6 +169,11 @@
m_title = title;
}
+ public void setStaged( boolean staged )
+ {
+ m_staged = staged;
+ }
+
public Link createLink()
{
Link link = new Link();
@@ -178,16 +184,26 @@
public void execute() throws BuildException
{
Definition def = getReferenceDefinition();
+
+ log( "Generating javadoc for project: " + def, Project.MSG_VERBOSE );
+
File root = def.getDocDirectory();
Path classpath = def.getPath( getProject(), Policy.RUNTIME );
- File api = new File( root, "api" );
- File spi = new File( root, "spi" );
- File imp = new File( root, "impl" );
-
- setup( def, classpath, ResourceRef.API, api, false );
- setup( def, classpath, ResourceRef.SPI, spi, false );
- setup( def, classpath, ResourceRef.IMPL, imp, true );
+ if( m_staged )
+ {
+ File api = new File( root, "api" );
+ File spi = new File( root, "spi" );
+ File imp = new File( root, "impl" );
+
+ setup( def, classpath, ResourceRef.API, api, false );
+ setup( def, classpath, ResourceRef.SPI, spi, false );
+ setup( def, classpath, ResourceRef.IMPL, imp, true );
+ }
+ else
+ {
+ setup( def, classpath, ResourceRef.ANY, root, true );
+ }
}
private void setup(
@@ -288,24 +304,6 @@
javadoc.execute();
}
-
- /*
- private File getJavadocRootDirectory( Definition def )
- {
- //File docs = getContext().getDocsDirectory();
- File docs = getDocRoot( def );
-
- String version = def.getInfo().getVersion();
- if( null == version )
- {
- return docs;
- }
- else
- {
- return new File( docs, version );
- }
- }
- */
private String getTitle( Definition def, int category )
{