Browse Source

Made embeddor not implement the framework lifecycle stages

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271996 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
f37c292c4c
4 changed files with 38 additions and 30 deletions
  1. +4
    -3
      proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
  2. +4
    -4
      proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
  3. +30
    -18
      proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java
  4. +0
    -5
      proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java

+ 4
- 3
proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java View File

@@ -20,6 +20,7 @@ import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.avalon.framework.CascadingException; import org.apache.avalon.framework.CascadingException;
import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable; 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.AbstractLogEnabled;
import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters; 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.builder.ProjectBuilder;
import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager;
import org.apache.myrmidon.interfaces.configurer.Configurer; 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.Deployer;
import org.apache.myrmidon.interfaces.deployer.DeploymentException; import org.apache.myrmidon.interfaces.deployer.DeploymentException;
import org.apache.myrmidon.interfaces.deployer.TypeDeployer; 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.TypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager; import org.apache.myrmidon.interfaces.type.TypeManager;
import org.apache.myrmidon.interfaces.workspace.Workspace; import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.myrmidon.interfaces.converter.ConverterRegistry;
import org.apache.myrmidon.listeners.ProjectListener; import org.apache.myrmidon.listeners.ProjectListener;


/** /**
@@ -55,7 +56,7 @@ import org.apache.myrmidon.listeners.ProjectListener;
*/ */
public class DefaultEmbeddor public class DefaultEmbeddor
extends AbstractLogEnabled extends AbstractLogEnabled
implements Embeddor
implements Embeddor, Parameterizable, Initializable, Startable, Disposable
{ {
private final static Resources REZ = private final static Resources REZ =
ResourceManager.getPackageResources( DefaultEmbeddor.class ); ResourceManager.getPackageResources( DefaultEmbeddor.class );
@@ -284,7 +285,7 @@ public class DefaultEmbeddor
* Creates a component. * Creates a component.
*/ */
private Object createComponent( final Class roleType, private Object createComponent( final Class roleType,
final String defaultImpl )
final String defaultImpl )
throws Exception throws Exception
{ {
final Object component = createService( roleType, defaultImpl ); final Object component = createService( roleType, defaultImpl );


+ 4
- 4
proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java View File

@@ -8,12 +8,12 @@
package org.apache.myrmidon.frontends; package org.apache.myrmidon.frontends;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.File; import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.HashMap;
import org.apache.avalon.excalibur.cli.CLArgsParser; import org.apache.avalon.excalibur.cli.CLArgsParser;
import org.apache.avalon.excalibur.cli.CLOption; import org.apache.avalon.excalibur.cli.CLOption;
import org.apache.avalon.excalibur.cli.CLOptionDescriptor; import org.apache.avalon.excalibur.cli.CLOptionDescriptor;
@@ -311,7 +311,7 @@ public class CLIMain


// Setup logging // Setup logging
final BasicLogger logger = new BasicLogger( "[myrmidon] ", m_priority ); final BasicLogger logger = new BasicLogger( "[myrmidon] ", m_priority );
m_embedded.setLogger( logger );
m_embedded.enableLogging( logger );


if( m_dryRun ) if( m_dryRun )
{ {
@@ -380,7 +380,7 @@ public class CLIMain
private void executeBuild() throws Exception private void executeBuild() throws Exception
{ {
//actually do the build ... //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 ); m_embedded.executeTargets( targets );
} }




+ 30
- 18
proposal/myrmidon/src/java/org/apache/myrmidon/frontends/EmbeddedAnt.java View File

@@ -10,8 +10,12 @@ package org.apache.myrmidon.frontends;
import java.io.File; import java.io.File;
import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources; 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.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger; import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.interfaces.embeddor.Embeddor; import org.apache.myrmidon.interfaces.embeddor.Embeddor;
@@ -24,13 +28,14 @@ import org.apache.myrmidon.listeners.ProjectListener;
* executing a project. * executing a project.
* *
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$ * @version $Revision$ $Date$
*/ */
public class EmbeddedAnt public class EmbeddedAnt
extends AbstractLogEnabled 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 = private static final String DEFAULT_EMBEDDOR_CLASS =
"org.apache.myrmidon.components.embeddor.DefaultEmbeddor"; "org.apache.myrmidon.components.embeddor.DefaultEmbeddor";
@@ -41,18 +46,10 @@ public class EmbeddedAnt
private ProjectListener m_listener; private ProjectListener m_listener;
private Parameters m_workspaceProps = new Parameters(); private Parameters m_workspaceProps = new Parameters();
private Parameters m_builderProps = 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 ClassLoader m_sharedClassLoader;
private Embeddor m_embeddor; 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'. * 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 ) public void setEmbeddorProperty( final String name, final Object value )
{ {
// TODO - Make properties Objects, not Strings // 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 ) 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 finally
@@ -204,7 +207,7 @@ public class EmbeddedAnt
*/ */
private void checkHomeDir() throws Exception 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(); final File homeDir = ( new File( home ) ).getAbsoluteFile();
if( !homeDir.isDirectory() ) if( !homeDir.isDirectory() )
{ {
@@ -229,9 +232,18 @@ public class EmbeddedAnt
{ {
m_embeddor = createEmbeddor(); m_embeddor = createEmbeddor();
setupLogger( m_embeddor ); 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; return m_embeddor;
} }


+ 0
- 5
proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/embeddor/Embeddor.java View File

@@ -7,10 +7,6 @@
*/ */
package org.apache.myrmidon.interfaces.embeddor; 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.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.interfaces.model.Project; import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.workspace.Workspace; import org.apache.myrmidon.interfaces.workspace.Workspace;
@@ -23,7 +19,6 @@ import org.apache.myrmidon.listeners.ProjectListener;
* @version $Revision$ $Date$ * @version $Revision$ $Date$
*/ */
public interface Embeddor public interface Embeddor
extends Parameterizable, Initializable, Startable, Disposable
{ {
String ROLE = Embeddor.class.getName(); String ROLE = Embeddor.class.getName();




Loading…
Cancel
Save