From 45fd8b03391ec3cccd1da7e67782e6c0f9317491 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Fri, 29 Jun 2001 08:01:38 +0000 Subject: [PATCH] Continue migration of ProjectManager to Workspace git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269254 13f79535-47bb-0310-9956-ffa450edef68 --- .../components/embeddor/DefaultEmbeddor.java | 20 +- .../components/embeddor/Embeddor.java | 8 +- .../executor/DefaultExecutionFrame.java | 1 - .../manager/DefaultProjectManager.java | 439 ------------------ .../manager/LogTargetToListenerAdapter.java | 50 -- .../components/manager/ProjectEntry.java | 51 -- .../manager/ProjectListenerSupport.java | 160 ------- .../components/manager/ProjectManager.java | 51 -- .../apache/myrmidon/frontends/CLIMain.java | 17 +- 9 files changed, 22 insertions(+), 775 deletions(-) delete mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java delete mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/LogTargetToListenerAdapter.java delete mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectEntry.java delete mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectListenerSupport.java delete mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectManager.java 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 ec0bb6a6c..a7bc5491d 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 @@ -27,12 +27,12 @@ import org.apache.myrmidon.components.converter.ConverterRegistry; import org.apache.myrmidon.components.converter.MasterConverter; import org.apache.myrmidon.components.deployer.Deployer; import org.apache.myrmidon.components.deployer.DeploymentException; -import org.apache.myrmidon.components.role.RoleManager; import org.apache.myrmidon.components.executor.Executor; -import org.apache.myrmidon.components.manager.ProjectManager; +import org.apache.myrmidon.components.workspace.Workspace; +import org.apache.myrmidon.components.model.Project; +import org.apache.myrmidon.components.role.RoleManager; import org.apache.myrmidon.components.type.TypeFactory; import org.apache.myrmidon.components.type.TypeManager; -import org.apache.myrmidon.components.model.Project; /** * Default implementation of Embeddor. @@ -122,13 +122,13 @@ public class DefaultEmbeddor return builder; } - public ProjectManager createProjectManager( final Project project, - final Parameters parameters ) + public Workspace createWorkspace( final Project project, + final Parameters parameters ) throws Exception { - final String component = getParameter( ProjectManager.ROLE ); - final ProjectManager projectManager = - (ProjectManager)createComponent( component, ProjectManager.class ); + final String component = getParameter( Workspace.ROLE ); + final Workspace projectManager = + (Workspace)createComponent( component, Workspace.class ); setupLogger( projectManager ); @@ -240,8 +240,8 @@ public class DefaultEmbeddor //"org.apache.myrmidon.components.executor.DefaultExecutor" ); //"org.apache.myrmidon.components.executor.PrintingExecutor" ); "org.apache.myrmidon.components.executor.AspectAwareExecutor" ); - defaults.setParameter( ProjectManager.ROLE, - "org.apache.myrmidon.components.manager.DefaultProjectManager" ); + defaults.setParameter( Workspace.ROLE, + "org.apache.myrmidon.components.workspace.DefaultWorkspace" ); defaults.setParameter( Deployer.ROLE, "org.apache.myrmidon.components.deployer.DefaultDeployer" ); defaults.setParameter( Configurer.ROLE, diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java index 722e21df2..15615f280 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java @@ -15,7 +15,7 @@ import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.myrmidon.components.model.Project; -import org.apache.myrmidon.components.manager.ProjectManager; +import org.apache.myrmidon.components.workspace.Workspace; /** * Interface through which you embed Myrmidon into applications. @@ -36,12 +36,12 @@ public interface Embeddor throws Exception; /** - * Create a ProjectManager for a particular project. + * Create a Workspace for a particular project. * * @param project the root project * @param defines the defines in project - * @return the ProjectManager + * @return the Workspace */ - ProjectManager createProjectManager( Project project, Parameters parameters ) + Workspace createWorkspace( Project project, Parameters parameters ) throws Exception; } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java index 1f08164ed..345939ca8 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java @@ -23,7 +23,6 @@ import org.apache.myrmidon.components.converter.ConverterRegistry; import org.apache.myrmidon.components.converter.MasterConverter; import org.apache.myrmidon.components.deployer.Deployer; import org.apache.myrmidon.components.executor.Executor; -import org.apache.myrmidon.components.manager.ProjectManager; import org.apache.myrmidon.components.role.RoleManager; import org.apache.myrmidon.components.type.TypeManager; diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java deleted file mode 100644 index 8512ad177..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.components.manager; - -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Map; -import java.util.HashMap; -import org.apache.avalon.framework.activity.Disposable; -import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.DefaultComponentManager; -import org.apache.avalon.framework.component.Composable; -import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.logger.AbstractLoggable; -import org.apache.avalon.framework.parameters.ParameterException; -import org.apache.avalon.framework.parameters.Parameterizable; -import org.apache.avalon.framework.parameters.Parameters; -import org.apache.log.Logger; -import org.apache.myrmidon.api.DefaultTaskContext; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.components.executor.DefaultExecutionFrame; -import org.apache.myrmidon.components.executor.ExecutionFrame; -import org.apache.myrmidon.components.executor.Executor; -import org.apache.myrmidon.framework.Condition; -import org.apache.myrmidon.components.deployer.DefaultDeployer; -import org.apache.myrmidon.components.deployer.Deployer; -import org.apache.myrmidon.components.deployer.DeploymentException; -import org.apache.myrmidon.components.model.Project; -import org.apache.myrmidon.components.model.TypeLib; -import org.apache.myrmidon.components.model.Target; -import org.apache.myrmidon.components.type.TypeManager; -import org.apache.myrmidon.listeners.ProjectListener; - -/** - * This is the default implementation of ProjectEngine. - * - * @author Peter Donald - */ -public class DefaultProjectManager - extends AbstractLoggable - implements ProjectManager, Composable, Parameterizable, Initializable -{ - private Executor m_executor; - private ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); - private ComponentManager m_componentManager; - private Parameters m_parameters; - private Project m_project; - private TaskContext m_baseContext; - private HashMap m_entrys = new HashMap(); - private TypeManager m_typeManager; - - /** - * Add a listener to project events. - * - * @param listener the listener - */ - public void addProjectListener( final ProjectListener listener ) - { - m_listenerSupport.addProjectListener( listener ); - } - - /** - * Remove a listener from project events. - * - * @param listener the listener - */ - public void removeProjectListener( final ProjectListener listener ) - { - m_listenerSupport.removeProjectListener( listener ); - } - - /** - * Retrieve relevent services needed for engine. - * - * @param componentManager the ComponentManager - * @exception ComponentException if an error occurs - */ - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - m_componentManager = componentManager; - - m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); - m_executor = (Executor)componentManager.lookup( Executor.ROLE ); - m_project = (Project)componentManager.lookup( Project.ROLE ); - } - - public void parameterize( final Parameters parameters ) - throws ParameterException - { - m_parameters = parameters; - } - - public void initialize() - throws Exception - { - m_baseContext = createBaseContext(); - } - - /** - * Execute a target in a particular project. - * Execute in the project context. - * - * @param project the Project - * @param target the name of the target - * @exception TaskException if an error occurs - */ - public void executeProject( final Project project, final String target ) - throws TaskException - { - final ProjectEntry entry = getProjectEntry( project ); - - m_listenerSupport.projectStarted(); - - executeTarget( "", project.getImplicitTarget(), entry.getFrame() ); - - execute( project, target, entry ); - - m_listenerSupport.projectFinished(); - } - - - private TaskContext createBaseContext() - throws TaskException - { - final TaskContext context = new DefaultTaskContext(); - - final String[] names = m_parameters.getNames(); - for( int i = 0; i < names.length; i++ ) - { - final String value = m_parameters.getParameter( names[ i ], null ); - context.setProperty( names[ i ], value ); - } - - //Add system properties so that they overide user-defined properties - addToContext( context, System.getProperties() ); - - return context; - } - - private File findTypeLib( final String libraryName ) - throws TaskException - { - //TODO: In future this will be expanded to allow - //users to specify search path or automagically - //add entries to lib path (like user specific or - //workspace specific) - final String name = libraryName.replace( '/', File.separatorChar ) + ".atl"; - - final String home = System.getProperty( "myrmidon.home" ); - final File homeDir = new File( home + File.separatorChar + "ext" ); - - final File library = new File( homeDir, name ); - - if( library.exists() ) - { - if( !library.canRead() ) - { - throw new TaskException( "Unable to read library at " + library ); - } - else - { - return library; - } - } - - throw new TaskException( "Unable to locate Type Library " + libraryName ); - } - - private void deployTypeLib( final Deployer deployer, final Project project ) - throws TaskException - { - final TypeLib[] typeLibs = project.getTypeLibs(); - - for( int i = 0; i < typeLibs.length; i++ ) - { - final TypeLib typeLib = typeLibs[ i ]; - final File file = findTypeLib( typeLib.getLibrary() ); - - try - { - if( null == typeLib.getRole() ) - { - deployer.deploy( file ); - } - else - { - deployer.deployType( typeLib.getRole(), typeLib.getName(), file ); - } - } - catch( final DeploymentException de ) - { - throw new TaskException( "Error deploying type library " + - typeLib + " at " + file, de ); - } - } - } - - private ExecutionFrame createExecutionFrame( final Project project ) - throws TaskException - { - final TaskContext context = new DefaultTaskContext( m_baseContext ); - context.setProperty( TaskContext.BASE_DIRECTORY, project.getBaseDirectory() ); - - //Create per frame ComponentManager - final DefaultComponentManager componentManager = - new DefaultComponentManager( m_componentManager ); - - //Add in child type manager so each frame can register different - //sets of tasks etc - final TypeManager typeManager = m_typeManager.createChildTypeManager(); - componentManager.put( TypeManager.ROLE, typeManager ); - - //We need to create a new deployer so that it deploys - //to project specific TypeManager - final DefaultDeployer deployer = new DefaultDeployer(); - deployer.setLogger( getLogger() ); - - try { deployer.compose( componentManager ); } - catch( final ComponentException ce ) - { - throw new TaskException( "Error configuring deployer", ce ); - } - - //HACK: Didn't call initialize because Deployer contained in Embeddor - // Already initialized and this would be reduendent - //deployer.initialize(); - - componentManager.put( Deployer.ROLE, deployer ); - - deployTypeLib( deployer, project ); - - //We need to place projects and ProjectManager - //in ComponentManager so as to support project-local call() - componentManager.put( ProjectManager.ROLE, this ); - componentManager.put( Project.ROLE, project ); - - final String[] names = project.getProjectNames(); - for( int i = 0; i < names.length; i++ ) - { - final String name = names[ i ]; - final Project other = project.getProject( name ); - componentManager.put( Project.ROLE + "/" + name, other ); - } - - final DefaultExecutionFrame frame = new DefaultExecutionFrame(); - - try - { - - frame.setLogger( getLogger() ); - frame.contextualize( context ); - frame.compose( componentManager ); - } - catch( final Exception e ) - { - throw new TaskException( "Error setting up ExecutionFrame", e ); - } - - return frame; - } - - private ProjectEntry getProjectEntry( final Project project ) - throws TaskException - { - ProjectEntry entry = (ProjectEntry)m_entrys.get( project ); - - if( null == entry ) - { - final ExecutionFrame frame = createExecutionFrame( project ); - entry = new ProjectEntry( project, frame ); - m_entrys.put( project, entry ); - } - - return entry; - } - - private Project getProject( final String name, final Project project ) - throws TaskException - { - final Project other = project.getProject( name ); - - if( null == other ) - { - //TODO: Fix this so location information included in description - throw new TaskException( "Project '" + name + "' not found." ); - } - - return other; - } - - /** - * Helper method to execute a target. - * - * @param project the Project - * @param target the name of the target - * @param context the context - * @param done the list of targets already executed in current run - * @exception TaskException if an error occurs - */ - private void execute( final Project project, - final String targetName, - final ProjectEntry entry ) - throws TaskException - { - final int index = targetName.indexOf( "->" ); - if( -1 != index ) - { - final String name = targetName.substring( 0, index ); - final String otherTargetName = targetName.substring( index + 2 ); - - final Project otherProject = getProject( name, project ); - final ProjectEntry otherEntry = getProjectEntry( otherProject ); - - //Execute target in referenced project - execute( otherProject, otherTargetName, otherEntry ); - return; - } - - final Target target = project.getTarget( targetName ); - if( null == target ) - { - throw new TaskException( "Unable to find target " + targetName ); - } - - //add target to list of targets executed - entry.completeTarget( targetName ); - - //execute all dependencies - final String[] dependencies = target.getDependencies(); - for( int i = 0; i < dependencies.length; i++ ) - { - if( !entry.isTargetCompleted( dependencies[ i ] ) ) - { - execute( project, dependencies[ i ], entry ); - } - } - - //notify listeners - m_listenerSupport.targetStarted( targetName ); - - executeTarget( targetName, target, entry.getFrame() ); - - //notify listeners - m_listenerSupport.targetFinished(); - } - - /** - * Method to execute a particular target instance. - * - * @param targetName the name of target - * @param target the target - * @param context the context in which to execute - * @exception TaskException if an error occurs - */ - private void executeTarget( final String name, - final Target target, - final ExecutionFrame frame ) - throws TaskException - { - //check the condition associated with target. - //if it is not satisfied then skip target - final Condition condition = target.getCondition(); - if( null != condition ) - { - if( false == condition.evaluate( frame.getContext() ) ) - { - getLogger().debug( "Skipping target " + name + - " as it does not satisfy condition" ); - return; - } - } - - getLogger().debug( "Executing target " + name ); - - //frame.getContext().setProperty( Project.TARGET, target ); - - //execute all tasks assciated with target - final Configuration[] tasks = target.getTasks(); - for( int i = 0; i < tasks.length; i++ ) - { - executeTask( tasks[ i ], frame ); - } - } - - /** - * Execute a task. - * - * @param task the task definition - * @param context the context - * @exception TaskException if an error occurs - */ - private void executeTask( final Configuration task, final ExecutionFrame frame ) - throws TaskException - { - final String name = task.getName(); - getLogger().debug( "Executing task " + name ); - - //is setting name even necessary ??? - frame.getContext().setProperty( TaskContext.NAME, name ); - - //notify listeners - m_listenerSupport.taskStarted( name ); - - //run task - m_executor.execute( task, frame ); - - //notify listeners task has ended - m_listenerSupport.taskFinished(); - } - - /** - * Helper method to add values to a context - * - * @param context the context - * @param map the map of names->values - */ - private void addToContext( final TaskContext context, final Map map ) - throws TaskException - { - final Iterator keys = map.keySet().iterator(); - - while( keys.hasNext() ) - { - final String key = (String)keys.next(); - final Object value = map.get( key ); - context.setProperty( key, value ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/LogTargetToListenerAdapter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/LogTargetToListenerAdapter.java deleted file mode 100644 index 6819405a5..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/LogTargetToListenerAdapter.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.components.manager; - -import org.apache.log.LogEvent; -import org.apache.log.LogTarget; -import org.apache.myrmidon.listeners.ProjectListener; - -/** - * Adapter between Avalon LogKit and Project listener interfaces. - * - * @author Peter Donald - */ -public class LogTargetToListenerAdapter - implements LogTarget -{ - private final ProjectListener m_listener; - - /** - * Constructor taking listener to convert to. - * - * @param listener the ProjectListener - */ - public LogTargetToListenerAdapter( final ProjectListener listener ) - { - m_listener = listener; - } - - /** - * Process a log event. - * - * @param event the event - */ - public void processEvent( final LogEvent event ) - { - if( null == event.getThrowable() ) - { - m_listener.log( event.getMessage() ); - } - else - { - m_listener.log( event.getMessage(), event.getThrowable() ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectEntry.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectEntry.java deleted file mode 100644 index 62efc2b87..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectEntry.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.components.manager; - -import java.util.ArrayList; -import org.apache.myrmidon.components.model.Project; -import org.apache.myrmidon.components.executor.ExecutionFrame; - -/** - * This contains detaisl for each project that is managed by ProjectManager. - * - * @author Peter Donald - */ -public final class ProjectEntry -{ - private final Project m_project; - private final ExecutionFrame m_frame; - private final ArrayList m_targetsCompleted = new ArrayList(); - - public ProjectEntry( final Project project, - final ExecutionFrame frame ) - { - m_project = project; - m_frame = frame; - } - - public Project getProject() - { - return m_project; - } - - public ExecutionFrame getFrame() - { - return m_frame; - } - - public boolean isTargetCompleted( final String target ) - { - return m_targetsCompleted.contains( target ); - } - - public void completeTarget( final String target ) - { - m_targetsCompleted.add( target ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectListenerSupport.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectListenerSupport.java deleted file mode 100644 index 30a2e0bc6..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectListenerSupport.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.components.manager; - -import org.apache.myrmidon.listeners.ProjectListener; - -/** - * Support for the project listener event dispatching. - * - * @author Peter Donald - */ -public class ProjectListenerSupport - implements ProjectListener -{ - private ProjectListener[] m_listeners = new ProjectListener[ 0 ]; - - /** - * Add an extra project listener that wants to receive notification of listener events. - * - * @param listener the listener - */ - public void addProjectListener( final ProjectListener listener ) - { - final ProjectListener[] listeners = new ProjectListener[ m_listeners.length + 1 ]; - System.arraycopy( m_listeners, 0, listeners, 0, m_listeners.length ); - listeners[ m_listeners.length ] = listener; - m_listeners = listeners; - } - - /** - * Remove a project listener that wants to receive notification of listener events. - * - * @param listener the listener - */ - public void removeProjectListener( final ProjectListener listener ) - { - int found = -1; - - for( int i = 0; i < m_listeners.length; i++ ) - { - if( listener == m_listeners[ i ] ) - { - found = i; - break; - } - } - - if( -1 == found ) return; - - final ProjectListener[] listeners = new ProjectListener[ m_listeners.length - 1 ]; - System.arraycopy( m_listeners, 0, listeners, 0, found ); - - final int count = m_listeners.length - found - 1; - System.arraycopy( m_listeners, found, listeners, found + 1, count ); - - m_listeners = listeners; - } - - /** - * Fire a projectStarted event. - */ - public void projectStarted() - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].projectStarted(); - } - } - - /** - * Fire a projectFinished event. - */ - public void projectFinished() - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].projectFinished(); - } - } - - /** - * Fire a targetStarted event. - * - * @param targetName the name of target - */ - public void targetStarted( String targetName ) - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].targetStarted( targetName ); - } - } - - /** - * Fire a targetFinished event. - */ - public void targetFinished() - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].targetFinished(); - } - } - - /** - * Fire a targetStarted event. - * - * @param targetName the name of target - */ - public void taskStarted( String taskName ) - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].taskStarted( taskName ); - } - } - - /** - * Fire a taskFinished event. - */ - public void taskFinished() - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].taskFinished(); - } - } - - /** - * Fire a log event. - * - * @param message the log message - */ - public void log( String message ) - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].log( message ); - } - } - - /** - * Fire a log event. - * - * @param message the log message - * @param throwable the throwable to be logged - */ - public void log( String message, Throwable throwable ) - { - for( int i = 0; i < m_listeners.length; i++ ) - { - m_listeners[ i ].log( message, throwable ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectManager.java deleted file mode 100644 index fe79209ec..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/ProjectManager.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.myrmidon.components.manager; - -import java.util.Map; -import org.apache.avalon.framework.component.Component; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.components.model.Project; -import org.apache.myrmidon.listeners.ProjectListener; - -/** - * This is the abstraction through which Projects are executed. - * TODO: Think of better name - * - * @author Peter Donald - */ -public interface ProjectManager - extends Component -{ - String ROLE = "org.apache.myrmidon.components.manager.ProjectManager"; - - /** - * Add a listener to project events. - * - * @param listener the listener - */ - void addProjectListener( ProjectListener listener ); - - /** - * Remove a listener from project events. - * - * @param listener the listener - */ - void removeProjectListener( ProjectListener listener ); - - /** - * Execute a target in a particular project. - * - * @param project the Project - * @param target the name of the target - * @param defines the defines - * @exception TaskException if an error occurs - */ - void executeProject( Project project, String target ) - throws TaskException; -} 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 87b40ac56..c8a04a109 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java @@ -40,8 +40,8 @@ import org.apache.myrmidon.components.builder.ProjectBuilder; import org.apache.myrmidon.components.executor.Executor; import org.apache.myrmidon.components.embeddor.Embeddor; import org.apache.myrmidon.components.embeddor.DefaultEmbeddor; -import org.apache.myrmidon.components.manager.LogTargetToListenerAdapter; -import org.apache.myrmidon.components.manager.ProjectManager; +import org.apache.myrmidon.components.workspace.LogTargetToListenerAdapter; +import org.apache.myrmidon.components.workspace.Workspace; import org.apache.myrmidon.components.model.Project; import org.apache.myrmidon.listeners.ProjectListener; @@ -353,11 +353,10 @@ public class CLIMain while( true ) { //actually do the build ... - final ProjectManager manager = - embeddor.createProjectManager( project, m_defines ); - manager.addProjectListener( listener ); + final Workspace workspace = embeddor.createWorkspace( project, m_defines ); + workspace.addProjectListener( listener ); - doBuild( manager, project, m_targets ); + doBuild( workspace, project, m_targets ); if( !incremental ) break; @@ -385,7 +384,7 @@ public class CLIMain * @param project the project * @param targets the targets to build as passed by CLI */ - private void doBuild( final ProjectManager manager, + private void doBuild( final Workspace workspace, final Project project, final ArrayList targets ) { @@ -396,13 +395,13 @@ public class CLIMain //if we didn't specify a target on CLI then choose default if( 0 == targetCount ) { - manager.executeProject( project, project.getDefaultTargetName() ); + workspace.executeProject( project, project.getDefaultTargetName() ); } else { for( int i = 0; i < targetCount; i++ ) { - manager.executeProject( project, (String)targets.get( i ) ); + workspace.executeProject( project, (String)targets.get( i ) ); } } }