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/06/04 07:40:57 UTC

svn commit: rev 20812 - in avalon/trunk/tools/project/core/src: main/org/apache/avalon/tools/home main/org/apache/avalon/tools/tasks test test/projects/demo test/projects/gizmo test/projects/sample test/projects/widget

Author: mcconnell
Date: Thu Jun  3 22:40:56 2004
New Revision: 20812

Added:
   avalon/trunk/tools/project/core/src/test/projects/demo/build.properties
   avalon/trunk/tools/project/core/src/test/projects/sample/build.properties
   avalon/trunk/tools/project/core/src/test/projects/widget/build.properties
   avalon/trunk/tools/project/core/src/test/standard.xml
Modified:
   avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Context.java
   avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Home.java
   avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/tasks/XdocTask.java
   avalon/trunk/tools/project/core/src/test/projects/demo/build.xml
   avalon/trunk/tools/project/core/src/test/projects/gizmo/build.properties
   avalon/trunk/tools/project/core/src/test/projects/gizmo/build.xml
   avalon/trunk/tools/project/core/src/test/projects/sample/build.xml
   avalon/trunk/tools/project/core/src/test/projects/widget/build.xml
Log:
Update examples to take advantage of ant import and task overriding.

Modified: avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Context.java
==============================================================================
--- avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Context.java	(original)
+++ avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Context.java	Thu Jun  3 22:40:56 2004
@@ -242,7 +242,7 @@
         props.execute();
     }
 
-    private File getFile( File root, String path )
+    public static File getFile( File root, String path )
     {
         File file = new File( path );
         if( file.isAbsolute() ) return file;

Modified: avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Home.java
==============================================================================
--- avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Home.java	(original)
+++ avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/home/Home.java	Thu Jun  3 22:40:56 2004
@@ -69,11 +69,15 @@
     //-------------------------------------------------------------
 
     public static final String KEY = "project.home";
+    public static final String HOME_KEY = "project.home";
 
     //-------------------------------------------------------------
     // mutable state
     //-------------------------------------------------------------
 
+    private boolean m_init = false;
+    private Context m_context;
+
     private String m_id;
     private String m_key;
 
@@ -116,20 +120,59 @@
     }
 
     //-------------------------------------------------------------
-    // internal
+    // Task
     //-------------------------------------------------------------
 
+    public void init() throws BuildException 
+    {
+        if( !m_init )
+        {
+            Project project = getProject();
+            m_context = Context.getContext( project );
+            m_init = true;
+        }
+    }
+
     public void execute()
     {
+        Project project = getProject();
+
         if( null == m_file )
         {
-            final String error = 
-              "Cannot continue due to missing index attribute in task defintion [" 
-              + getTaskName() + "].";
-            throw new BuildException( error );
+            String path = project.getProperty( HOME_KEY );
+            if( null != path )
+            {
+                File index = Context.getFile( project.getBaseDir(), path );
+                if( index.exists() )
+                {
+                    if( index.isDirectory() )
+                    {
+                        m_file = new File( index, "index.xml" );
+                    }
+                    else
+                    {
+                        m_file = index;
+                    }
+                }
+                else
+                {
+                    final String error = 
+                      "Property value 'project.home' in task defintion [" 
+                      + getTaskName() 
+                      + "] references a non-existant file: "
+                      + index;
+                    throw new BuildException( error );
+                }
+            }
+            else
+            {
+                final String error = 
+                  "Cannot continue due to missing index attribute in task defintion [" 
+                  + getTaskName() + "].";
+                throw new BuildException( error );
+            }
         }
 
-        Project project = getProject();
         if( null == m_id )
         {
             project.addReference( KEY, this );
@@ -140,9 +183,10 @@
         }
 
         m_system = m_file.getParentFile();
-        Element root = ElementHelper.getRootElement( m_file );
         m_project.log( "home: " + m_system, Project.MSG_DEBUG );
 
+
+        Element root = ElementHelper.getRootElement( m_file );
         final Element repo = ElementHelper.getChild( root, "repository" );
         final Element resources = ElementHelper.getChild( root, "resources" );
         final Element projects = ElementHelper.getChild( root, "projects" );
@@ -371,15 +415,4 @@
         }
         return repository;
     }
