diff --git a/proposal/myrmidon/src/java/org/apache/ant/Main.java b/proposal/myrmidon/src/java/org/apache/ant/Main.java
index e9af3d394..14aed242a 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/Main.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/Main.java
@@ -26,11 +26,6 @@ import org.apache.avalon.excalibur.cli.CLOptionDescriptor;
import org.apache.avalon.excalibur.cli.CLUtil;
import org.apache.avalon.excalibur.io.ExtensionFileFilter;
import org.apache.avalon.framework.ExceptionUtil;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.camelot.CamelotUtil;
-import org.apache.avalon.framework.camelot.Deployer;
-import org.apache.avalon.framework.camelot.DeploymentException;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.log.Hierarchy;
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
index 3f5c8bec4..9faba4090 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
@@ -11,21 +11,21 @@ import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.ant.AntException;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.ant.tasklet.engine.TskDeployer;
-import org.apache.myrmidon.components.executor.Executor;
import org.apache.ant.tasklet.engine.DataTypeEngine;
-import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.camelot.RegistryException;
import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.camelot.RegistryException;
+import org.apache.myrmidon.api.AbstractTask;
+import org.apache.myrmidon.components.deployer.TskDeployer;
+import org.apache.myrmidon.components.executor.Executor;
/**
* Method to register a single tasklet.
*
* @author Peter Donald
*/
-public abstract class AbstractResourceRegisterer
+public abstract class AbstractResourceRegisterer
extends AbstractTask
implements Composable
{
@@ -43,7 +43,7 @@ public abstract class AbstractResourceRegisterer
lookup( "org.apache.myrmidon.components.executor.Executor" );
m_tskDeployer = (TskDeployer)componentManager.
- lookup( "org.apache.ant.tasklet.engine.TskDeployer" );
+ lookup( "org.apache.myrmidon.components.deployer.TskDeployer" );
m_dataTypeEngine = (DataTypeEngine)componentManager.
lookup( "org.apache.ant.tasklet.engine.DataTypeEngine" );
@@ -53,12 +53,12 @@ public abstract class AbstractResourceRegisterer
{
m_lib = lib;
}
-
+
public void setName( final String name )
{
m_name = name;
}
-
+
public void setClassname( final String classname )
{
m_classname = classname;
@@ -73,10 +73,10 @@ public abstract class AbstractResourceRegisterer
}
else if( null == m_lib && null == m_classname )
{
- throw new AntException( "Must specify classname if you don't specify " +
+ throw new AntException( "Must specify classname if you don't specify " +
"lib parameter" );
}
-
+
final URL url = getURL( m_lib );
try
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
index d1e9f3b5c..5044cfea7 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
@@ -14,7 +14,7 @@ import org.apache.ant.AntException;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.convert.engine.DefaultConverterInfo;
import org.apache.myrmidon.api.AbstractTask;
-import org.apache.ant.tasklet.engine.TskDeployer;
+import org.apache.myrmidon.components.deployer.TskDeployer;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.Composable;
@@ -42,7 +42,7 @@ public class RegisterConverter
throws ComponentException
{
m_tskDeployer = (TskDeployer)componentManager.
- lookup( "org.apache.ant.tasklet.engine.TskDeployer" );
+ lookup( "org.apache.myrmidon.components.deployer.TskDeployer" );
m_converterEngine = (ConverterEngine)componentManager.
lookup( "org.apache.ant.convert.engine.ConverterEngine" );
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
index bd330cb0a..d97ca5601 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
@@ -11,25 +11,25 @@ import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.ant.AntException;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.ant.tasklet.engine.TskDeployer;
-import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.camelot.DeploymentException;
import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.myrmidon.api.AbstractTask;
+import org.apache.myrmidon.components.deployer.TskDeployer;
/**
* Method to register a tasklib.
*
* @author Peter Donald
*/
-public class RegisterTasklib
+public class RegisterTasklib
extends AbstractTask
implements Composable
{
protected String m_lib;
protected TskDeployer m_tskDeployer;
-
+
public void compose( final ComponentManager componentManager )
throws ComponentException
{
@@ -49,7 +49,7 @@ public class RegisterTasklib
{
throw new AntException( "Must specify lib parameter" );
}
-
+
URL url = null;
final File lib = getContext().resolveFile( m_lib );
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java
index e25ffc1f0..b78773112 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java
@@ -7,7 +7,6 @@
*/
package org.apache.myrmidon.api;
-import org.apache.ant.AntException;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.context.Context;
@@ -46,6 +45,17 @@ public abstract class AbstractTask
{
}
+ /**
+ * Execute task.
+ * This method is called to perform actual work associated with task.
+ * It is called after Task has been Configured and Initialized and before
+ * beig Disposed (If task implements appropriate interfaces).
+ *
+ * @exception Exception if an error occurs
+ */
+ public abstract void execute()
+ throws Exception;
+
/**
* This will be called after execute() method.
* Use this to clean up any resources associated with task.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultTskDeployer.java
similarity index 97%
rename from proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java
rename to proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultTskDeployer.java
index 7aed1adb5..33e4decc3 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultTskDeployer.java
@@ -5,7 +5,7 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
-package org.apache.ant.tasklet.engine;
+package org.apache.myrmidon.components.deployer;
import java.io.File;
import java.io.IOException;
@@ -15,6 +15,7 @@ import java.util.Iterator;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
+import org.apache.ant.tasklet.engine.DataTypeEngine;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.convert.engine.ConverterRegistry;
import org.apache.ant.convert.engine.DefaultConverterInfo;
@@ -32,6 +33,7 @@ import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.Loggable;
import org.apache.log.Logger;
import org.apache.myrmidon.components.executor.Executor;
@@ -42,7 +44,7 @@ import org.apache.myrmidon.components.executor.Executor;
*/
public class DefaultTskDeployer
extends AbstractDeployer
- implements Composable, TskDeployer
+ implements Composable, TskDeployer, Loggable
{
private final static String TSKDEF_FILE = "TASK-LIB/taskdefs.xml";
@@ -253,7 +255,7 @@ public class DefaultTskDeployer
}
getLogger().debug( "Registered converter " + name + " that converts from " +
- source + " to " + destination );
+ source + " to " + destination );
}
private void handleTask( final Configuration task, final URL url )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/TskDeployer.java
similarity index 89%
rename from proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
rename to proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/TskDeployer.java
index a598f7206..952022bac 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/TskDeployer.java
@@ -5,12 +5,12 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
-package org.apache.ant.tasklet.engine;
+package org.apache.myrmidon.components.deployer;
import java.net.URL;
-import org.apache.avalon.framework.logger.Loggable;
import org.apache.avalon.framework.camelot.Deployer;
import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.avalon.framework.logger.Loggable;
import org.apache.log.Logger;
/**
@@ -19,13 +19,13 @@ import org.apache.log.Logger;
* @author Peter Donald
*/
public interface TskDeployer
- extends Deployer, Loggable
+ extends Deployer
{
void deployConverter( String name, String location, URL url )
throws DeploymentException;
void deployDataType( String name, String location, URL url )
- throws DeploymentException;
+ throws DeploymentException;
void deployTask( String name, String location, URL url )
throws DeploymentException;
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 8f4da441f..ae33d7e50 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
@@ -11,7 +11,6 @@ import java.io.File;
import org.apache.ant.AntException;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.tasklet.engine.DataTypeEngine;
-import org.apache.ant.tasklet.engine.TskDeployer;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.camelot.CamelotUtil;
@@ -29,6 +28,7 @@ import org.apache.myrmidon.components.builder.ProjectBuilder;
import org.apache.myrmidon.components.configurer.Configurer;
import org.apache.myrmidon.components.executor.Executor;
import org.apache.myrmidon.components.manager.ProjectManager;
+import org.apache.myrmidon.components.deployer.TskDeployer;
/**
* Default implementation of Ant runtime.
@@ -178,7 +178,7 @@ public class MyrmidonEmbeddor
defaults.setParameter( "ant.comp.builder",
"org.apache.myrmidon.components.builder.DefaultProjectBuilder" );
defaults.setParameter( "ant.comp.deployer",
- "org.apache.ant.tasklet.engine.DefaultTskDeployer" );
+ "org.apache.myrmidon.components.deployer.DefaultTskDeployer" );
defaults.setParameter( "ant.comp.configurer",
"org.apache.myrmidon.components.configurer.DefaultConfigurer" );
@@ -194,15 +194,20 @@ public class MyrmidonEmbeddor
{
final DefaultComponentManager componentManager = new DefaultComponentManager();
- componentManager.put( "org.apache.myrmidon.components.manager.ProjectManager", m_projectEngine );
componentManager.put( "org.apache.ant.convert.engine.ConverterEngine",
m_converterEngine );
componentManager.put( "org.apache.ant.convert.Converter", m_converterEngine );
componentManager.put( "org.apache.ant.tasklet.engine.DataTypeEngine", m_dataTypeEngine );
- componentManager.put( "org.apache.myrmidon.components.builder.ProjectBuilder", m_builder );
- componentManager.put( "org.apache.ant.tasklet.engine.TskDeployer", m_deployer );
componentManager.put( "org.apache.avalon.framework.camelot.Factory", m_factory );
+ //Following components required when Myrmidon is used as build tool
+ componentManager.put( "org.apache.myrmidon.components.manager.ProjectManager", m_projectEngine );
+ componentManager.put( "org.apache.myrmidon.components.builder.ProjectBuilder", m_builder );
+
+ //Following components required when Myrmidon allows user deployment of tasks etal.
+ componentManager.put( "org.apache.myrmidon.components.deployer.TskDeployer", m_deployer );
+
+ //Following components required when allowing Container tasks
componentManager.put( "org.apache.myrmidon.components.configurer.Configurer", m_configurer );
componentManager.put( "org.apache.myrmidon.components.executor.Executor", m_executor );