Browse Source

Moved getChildTypeManager to ProjectManager as havin in ExecutionFrame violates IOC and has not consistent with other approach for frame specific parameters.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269166 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
87f090a12a
2 changed files with 13 additions and 11 deletions
  1. +4
    -7
      proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java
  2. +9
    -4
      proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java

+ 4
- 7
proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java View File

@@ -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()


+ 9
- 4
proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java View File

@@ -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


Loading…
Cancel
Save