@@ -14,10 +14,6 @@ import java.util.Map;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
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.Composable;
import org.apache.avalon.framework.component.DefaultComponentManager;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.LogKitLogger;
@@ -25,6 +21,10 @@ import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.DefaultServiceManager;
import org.apache.log.Hierarchy;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException;
@@ -38,7 +38,7 @@ import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.model.Target;
import org.apache.myrmidon.interfaces.model.TypeLib;
import org.apache.myrmidon.interfaces.service.MultiSourceServiceManager;
import org.apache.myrmidon.interfaces.service.ServiceManager;
import org.apache.myrmidon.interfaces.service.Ant ServiceManager;
import org.apache.myrmidon.interfaces.type.TypeManager;
import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.myrmidon.listeners.ProjectListener;
@@ -51,14 +51,14 @@ import org.apache.myrmidon.listeners.ProjectListener;
*/
public class DefaultWorkspace
extends AbstractLogEnabled
implements Workspace, Compos able, Parameterizable, Initializable
implements Workspace, Service able, Parameterizable, Initializable
{
private final static Resources REZ =
ResourceManager.getPackageResources( DefaultWorkspace.class );
private Executor m_executor;
private ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport();
private ComponentManager m_component Manager;
private ServiceManager m_service Manager;
private Parameters m_parameters;
private TaskContext m_baseContext;
private HashMap m_entrys = new HashMap();
@@ -90,16 +90,16 @@ public class DefaultWorkspace
/**
* Retrieve relevent services needed for engine.
*
* @param componentManager the Component Manager
* @exception Component Exception if an error occurs
* @param serviceManager the Service Manager
* @exception Service Exception if an error occurs
*/
public void compose( final ComponentManager component Manager )
throws Component Exception
public void service( final ServiceManager service Manager )
throws Service Exception
{
m_compon ent Manager = compon ent Manager;
m_typeManager = (TypeManager)compon ent Manager.lookup( TypeManager.ROLE );
m_executor = (Executor)compon ent Manager.lookup( Executor.ROLE );
m_deployer = (Deployer)compon ent Manager.lookup( Deployer.ROLE );
m_servi ceManager = servi ceManager;
m_typeManager = (TypeManager)servi ceManager.lookup( TypeManager.ROLE );
m_executor = (Executor)servi ceManager.lookup( Executor.ROLE );
m_deployer = (Deployer)servi ceManager.lookup( Deployer.ROLE );
}
public void parameterize( final Parameters parameters )
@@ -226,48 +226,47 @@ public class DefaultWorkspace
* Creates an execution frame for a project.
*/
private ExecutionFrame createExecutionFrame( final Project project )
throws TaskException, Component Exception
throws TaskException, Service Exception
{
//Create per frame ComponentManager
final DefaultComponentManager component Manager =
new DefaultComponentManager( m_component Manager );
final DefaultServiceManager service Manager =
new DefaultServiceManager( m_service Manager );
//Add in child type manager so each frame can register different
//sets of tasks etc
final TypeManager typeManager = m_typeManager.createChildTypeManager();
compon ent Manager.put( TypeManager.ROLE, typeManager );
servi ceManager.put( TypeManager.ROLE, typeManager );
//We need to create a new deployer so that it deploys
//to project specific TypeManager
final Deployer deployer;
deployer = m_deployer.createChildDeployer( componentManager );
componentManager.put( Deployer.ROLE, deployer );
final Deployer deployer = m_deployer.createChildDeployer( serviceManager );
serviceManager.put( Deployer.ROLE, deployer );
// Deploy the imported typelibs
deployTypeLib( deployer, project );
//We need to place projects and ProjectManager
//in ComponentManager so as to support project-local call()
compon ent Manager.put( Workspace.ROLE, this );
compon ent Manager.put( Project.ROLE, project );
servi ceManager.put( Workspace.ROLE, this );
servi ceManager.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 );
compon ent Manager.put( Project.ROLE + "/" + name, other );
servi ceManager.put( Project.ROLE + "/" + name, other );
}
// Create a service manager that aggregates the contents of the context's
// component manager, and service manager
final MultiSourceServiceManager serviceManager = new MultiSourceServiceManager();
serviceManager.add( (ServiceManager)compon ent Manager.lookup( ServiceManager.ROLE ) );
serviceManager.add( new ComponentManagerAdaptor( component Manager ) );
final MultiSourceServiceManager m sS erviceManager = new MultiSourceServiceManager();
m sS erviceManager.add( (Ant ServiceManager)servi ceManager.lookup( Ant ServiceManager.ROLE ) );
msServiceManager.add( new ServiceManagerAdaptor( service Manager ) );
// Create and configure the context
final DefaultTaskContext context =
new DefaultTaskContext( m_baseContext, serviceManager );
new DefaultTaskContext( m_baseContext, m sS erviceManager );
context.setProperty( TaskContext.BASE_DIRECTORY, project.getBaseDirectory() );
// Create a logger
@@ -280,7 +279,7 @@ public class DefaultWorkspace
/**
* @todo Should no occur but done for the time being to simplify evolution.
*/
compon ent Manager.put( ExecutionFrame.ROLE, frame );
servi ceManager.put( ExecutionFrame.ROLE, frame );
return frame;
}