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