-
-    /*
-    private static void setHomeReference( Project project )
-    {
-        if( null == HOME ) throw new IllegalStateException( "home" );
-        if( null == project.getReference( "urn:project.home" ) )
-        {
-            project.addReference( "urn:project.home", HOME );
-        }
-    }
-    */
 }

Modified: avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/tasks/XdocTask.java
==============================================================================
--- avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/tasks/XdocTask.java	(original)
+++ avalon/trunk/tools/project/core/src/main/org/apache/avalon/tools/tasks/XdocTask.java	Thu Jun  3 22:40:56 2004
@@ -43,7 +43,7 @@
     public static final String XDOC_RESOURCES_VALUE = "resources";
 
     public static final String XDOC_THEME_KEY = "project.xdoc.theme";
-    public static final String XDOC_THEME_VALUE = "avalon2";
+    public static final String XDOC_THEME_VALUE = "modern";
 
     public static final String XDOC_FORMAT_KEY = "project.xdoc.output.format";
     public static final String XDOC_FORMAT_VALUE = "html";

Added: avalon/trunk/tools/project/core/src/test/projects/demo/build.properties
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/project/core/src/test/projects/demo/build.properties	Thu Jun  3 22:40:56 2004
@@ -0,0 +1,2 @@
+project.home = ../..
+project.gpg.exe = gpg
\ No newline at end of file

Modified: avalon/trunk/tools/project/core/src/test/projects/demo/build.xml
==============================================================================
--- avalon/trunk/tools/project/core/src/test/projects/demo/build.xml	(original)
+++ avalon/trunk/tools/project/core/src/test/projects/demo/build.xml	Thu Jun  3 22:40:56 2004
@@ -1,32 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
 
-<project name="my-demo" default="install" basedir="." 
+<project name="demo" default="dist" basedir="." 
     xmlns:x="antlib:org.apache.avalon.tools">
 
-  <x:home index="../../index.xml" key="demo"/>
+  <property file="build.properties"/>
+  <import file="${project.home}/standard.xml"/>
 
-  <target name="clean">
-    <x:clean/>
-  </target>
-
-  <target name="prepare" depends="">
-    <x:prepare/>
-  </target>
-
-  <target name="build" depends="prepare">
+  <target name="build" depends="standard.build">
     <x:declare/>
-    <x:javac/>
-  </target>
-
-  <target name="package" depends="build">
-    <x:jar/>
-  </target>
-
-  <target name="test" depends="package">
-    <x:junit/>
-  </target>
-
-  <target name="install" depends="test">
-    <x:install/>
   </target>
 
 </project>

Modified: avalon/trunk/tools/project/core/src/test/projects/gizmo/build.properties
==============================================================================
--- avalon/trunk/tools/project/core/src/test/projects/gizmo/build.properties	(original)
+++ avalon/trunk/tools/project/core/src/test/projects/gizmo/build.properties	Thu Jun  3 22:40:56 2004
@@ -1,4 +1,2 @@
-#avalon.target = targetx
-
-project.index = ../../index.xml
+project.home = ../..
 project.gpg.exe = gpg

Modified: avalon/trunk/tools/project/core/src/test/projects/gizmo/build.xml
==============================================================================
--- avalon/trunk/tools/project/core/src/test/projects/gizmo/build.xml	(original)
+++ avalon/trunk/tools/project/core/src/test/projects/gizmo/build.xml	Thu Jun  3 22:40:56 2004
@@ -1,31 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" ?>
 
-<project name="gizmo" default="install" basedir="." 
-    xmlns:x="antlib:org.apache.avalon.tools">
+<project name="gizmo" default="dist" basedir=".">
 
-  <x:home index="../../index.xml"/>
+  <property file="build.properties"/>
+  <import file="${project.home}/standard.xml"/>
 
-  <target name="clean">
-    <x:clean/>
-  </target>
-
-  <target name="prepare" depends="">
-    <x:prepare/>
-  </target>
-
-  <target name="build" depends="prepare">
-    <x:javac/>
-  </target>
-
-  <target name="package" depends="build">
-    <x:jar/>
-  </target>
-
-  <target name="test" depends="package">
-    <x:junit/>
-  </target>
-
-  <target name="install" depends="test">
-    <x:install/>
-  </target>
-
-</project>
+</project>
\ No newline at end of file

