diff --git a/proposal/myrmidon/src/java/org/apache/ant/Main.java b/proposal/myrmidon/src/java/org/apache/ant/Main.java index cdb75c0a8..43261d344 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/Main.java +++ b/proposal/myrmidon/src/java/org/apache/ant/Main.java @@ -311,6 +311,7 @@ public class Main setupLogger( embeddor ); embeddor.parameterize( parameters ); embeddor.initialize(); + embeddor.start(); final ProjectBuilder builder = embeddor.getProjectBuilder(); @@ -350,6 +351,7 @@ public class Main } + embeddor.stop(); embeddor.dispose(); } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java index 53491253a..303f98cf8 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java @@ -138,13 +138,12 @@ public class DefaultProjectEngine done.add( targetName ); //execute all dependencies - final Iterator dependencies = target.getDependencies(); - while( dependencies.hasNext() ) + final String[] dependencies = target.getDependencies(); + for( int i = 0; i < dependencies.length; i++ ) { - final String dependency = (String)dependencies.next(); - if( !done.contains( dependency ) ) + if( !done.contains( dependencies[ i ] ) ) { - execute( project, dependency, context, done ); + execute( project, dependencies[ i ], context, done ); } } @@ -210,11 +209,10 @@ public class DefaultProjectEngine getLogger().debug( "Executing target " + name ); //execute all tasks assciated with target - final Iterator tasks = target.getTasks(); - while( tasks.hasNext() ) + final Configuration[] tasks = target.getTasks(); + for( int i = 0; i < tasks.length; i++ ) { - final Configuration task = (Configuration)tasks.next(); - executeTask( task, context ); + executeTask( tasks[ i ], context ); } } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java index 341aa45ed..9908af13d 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java @@ -10,6 +10,7 @@ package org.apache.myrmidon.components.embeddor; import org.apache.ant.project.ProjectEngine; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; +import org.apache.avalon.framework.activity.Startable; import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.myrmidon.components.builder.ProjectBuilder; @@ -20,7 +21,7 @@ import org.apache.myrmidon.components.builder.ProjectBuilder; * @author Peter Donald */ public interface Embeddor - extends Component, Parameterizable, Initializable, Disposable + extends Component, Parameterizable, Initializable, Startable, Disposable { /** * Retrieve builder for runtime. diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java index 4cb53053f..de707b740 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java @@ -113,10 +113,19 @@ public class MyrmidonEmbeddor setupComponents(); setupFiles(); + } + public void start() + throws Exception + { CamelotUtil.deployFromDirectory( m_deployer, m_taskLibDir, ".tsk" ); } + public void stop() + { + //Undeploy all the tasks by killing ExecutionFrame??? + } + /** * Dispose engine. * diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultProject.java b/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultProject.java index f13341a0a..2885d6bf9 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultProject.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultProject.java @@ -9,12 +9,8 @@ package org.apache.myrmidon.model; import java.io.File; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import org.apache.ant.AntException; -import org.apache.myrmidon.api.DefaultTaskContext; -import org.apache.myrmidon.api.TaskContext; /** * Default project implementation. diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultTarget.java b/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultTarget.java index 9d2734a49..185a49bd5 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultTarget.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/model/DefaultTarget.java @@ -8,7 +8,6 @@ package org.apache.myrmidon.model; import java.util.ArrayList; -import java.util.Iterator; import org.apache.ant.util.Condition; import org.apache.avalon.framework.configuration.Configuration; @@ -20,9 +19,9 @@ import org.apache.avalon.framework.configuration.Configuration; public class DefaultTarget implements Target { - protected final ArrayList m_dependencies = new ArrayList(); - protected final ArrayList m_tasks = new ArrayList(); - protected final Condition m_condition; + private final ArrayList m_dependencies = new ArrayList(); + private final ArrayList m_tasks = new ArrayList(); + private final Condition m_condition; /** * Constructor taking condition for target. @@ -56,9 +55,9 @@ public class DefaultTarget * * @return the dependency list */ - public Iterator getDependencies() + public String[] getDependencies() { - return m_dependencies.iterator(); + return (String[])m_dependencies.toArray( new String[ 0 ] ); } /** @@ -66,9 +65,9 @@ public class DefaultTarget * * @return the target list */ - public Iterator getTasks() + public Configuration[] getTasks() { - return m_tasks.iterator(); + return (Configuration[])m_tasks.toArray( new Configuration[ 0 ] ); } /** @@ -86,8 +85,8 @@ public class DefaultTarget * * @param taskConfiguration the task representation */ - public void addTask( final Configuration taskConfiguration ) + public void addTask( final Configuration taskData ) { - m_tasks.add( taskConfiguration ); + m_tasks.add( taskData ); } } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/model/Target.java b/proposal/myrmidon/src/java/org/apache/myrmidon/model/Target.java index 3dd0a809d..940707a05 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/model/Target.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/model/Target.java @@ -7,9 +7,9 @@ */ package org.apache.myrmidon.model; -import java.util.Iterator; import org.apache.ant.util.Condition; import org.apache.avalon.framework.component.Component; +import org.apache.avalon.framework.configuration.Configuration; /** * Interface to represent targets in build file. @@ -24,14 +24,14 @@ public interface Target * * @return the dependency list */ - Iterator getDependencies(); + String[] getDependencies(); /** * Get tasks in target * * @return the target list */ - Iterator getTasks(); + Configuration[] getTasks(); /** * Get condition under which target is executed.