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