Submitted By: "Adam Murdoch" <adammurdoch_ml@yahoo.com> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270847 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -8,9 +8,7 @@ | |||
| package org.apache.myrmidon.api; | |||
| import java.io.File; | |||
| import org.apache.avalon.framework.context.Context; | |||
| import org.apache.avalon.framework.context.ContextException; | |||
| import org.apache.avalon.framework.context.Contextualizable; | |||
| import org.apache.avalon.framework.logger.AbstractLogEnabled; | |||
| /** | |||
| @@ -31,6 +29,7 @@ public abstract class AbstractTask | |||
| * @param context the context | |||
| */ | |||
| public void contextualize( final TaskContext context ) | |||
| throws TaskException | |||
| { | |||
| m_context = context; | |||
| } | |||
| @@ -104,6 +103,12 @@ public abstract class AbstractTask | |||
| getContext().setProperty( name, value, scope ); | |||
| } | |||
| protected final Object getService( final Class serviceClass ) | |||
| throws TaskException | |||
| { | |||
| return getContext().getService( serviceClass ); | |||
| } | |||
| protected final TaskContext createSubContext( final String name ) | |||
| throws TaskException | |||
| { | |||
| @@ -29,7 +29,8 @@ public interface Task | |||
| * The Task will use the TaskContext to receive information | |||
| * about it's environment. | |||
| */ | |||
| void contextualize( TaskContext context ); | |||
| void contextualize( TaskContext context ) | |||
| throws TaskException; | |||
| /** | |||
| * Execute task. | |||
| @@ -81,9 +81,6 @@ public class AspectAwareExecutor | |||
| debug( "contextualizing.notice" ); | |||
| doContextualize( task, taskModel, frame.getContext() ); | |||
| debug( "composing.notice" ); | |||
| doCompose( task, taskModel, frame.getComponentManager() ); | |||
| debug( "configuring.notice" ); | |||
| getAspectManager().preConfigure( taskModel ); | |||
| doConfigure( task, taskModel, frame.getContext() ); | |||
| @@ -12,9 +12,11 @@ import org.apache.avalon.framework.component.ComponentManager; | |||
| import org.apache.avalon.framework.component.Composable; | |||
| import org.apache.avalon.framework.context.Context; | |||
| import org.apache.avalon.framework.context.Contextualizable; | |||
| import org.apache.avalon.framework.context.ContextException; | |||
| import org.apache.avalon.framework.logger.LogEnabled; | |||
| import org.apache.avalon.framework.logger.Logger; | |||
| import org.apache.myrmidon.api.TaskContext; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.myrmidon.interfaces.executor.ExecutionFrame; | |||
| import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| @@ -24,36 +26,28 @@ import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | |||
| */ | |||
| public class DefaultExecutionFrame | |||
| implements ExecutionFrame, LogEnabled, Contextualizable, Composable | |||
| implements ExecutionFrame, LogEnabled, Contextualizable | |||
| { | |||
| private TypeManager m_typeManager; | |||
| private Logger m_logger; | |||
| private TaskContext m_context; | |||
| private ComponentManager m_componentManager; | |||
| private TypeManager m_typeManager; | |||
| public void enableLogging( final Logger logger ) | |||
| { | |||
| m_logger = logger; | |||
| } | |||
| public void contextualize( final Context context ) | |||
| public void contextualize( final Context context ) throws ContextException | |||
| { | |||
| m_context = (TaskContext)context; | |||
| } | |||
| /** | |||
| * Retrieve relevent services needed to deploy. | |||
| * | |||
| * @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 ); | |||
| try | |||
| { | |||
| m_typeManager = (TypeManager)m_context.getService( TypeManager.class ); | |||
| } | |||
| catch( TaskException te ) | |||
| { | |||
| throw new ContextException(te.getMessage(), te); | |||
| } | |||
| } | |||
| public TypeManager getTypeManager() | |||
| @@ -70,9 +64,4 @@ public class DefaultExecutionFrame | |||
| { | |||
| return m_context; | |||
| } | |||
| public ComponentManager getComponentManager() | |||
| { | |||
| return m_componentManager; | |||
| } | |||
| } | |||
| @@ -61,9 +61,6 @@ public class DefaultExecutor | |||
| debug( "contextualizing.notice" ); | |||
| doContextualize( task, taskModel, frame.getContext() ); | |||
| debug( "composing.notice" ); | |||
| doCompose( task, taskModel, frame.getComponentManager() ); | |||
| debug( "configuring.notice" ); | |||
| doConfigure( task, taskModel, frame.getContext() ); | |||
| @@ -115,29 +112,6 @@ public class DefaultExecutor | |||
| } | |||
| } | |||
| protected final void doCompose( final Task task, | |||
| final Configuration taskModel, | |||
| final ComponentManager componentManager ) | |||
| throws TaskException | |||
| { | |||
| if( task instanceof Composable ) | |||
| { | |||
| try | |||
| { | |||
| ( (Composable)task ).compose( componentManager ); | |||
| } | |||
| catch( final Throwable throwable ) | |||
| { | |||
| final String message = | |||
| REZ.getString( "compose.error", | |||
| taskModel.getName(), | |||
| taskModel.getLocation(), | |||
| throwable.getMessage() ); | |||
| throw new TaskException( message, throwable ); | |||
| } | |||
| } | |||
| } | |||
| protected final void doContextualize( final Task task, | |||
| final Configuration taskModel, | |||
| final TaskContext context ) | |||
| @@ -1,7 +1,6 @@ | |||
| creating.notice=Creating. | |||
| logger.notice=Setting Logger. | |||
| contextualizing.notice=Contextualizing. | |||
| composing.notice=Composing. | |||
| configuring.notice=Configuring. | |||
| initializing.notice=Initializing. | |||
| executing.notice=Executing. | |||
| @@ -9,7 +8,6 @@ disposing.notice=Disposing. | |||
| no-create.error=Unable to create task {0}. | |||
| config.error=Error configuring task {0} at {1} (Reason: {2}). | |||
| compose.error=Error composing task {0} at {1} (Reason: {2}). | |||
| contextualize.error=Error contextualizing task {0} at {1} (Reason: {2}). | |||
| dispose.error=Error disposing task {0} at {1} (Reason: {2}). | |||
| init.error=Error initializing task {0} at {1} (Reason: {2}). | |||
| @@ -8,12 +8,14 @@ | |||
| package org.apache.myrmidon.components.workspace; | |||
| import java.io.File; | |||
| import java.util.Map; | |||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | |||
| import org.apache.avalon.excalibur.i18n.Resources; | |||
| import org.apache.avalon.excalibur.io.FileUtil; | |||
| import org.apache.avalon.excalibur.property.PropertyException; | |||
| import org.apache.avalon.excalibur.property.PropertyUtil; | |||
| import org.apache.avalon.framework.component.Component; | |||
| import org.apache.avalon.framework.component.ComponentException; | |||
| import org.apache.avalon.framework.component.ComponentManager; | |||
| import org.apache.avalon.framework.context.ContextException; | |||
| import org.apache.avalon.framework.context.DefaultContext; | |||
| import org.apache.myrmidon.api.TaskContext; | |||
| @@ -31,32 +33,44 @@ public class DefaultTaskContext | |||
| private final static Resources REZ = | |||
| ResourceManager.getPackageResources( DefaultTaskContext.class ); | |||
| private ComponentManager m_componentManager; | |||
| /** | |||
| * Constructor for Context with no parent contexts. | |||
| */ | |||
| public DefaultTaskContext( final Map contextData ) | |||
| public DefaultTaskContext() | |||
| { | |||
| super( contextData ); | |||
| this( (TaskContext)null ); | |||
| } | |||
| /** | |||
| * Constructor for Context with no parent contexts. | |||
| * Constructor that specified parent context. | |||
| */ | |||
| public DefaultTaskContext() | |||
| public DefaultTaskContext( final TaskContext parent ) | |||
| { | |||
| this( (TaskContext)null ); | |||
| this( parent, null ); | |||
| } | |||
| /** | |||
| * Constructor. | |||
| * Constructor that specifies the ComponentManager for context. | |||
| */ | |||
| public DefaultTaskContext( final TaskContext parent ) | |||
| public DefaultTaskContext( final ComponentManager componentManager ) | |||
| { | |||
| this( null, componentManager ); | |||
| } | |||
| /** | |||
| * Constructor that takes both parent context and a service directory. | |||
| */ | |||
| public DefaultTaskContext( final TaskContext parent, | |||
| final ComponentManager componentManager ) | |||
| { | |||
| super( parent ); | |||
| m_componentManager = componentManager; | |||
| } | |||
| /** | |||
| * Retrieve Name of tasklet. | |||
| * Retrieve Name of task. | |||
| * | |||
| * @return the name | |||
| */ | |||
| @@ -104,7 +118,42 @@ public class DefaultTaskContext | |||
| public Object getService( final Class serviceClass ) | |||
| throws TaskException | |||
| { | |||
| throw new TaskException( "No services available atm" ); | |||
| // Try this context first | |||
| final String name = serviceClass.getName(); | |||
| if( m_componentManager.hasComponent( name ) ) | |||
| { | |||
| try | |||
| { | |||
| final Component service = m_componentManager.lookup( name ); | |||
| if( !serviceClass.isInstance( service ) ) | |||
| { | |||
| final String message = | |||
| REZ.getString( "bad-service-class.error", | |||
| name, | |||
| service.getClass().getName(), | |||
| serviceClass.getName() ); | |||
| throw new TaskException( message ); | |||
| } | |||
| return service; | |||
| } | |||
| catch( final ComponentException ce ) | |||
| { | |||
| final String message = REZ.getString( "bad-find-service.error", name ); | |||
| throw new TaskException( message, ce ); | |||
| } | |||
| } | |||
| // Try parent | |||
| final TaskContext parent = (TaskContext)getParent(); | |||
| if( null != parent ) | |||
| { | |||
| return parent.getService( serviceClass ); | |||
| } | |||
| // Not found | |||
| final String message = REZ.getString( "bad-find-service.error", name ); | |||
| throw new TaskException( message ); | |||
| } | |||
| /** | |||
| @@ -194,9 +243,11 @@ public class DefaultTaskContext | |||
| { | |||
| checkPropertyValid( name, value ); | |||
| if( CURRENT == scope ) { | |||
| if( CURRENT == scope ) | |||
| { | |||
| put( name, value ); | |||
| } else if( PARENT == scope ) | |||
| } | |||
| else if( PARENT == scope ) | |||
| { | |||
| if( null == getParent() ) | |||
| { | |||
| @@ -19,7 +19,6 @@ 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.context.ContextException; | |||
| import org.apache.avalon.framework.logger.AbstractLogEnabled; | |||
| import org.apache.avalon.framework.logger.LogKitLogger; | |||
| import org.apache.avalon.framework.logger.Logger; | |||
| @@ -31,6 +30,7 @@ import org.apache.myrmidon.api.TaskContext; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.myrmidon.components.deployer.DefaultDeployer; | |||
| import org.apache.myrmidon.components.executor.DefaultExecutionFrame; | |||
| import org.apache.myrmidon.components.role.DefaultRoleManager; | |||
| import org.apache.myrmidon.framework.Condition; | |||
| import org.apache.myrmidon.interfaces.deployer.Deployer; | |||
| import org.apache.myrmidon.interfaces.deployer.DeploymentException; | |||
| @@ -41,6 +41,7 @@ import org.apache.myrmidon.interfaces.model.Target; | |||
| import org.apache.myrmidon.interfaces.model.TypeLib; | |||
| import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| import org.apache.myrmidon.interfaces.workspace.Workspace; | |||
| import org.apache.myrmidon.interfaces.role.RoleManager; | |||
| import org.apache.myrmidon.listeners.ProjectListener; | |||
| /** | |||
| @@ -141,7 +142,7 @@ public class DefaultWorkspace | |||
| private TaskContext createBaseContext() | |||
| throws TaskException | |||
| { | |||
| final TaskContext context = new DefaultTaskContext(); | |||
| final TaskContext context = new DefaultTaskContext( m_componentManager ); | |||
| final String[] names = m_parameters.getNames(); | |||
| for( int i = 0; i < names.length; i++ ) | |||
| @@ -219,9 +220,6 @@ public class DefaultWorkspace | |||
| 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 ); | |||
| @@ -267,6 +265,11 @@ public class DefaultWorkspace | |||
| componentManager.put( Project.ROLE + "/" + name, other ); | |||
| } | |||
| // Create and configure the context | |||
| final DefaultTaskContext context = | |||
| new DefaultTaskContext( m_baseContext, componentManager ); | |||
| context.setProperty( TaskContext.BASE_DIRECTORY, project.getBaseDirectory() ); | |||
| final DefaultExecutionFrame frame = new DefaultExecutionFrame(); | |||
| try | |||
| @@ -276,7 +279,6 @@ public class DefaultWorkspace | |||
| frame.enableLogging( logger ); | |||
| frame.contextualize( context ); | |||
| frame.compose( componentManager ); | |||
| } | |||
| catch( final Exception e ) | |||
| { | |||
| @@ -401,10 +403,10 @@ public class DefaultWorkspace | |||
| return; | |||
| } | |||
| } | |||
| catch( final ContextException ce ) | |||
| catch( final TaskException te ) | |||
| { | |||
| final String message = REZ.getString( "condition-eval.error", name ); | |||
| throw new TaskException( message, ce ); | |||
| throw new TaskException( message, te ); | |||
| } | |||
| } | |||
| @@ -15,7 +15,10 @@ no-version.error=No JavaVersion in Context. | |||
| no-name.error=No Name in Context. | |||
| no-dir.error=No Base Directory in Context. | |||
| no-parent.error=Can't set a property with parent scope when context has no parent. | |||
| bad-find-services.error=Unable to find service "{0}". | |||
| bad-scope.error=Unknown property scope! ({0}). | |||
| bad-property.error=Property {0} must have a value of type {1}. | |||
| null-resolved-value.error=Value "{0}" resolved to null. | |||
| bad-resolve.error=Unable to resolve value "{0}". | |||
| bad-resolve.error=Unable to resolve value "{0}". | |||
| bad-find-service.error=Could not find service "{0}". | |||
| bad-service-class.error=Find service "{0}" but it was of type {1} where it was expected to be of type {2}. | |||
| @@ -9,20 +9,21 @@ package org.apache.myrmidon.framework; | |||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | |||
| import org.apache.avalon.excalibur.i18n.Resources; | |||
| 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.configuration.Configuration; | |||
| import org.apache.avalon.framework.configuration.ConfigurationException; | |||
| import org.apache.avalon.framework.context.Context; | |||
| import org.apache.avalon.framework.context.ContextException; | |||
| import org.apache.myrmidon.api.AbstractTask; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.myrmidon.api.TaskContext; | |||
| import org.apache.myrmidon.converter.Converter; | |||
| import org.apache.myrmidon.converter.ConverterException; | |||
| import org.apache.myrmidon.interfaces.configurer.Configurer; | |||
| import org.apache.myrmidon.interfaces.converter.MasterConverter; | |||
| import org.apache.myrmidon.interfaces.executor.Executor; | |||
| import org.apache.myrmidon.interfaces.type.TypeFactory; | |||
| import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| import org.apache.myrmidon.interfaces.type.TypeException; | |||
| /** | |||
| * This is the class that Task writers should extend to provide custom tasks. | |||
| @@ -31,7 +32,6 @@ import org.apache.myrmidon.interfaces.executor.Executor; | |||
| */ | |||
| public abstract class AbstractContainerTask | |||
| extends AbstractTask | |||
| implements Composable | |||
| { | |||
| private final static Resources REZ = | |||
| ResourceManager.getPackageResources( AbstractContainerTask.class ); | |||
| @@ -45,12 +45,18 @@ public abstract class AbstractContainerTask | |||
| ///For executing sub-elements as tasks | |||
| private Executor m_executor; | |||
| public void compose( final ComponentManager componentManager ) | |||
| throws ComponentException | |||
| /** | |||
| * Retrieve context from container. | |||
| * | |||
| * @param context the context | |||
| */ | |||
| public void contextualize( TaskContext context ) | |||
| throws TaskException | |||
| { | |||
| m_configurer = (Configurer)componentManager.lookup( Configurer.ROLE ); | |||
| m_converter = (MasterConverter)componentManager.lookup( MasterConverter.ROLE ); | |||
| m_executor = (Executor)componentManager.lookup( Executor.ROLE ); | |||
| super.contextualize( context ); | |||
| m_configurer = (Configurer)getService( Configurer.class ); | |||
| m_converter = (MasterConverter)getService( MasterConverter.class ); | |||
| m_executor = (Executor)getService( Executor.class ); | |||
| } | |||
| /** | |||
| @@ -102,6 +108,24 @@ public abstract class AbstractContainerTask | |||
| getConfigurer().configure( object, name, value, getContext() ); | |||
| } | |||
| /** | |||
| * Locates a type factory. | |||
| */ | |||
| protected final TypeFactory getTypeFactory( final String role ) | |||
| throws TaskException | |||
| { | |||
| final TypeManager typeManager = (TypeManager)getService( TypeManager.class ); | |||
| try | |||
| { | |||
| return typeManager.getFactory( role ); | |||
| } | |||
| catch( final TypeException te ) | |||
| { | |||
| final String message = REZ.getString( "container.no-factory.error", role ); | |||
| throw new TaskException( message, te ); | |||
| } | |||
| } | |||
| /** | |||
| * Convenience method for sub-class to retrieve Configurer. | |||
| * | |||
| @@ -12,9 +12,6 @@ import java.net.URL; | |||
| import java.net.URLClassLoader; | |||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | |||
| import org.apache.avalon.excalibur.i18n.Resources; | |||
| import org.apache.avalon.framework.component.ComponentException; | |||
| import org.apache.avalon.framework.component.ComponentManager; | |||
| import org.apache.avalon.framework.component.Composable; | |||
| import org.apache.myrmidon.api.AbstractTask; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.myrmidon.interfaces.role.RoleManager; | |||
| @@ -31,7 +28,6 @@ import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| */ | |||
| public abstract class AbstractTypeDef | |||
| extends AbstractTask | |||
| implements Composable | |||
| { | |||
| private final static Resources REZ = | |||
| ResourceManager.getPackageResources( AbstractTypeDef.class ); | |||
| @@ -39,15 +35,6 @@ public abstract class AbstractTypeDef | |||
| private File m_lib; | |||
| private String m_name; | |||
| private String m_className; | |||
| private TypeManager m_typeManager; | |||
| private RoleManager m_roleManager; | |||
| public void compose( final ComponentManager componentManager ) | |||
| throws ComponentException | |||
| { | |||
| m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); | |||
| m_roleManager = (RoleManager)componentManager.lookup( RoleManager.ROLE ); | |||
| } | |||
| public void setLib( final File lib ) | |||
| { | |||
| @@ -80,15 +67,17 @@ public abstract class AbstractTypeDef | |||
| } | |||
| final String typeName = getTypeName(); | |||
| final String role = m_roleManager.getRoleForName( typeName ); | |||
| final RoleManager roleManager = (RoleManager)getService( RoleManager.class ); | |||
| final String role = roleManager.getRoleForName( typeName ); | |||
| final ClassLoader classLoader = createClassLoader(); | |||
| final DefaultTypeFactory factory = new DefaultTypeFactory( classLoader ); | |||
| factory.addNameClassMapping( m_name, m_className ); | |||
| final TypeManager typeManager = (TypeManager)getService( TypeManager.class ); | |||
| try | |||
| { | |||
| m_typeManager.registerType( role, m_name, factory ); | |||
| typeManager.registerType( role, m_name, factory ); | |||
| } | |||
| catch( final TypeException te ) | |||
| { | |||
| @@ -116,10 +105,5 @@ public abstract class AbstractTypeDef | |||
| } | |||
| } | |||
| protected final TypeManager getTypeManager() | |||
| { | |||
| return m_typeManager; | |||
| } | |||
| protected abstract String getTypeName(); | |||
| } | |||
| @@ -1,6 +1,7 @@ | |||
| container.null-value.error=Value ({0}) resolved to null. | |||
| container.bad-resolve.error=Error resolving value ({0}). | |||
| container.bad-config.error=Error converting value. | |||
| container.no-factory.error=Could not locate the type factory for type "{0}". | |||
| typedef.no-name.error=Must specify name parameter. | |||
| typedef.no-classname.error=Must specify classname parameter. | |||
| @@ -11,7 +12,6 @@ condition.no-resolve.error=Error resolving {0}. | |||
| pattern.ifelse-duplicate.error=Can only set one of if/else for pattern data type. | |||
| type.no-factory.error=Unable to retrieve DataType factory from TypeManager. | |||
| type.no-create.error=Unable to create datatype. | |||
| type.no-id.error=Id must be specified. | |||
| @@ -9,17 +9,13 @@ package org.apache.myrmidon.framework; | |||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | |||
| import org.apache.avalon.excalibur.i18n.Resources; | |||
| import org.apache.avalon.framework.component.ComponentException; | |||
| import org.apache.avalon.framework.component.ComponentManager; | |||
| import org.apache.avalon.framework.configuration.Configurable; | |||
| import org.apache.avalon.framework.configuration.Configuration; | |||
| import org.apache.avalon.framework.configuration.ConfigurationException; | |||
| import org.apache.avalon.framework.configuration.DefaultConfiguration; | |||
| import org.apache.myrmidon.api.TaskContext; | |||
| import org.apache.myrmidon.api.TaskException; | |||
| import org.apache.myrmidon.interfaces.type.TypeException; | |||
| import org.apache.myrmidon.interfaces.type.TypeFactory; | |||
| import org.apache.myrmidon.interfaces.type.TypeManager; | |||
| /** | |||
| * This is the property "task" to declare a binding of a datatype to a name. | |||
| @@ -36,24 +32,6 @@ public class TypeInstanceTask | |||
| private String m_id; | |||
| private Object m_value; | |||
| private boolean m_localScope = true; | |||
| private TypeFactory m_factory; | |||
| public void compose( final ComponentManager componentManager ) | |||
| throws ComponentException | |||
| { | |||
| super.compose( componentManager ); | |||
| final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE ); | |||
| try | |||
| { | |||
| m_factory = typeManager.getFactory( DataType.ROLE ); | |||
| } | |||
| catch( final TypeException te ) | |||
| { | |||
| final String message = REZ.getString( "type.no-factory.error" ); | |||
| throw new ComponentException( message, te ); | |||
| } | |||
| } | |||
| public void configure( final Configuration configuration ) | |||
| throws ConfigurationException | |||
| @@ -85,7 +63,8 @@ public class TypeInstanceTask | |||
| try | |||
| { | |||
| m_value = m_factory.create( configuration.getName() ); | |||
| final TypeFactory typeFactory = getTypeFactory( DataType.ROLE ); | |||
| m_value = typeFactory.create( configuration.getName() ); | |||
| } | |||
| catch( final Exception e ) | |||
| { | |||
| @@ -24,6 +24,4 @@ public interface ExecutionFrame | |||
| Logger getLogger(); | |||
| TaskContext getContext(); | |||
| ComponentManager getComponentManager(); | |||
| } | |||