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.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 );


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

@@ -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 );
}



+ 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 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 <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @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;
}


+ 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;

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();



Loading…
Cancel
Save