Author: mcconnell
Date: Wed Jun 30 23:43:48 2004
New Revision: 22404

Modified:
   avalon/trunk/tools/magic/build.properties
   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/BlockTask.java
Log:
Improve the management of import tags to eliminate duplicate import scenarios.

Modified: avalon/trunk/tools/magic/build.properties
==============================================================================
--- avalon/trunk/tools/magic/build.properties   (original)
+++ avalon/trunk/tools/magic/build.properties   Wed Jun 30 23:43:48 2004
@@ -1,3 +1,4 @@
 #project.name = avalon-tools-magic
-project.home = ../../central/system
+project.home = ..
+project.system = ../../central/system
 

Modified: avalon/trunk/tools/magic/build.xml
==============================================================================
--- avalon/trunk/tools/magic/build.xml  (original)
+++ avalon/trunk/tools/magic/build.xml  Wed Jun 30 23:43:48 2004
@@ -4,7 +4,7 @@
     xmlns:x="antlib:org.apache.avalon.tools">

 

   <property file="build.properties"/>

-  <import file="${project.home}/build/standard.xml"/>

+  <import file="${project.system}/build/standard.xml"/>

 

   <target name="javadoc" depends="prepare">

     <x:javadoc title="Avalon Magic" id="avalon-tools-magic">


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   Wed 
Jun 30 23:43:48 2004
@@ -74,7 +74,6 @@
     protected Home( Project project, Magic system, File index )

     {

         setProject( project );

-        project.log( "index: " + index );

         m_index = index;

         m_system = system;

         buildList( index );

@@ -214,6 +213,14 @@
 

         File source = resolveIndex( index );

 

+        if( m_includes.contains( source.toString() ) )

+        {

+            return;

+        }

+

+        m_includes.add( source.toString() );

+        log( "import: " + source );

+

         try

         {

             final Element root = ElementHelper.getRootElement( source );

@@ -264,12 +271,7 @@
                 if(( null != filename ) && ( !"".equals( filename )))

                 {

                     final File index = Context.getFile( anchor, filename );

-                    if( !m_includes.contains( index.toString() ) )

-                    {

-                        m_includes.add( index );

-                        log( "import: " + index );

-                        buildList( index );

-                    }

+                    buildList( index );

                 }

                 else if(( null != path ) && ( !"".equals( path )))

                 {


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     
 Wed Jun 30 23:43:48 2004
@@ -104,10 +104,37 @@
         }

     }

 

+    public static class Service

+    {

+        private String m_type;

+        private String m_source;

+

+        public void setType( final String type )

+        {

+            m_type = type;

+        }

+

+        public String getType()

+        {

+            return m_type;

+        }

+

+        public void setSource( final String source )

+        {

+            m_source = source;

+        }

+

+        public String getSource()

+        {

+            return m_source;

+        }

+    }

+

     private String m_target;

     private String m_container;

     private List m_content = new ArrayList();

     private boolean m_standalone = true;

+    private Service m_service;

 

     public void setName( final String name )

     {

@@ -199,6 +226,21 @@
         return include;

     }

 

+    public Service createService()

+    {

+        if( null == m_service )

+        {

+            m_service = new Service();

+            return m_service;

+        }

+        else

+        {

+            final String error = 

+              "Multiple service export not supported nor recomended.";

+            throw new BuildException( error );

+        }

+    }

+

     public void init()

     {

         super.init();

@@ -224,6 +266,12 @@
         final Info info = def.getInfo();

 

         writer.write( "\n\n<container name=\"" + getName( def ) + "\">" );

+

+        if( null != m_service )

+        {

+            writeService( writer, m_service );

+        }

+

         writer.write( "\n\n  <classloader>" );

         boolean standalone = (null == m_target);

         writeClasspath( writer, def, "    ", standalone );

@@ -273,5 +321,15 @@
           "\n  <include name=\"" 

           + include.getName() + "\" artifact=\"" 

           + include.getArtifact() + "\"/>\n" );

+    }

+

+    private void writeService( final Writer writer, final Service service )

+        throws IOException

+    {

+        writer.write( "\n  <services>" );

+        writer.write( "\n    <service type=\"" + service.getType() + "\">" );

+        writer.write( "\n      <source>" + service.getSource() + "</source>" );

+        writer.write( "\n    </service>" );

+        writer.write( "\n  </services>" );

     }

 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to