Added: avalon/trunk/tools/project/core/src/test/projects/sample/build.properties
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/project/core/src/test/projects/sample/build.properties	Thu Jun  3 22:40:56 2004
@@ -0,0 +1,2 @@
+project.home = ../..
+project.gpg.exe = gpg
\ No newline at end of file

Modified: avalon/trunk/tools/project/core/src/test/projects/sample/build.xml
==============================================================================
--- avalon/trunk/tools/project/core/src/test/projects/sample/build.xml	(original)
+++ avalon/trunk/tools/project/core/src/test/projects/sample/build.xml	Thu Jun  3 22:40:56 2004
@@ -1,35 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
 
-<project name="sample" default="install" basedir="." 
-    xmlns:x="antlib:org.apache.avalon.tools" xmlns:d="plugin:demo/demo#1.0" > 
+<project name="sample" default="dist" basedir="."
+    xmlns:x="antlib:org.apache.avalon.tools" 
+    xmlns:d="plugin:demo/demo#1.0" > 
 
-  <x:home index="../../index.xml">
+  <import file="${project.home}/standard.xml"/>
+
+  <x:home>
     <x:plugin artifact="plugin:demo/demo#1.0"/>
   </x:home>
 
-  <target name="clean">
-    <x:clean/>
-  </target>
-
-  <target name="prepare" depends="">
-    <x:prepare/>
-  </target>
-
-  <target name="build" depends="prepare">
-    <x:javac/>
+  <target name="build" depends="standard.build">
     <d:hello/>
   </target>
 
-  <target name="package" depends="build">
-    <x:jar/>
-  </target>
-
-  <target name="test" depends="package">
-    <x:junit/>
-  </target>
-
-  <target name="install" depends="test">
-    <x:install/>
-  </target>
-
 </project>
-

Added: avalon/trunk/tools/project/core/src/test/projects/widget/build.properties
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/project/core/src/test/projects/widget/build.properties	Thu Jun  3 22:40:56 2004
@@ -0,0 +1,2 @@
+project.home = ../..
+project.gpg.exe = gpg
\ No newline at end of file

Modified: avalon/trunk/tools/project/core/src/test/projects/widget/build.xml
==============================================================================
--- avalon/trunk/tools/project/core/src/test/projects/widget/build.xml	(original)
+++ avalon/trunk/tools/project/core/src/test/projects/widget/build.xml	Thu Jun  3 22:40:56 2004
@@ -1,32 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
 
-<project name="widget" default="install" basedir="." 
-    xmlns:x="antlib:org.apache.avalon.tools">
+<project name="widget" default="install" basedir=".">
 
-  <x:home index="../../index.xml"/>
-
-  <target name="clean">
-    <x:clean/>
-  </target>
-
-  <target name="prepare" depends="">
-    <x:prepare/>
-  </target>
-
-  <target name="build" depends="prepare">
-    <x:javac/>
-  </target>
-
-  <target name="package" depends="build">
-    <x:jar/>
-  </target>
-
-  <target name="test" depends="package">
-    <x:junit/>
-  </target>
-
-  <target name="install" depends="test">
-    <x:install/>
-  </target>
+  <property file="build.properties"/>
+  <import file="${project.home}/standard.xml"/>
 
 </project>
 

Added: avalon/trunk/tools/project/core/src/test/standard.xml
==============================================================================
--- (empty file)
+++ avalon/trunk/tools/project/core/src/test/standard.xml	Thu Jun  3 22:40:56 2004
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<project name="standard" xmlns:x="antlib:org.apache.avalon.tools">
+
+  <x:home/>
+
+  <target name="clean">
+    <x:clean/>
+  </target>
+
+  <target name="prepare" depends="">
+    <x:prepare/>
+  </target>
+
+  <target name="build" depends="prepare">
+    <x:javac/>
+  </target>
+
+  <target name="package" depends="build">
+    <x:jar/>
+  </target>
+
+  <target name="test" depends="package">
+    <x:junit/>
+  </target>
+
+  <target name="site" depends="prepare">
+    <x:xdoc theme="modern"/>
+  </target>
+
+  <target name="install" depends="test">
+    <x:install/>
+  </target>
+
+  <target name="dist" depends="install,site"/>
+
+</project>
+

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