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]
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 )
     {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.