git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271996 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -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 ); | |||
| @@ -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 ); | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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(); | |||