diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
index d392b945e..53043fd8e 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
@@ -20,6 +20,7 @@ import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.avalon.framework.CascadingException;
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.logger.AbstractLogEnabled;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
@@ -30,6 +31,7 @@ import org.apache.myrmidon.interfaces.aspect.AspectManager;
import org.apache.myrmidon.interfaces.builder.ProjectBuilder;
import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager;
import org.apache.myrmidon.interfaces.configurer.Configurer;
+import org.apache.myrmidon.interfaces.converter.ConverterRegistry;
import org.apache.myrmidon.interfaces.deployer.Deployer;
import org.apache.myrmidon.interfaces.deployer.DeploymentException;
import org.apache.myrmidon.interfaces.deployer.TypeDeployer;
@@ -43,7 +45,6 @@ import org.apache.myrmidon.interfaces.service.MultiSourceServiceManager;
import org.apache.myrmidon.interfaces.type.TypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager;
import org.apache.myrmidon.interfaces.workspace.Workspace;
-import org.apache.myrmidon.interfaces.converter.ConverterRegistry;
import org.apache.myrmidon.listeners.ProjectListener;
/**
@@ -55,7 +56,7 @@ import org.apache.myrmidon.listeners.ProjectListener;
*/
public class DefaultEmbeddor
extends AbstractLogEnabled
- implements Embeddor
+ implements Embeddor, Parameterizable, Initializable, Startable, Disposable
{
private final static Resources REZ =
ResourceManager.getPackageResources( DefaultEmbeddor.class );
@@ -284,7 +285,7 @@ public class DefaultEmbeddor
* Creates a component.
*/
private Object createComponent( final Class roleType,
- final String defaultImpl )
+ final String defaultImpl )
throws Exception
{
final Object component = createService( roleType, defaultImpl );
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
index a90a0d5ec..ce58a2f93 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
@@ -8,12 +8,12 @@
package org.apache.myrmidon.frontends;
import java.io.BufferedReader;
-import java.io.InputStreamReader;
import java.io.File;
+import java.io.InputStreamReader;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
import org.apache.avalon.excalibur.cli.CLArgsParser;
import org.apache.avalon.excalibur.cli.CLOption;
import org.apache.avalon.excalibur.cli.CLOptionDescriptor;
@@ -311,7 +311,7 @@ public class CLIMain
// Setup logging
final BasicLogger logger = new BasicLogger( "[myrmidon] ", m_priority );
- m_embedded.setLogger( logger );
+ m_embedded.enableLogging( logger );
if( m_dryRun )
{
@@ -380,7 +380,7 @@ public class CLIMain
private void executeBuild() throws Exception
{
//actually do the build ...
- final String[] targets = (String[])m_targets.toArray( new String[m_targets.size() ] );
+ final String[] targets = (String[])m_targets.toArray( new String[ m_targets.size() ] );
m_embedded.executeTargets( targets );
}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java
index d4ffefaad..0a9fc1049 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java
@@ -10,8 +10,12 @@ package org.apache.myrmidon.frontends;
import java.io.File;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
+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.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.interfaces.embeddor.Embeddor;
@@ -24,13 +28,14 @@ import org.apache.myrmidon.listeners.ProjectListener;
* executing a project.
*
* @author Adam Murdoch
+ * @author Peter Donald
* @version $Revision$ $Date$
*/
public class EmbeddedAnt
extends AbstractLogEnabled
{
- private final static Resources REZ
- = ResourceManager.getPackageResources( EmbeddedAnt.class );
+ private final static Resources REZ =
+ ResourceManager.getPackageResources( EmbeddedAnt.class );
private static final String DEFAULT_EMBEDDOR_CLASS =
"org.apache.myrmidon.components.embeddor.DefaultEmbeddor";
@@ -41,18 +46,10 @@ public class EmbeddedAnt
private ProjectListener m_listener;
private Parameters m_workspaceProps = new Parameters();
private Parameters m_builderProps = new Parameters();
- private Parameters m_embeddorProps = new Parameters();
+ private Parameters m_embeddorParameters = new Parameters();
private ClassLoader m_sharedClassLoader;
private Embeddor m_embeddor;
- /**
- * Sets the logger to use.
- */
- public void setLogger( final Logger logger )
- {
- enableLogging( logger );
- }
-
/**
* Sets the project file to execute. Default is 'build.ant'.
*/
@@ -117,7 +114,7 @@ public class EmbeddedAnt
public void setEmbeddorProperty( final String name, final Object value )
{
// TODO - Make properties Objects, not Strings
- m_embeddorProps.setParameter( name, (String)value );
+ m_embeddorParameters.setParameter( name, (String)value );
}
/**
@@ -164,8 +161,14 @@ public class EmbeddedAnt
{
if( m_embeddor != null )
{
- m_embeddor.stop();
- m_embeddor.dispose();
+ if( m_embeddor instanceof Startable )
+ {
+ ( (Startable)m_embeddor ).stop();
+ }
+ if( m_embeddor instanceof Disposable )
+ {
+ ( (Disposable)m_embeddor ).dispose();
+ }
}
}
finally
@@ -204,7 +207,7 @@ public class EmbeddedAnt
*/
private void checkHomeDir() throws Exception
{
- final String home = m_embeddorProps.getParameter( "myrmidon.home" );
+ final String home = m_embeddorParameters.getParameter( "myrmidon.home" );
final File homeDir = ( new File( home ) ).getAbsoluteFile();
if( !homeDir.isDirectory() )
{
@@ -229,9 +232,18 @@ public class EmbeddedAnt
{
m_embeddor = createEmbeddor();
setupLogger( m_embeddor );
- m_embeddor.parameterize( m_embeddorProps );
- m_embeddor.initialize();
- m_embeddor.start();
+ if( m_embeddor instanceof Parameterizable )
+ {
+ ( (Parameterizable)m_embeddor ).parameterize( m_embeddorParameters );
+ }
+ if( m_embeddor instanceof Initializable )
+ {
+ ( (Initializable)m_embeddor ).initialize();
+ }
+ if( m_embeddor instanceof Startable )
+ {
+ ( (Startable)m_embeddor ).start();
+ }
}
return m_embeddor;
}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java
index 3225df531..12bd66e0a 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java
@@ -7,10 +7,6 @@
*/
package org.apache.myrmidon.interfaces.embeddor;
-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.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.workspace.Workspace;
@@ -23,7 +19,6 @@ import org.apache.myrmidon.listeners.ProjectListener;
* @version $Revision$ $Date$
*/
public interface Embeddor
- extends Parameterizable, Initializable, Startable, Disposable
{
String ROLE = Embeddor.class.getName();