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 871ad870e..8b975d4c9 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 @@ -36,9 +36,10 @@ public class DefaultExecutionFrame implements ExecutionFrame, Loggable, Contextualizable, Composable { private TypeManager m_typeManager; + private Logger m_logger; private TaskContext m_context; - private DefaultComponentManager m_componentManager = new DefaultComponentManager(); + private ComponentManager m_componentManager; public void setLogger( final Logger logger ) { @@ -91,13 +92,9 @@ public class DefaultExecutionFrame (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE ); m_componentManager.put( ConverterRegistry.ROLE, converterRegistry ); */ - m_componentManager = new DefaultComponentManager( componentManager ); + m_componentManager = componentManager; - //Extend from inherited version - final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); - m_typeManager = typeManager.createChildTypeManager(); - //m_typeManager = typeManager; - m_componentManager.put( TypeManager.ROLE, m_typeManager ); + m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); } public TypeManager getTypeManager() 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 index 0995c5672..d02ea6805 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java @@ -32,6 +32,7 @@ import org.apache.myrmidon.components.executor.Executor; import org.apache.myrmidon.components.model.Condition; import org.apache.myrmidon.components.model.Project; import org.apache.myrmidon.components.model.Target; +import org.apache.myrmidon.components.type.TypeManager; import org.apache.myrmidon.listeners.ProjectListener; /** @@ -45,11 +46,12 @@ public class DefaultProjectManager { private Executor m_executor; private ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); - private DefaultComponentManager m_componentManager; + 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. @@ -80,8 +82,9 @@ public class DefaultProjectManager public void compose( final ComponentManager componentManager ) throws ComponentException { - m_componentManager = new DefaultComponentManager( componentManager ); + m_componentManager = componentManager; + m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); m_executor = (Executor)componentManager.lookup( Executor.ROLE ); m_project = (Project)componentManager.lookup( Project.ROLE ); } @@ -149,6 +152,10 @@ public class DefaultProjectManager final DefaultComponentManager componentManager = new DefaultComponentManager( m_componentManager ); + //Add in child type manager so each frame can register different + //sets of tasks etc + componentManager.put( TypeManager.ROLE, m_typeManager.createChildTypeManager() ); + //We need to place projects and ProjectManager //in ComponentManager so as to support project-local antcall componentManager.put( ProjectManager.ROLE, this ); @@ -162,8 +169,6 @@ public class DefaultProjectManager componentManager.put( Project.ROLE + "/" + name, other ); } - //Per frame TypeManager here... - final DefaultExecutionFrame frame = new DefaultExecutionFrame(); try