Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@apache.org Received: (qmail 60067 invoked from network); 24 Jan 2002 11:25:03 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 24 Jan 2002 11:25:03 -0000 Received: (qmail 4984 invoked by uid 97); 24 Jan 2002 11:24:55 -0000 Delivered-To: qmlist-jakarta-archive-ant-dev@jakarta.apache.org Received: (qmail 4953 invoked by uid 97); 24 Jan 2002 11:24:55 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 4942 invoked from network); 24 Jan 2002 11:24:54 -0000 From: "Adam Murdoch" To: Subject: [myrmidon] add TaskContext.getService() Date: Thu, 24 Jan 2002 21:23:23 +1000 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_00C6_01C1A51D.5A6270C0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N ------=_NextPart_000_00C6_01C1A51D.5A6270C0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, This patch adds a getService() method to TaskContext. This method replaces Composable, as far as tasks are concerned. The motivation was to provide a place where tasks can get at services, and in particular, a FileSystemManager. TaskContext.getService() returns an Object. Do we need to add a Service interface (which we can later add a ROLE attribute to), or is Object sufficient? The change details: * Changed all tasks that used to implement Composable, to use TaskContext.getService() instead. * Axed ExecutionFrame.getComponentManager(). DefaultExecutor no longer composes tasks. * DefaultTaskContext uses a ComponentManager to locate services. Currently, this is the same ComponentManager that used to be used to compose the tasks. * Fixed Condition.evaluate() to work if the property is not defined. It should now only throw an exception when the condition is badly-formed. Changed its signature to throw a TaskException, rather than a ContextException. * Changed LoadProperties to extend AbstractTask instead of AbstractContainerTask. Adam ------=_NextPart_000_00C6_01C1A51D.5A6270C0 Content-Type: application/x-zip-compressed; name="newfiles.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="newfiles.zip" UEsDBAoAAAAAAOJLOCwAAAAAAAAAAAAAAAAEAAAAc3JjL1BLAwQKAAAAAADLSzgsAAAAAAAAAAAA AAAACQAAAHNyYy9qYXZhL1BLAwQKAAAAAADLSzgsAAAAAAAAAAAAAAAADQAAAHNyYy9qYXZhL29y Zy9QSwMECgAAAAAA4ks4LAAAAAAAAAAAAAAAABQAAABzcmMvamF2YS9vcmcvYXBhY2hlL1BLAwQK AAAAAADiSzgsAAAAAAAAAAAAAAAAHQAAAHNyYy9qYXZhL29yZy9hcGFjaGUvbXlybWlkb24vUEsD BAoAAAAAAMmNOCwAAAAAAAAAAAAAAAAhAAAAc3JjL2phdmEvb3JnL2FwYWNoZS9teXJtaWRvbi9h cGkvUEsDBBQACAAIANWNOCwAAAAAAAAAAAAAAAA1AAAAc3JjL2phdmEvb3JnL2FwYWNoZS9teXJt aWRvbi9hcGkvUmVzb3VyY2VzLnByb3BlcnRpZXNLTCouKUpMLilJLM7Wy8vXTQOy84sq9VKLivKL bJ3zS3NSFPLySxRy8pMTS1IVSjKAuLIgVQGqTiEtvwgioFRtUKukx8sFAFBLBwhCsnXnRwAAAFEA AABQSwECFAAKAAAAAADiSzgsAAAAAAAAAAAAAAAABAAAAAAAAAAAABAA/UEAAAAAc3JjL1BLAQIU AAoAAAAAAMtLOCwAAAAAAAAAAAAAAAAJAAAAAAAAAAAAEAD9QSIAAABzcmMvamF2YS9QSwECFAAK AAAAAADLSzgsAAAAAAAAAAAAAAAADQAAAAAAAAAAABAA/UFJAAAAc3JjL2phdmEvb3JnL1BLAQIU AAoAAAAAAOJLOCwAAAAAAAAAAAAAAAAUAAAAAAAAAAAAEAD9QXQAAABzcmMvamF2YS9vcmcvYXBh Y2hlL1BLAQIUAAoAAAAAAOJLOCwAAAAAAAAAAAAAAAAdAAAAAAAAAAAAEAD9QaYAAABzcmMvamF2 YS9vcmcvYXBhY2hlL215cm1pZG9uL1BLAQIUAAoAAAAAAMmNOCwAAAAAAAAAAAAAAAAhAAAAAAAA AAAAEAD9QeEAAABzcmMvamF2YS9vcmcvYXBhY2hlL215cm1pZG9uL2FwaS9QSwECFAAUAAgACADV jTgsQrJ150cAAABRAAAANQAAAAAAAAAAAAAAAAAgAQAAc3JjL2phdmEvb3JnL2FwYWNoZS9teXJt aWRvbi9hcGkvUmVzb3VyY2VzLnByb3BlcnRpZXNQSwUGAAAAAAcABwDjAQAAygEAAAAA ------=_NextPart_000_00C6_01C1A51D.5A6270C0 Content-Type: text/plain; name="patch.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="patch.txt" Index: proposal/myrmidon/src/java/org/apache/antlib/core/Fail.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= core/Fail.java,v retrieving revision 1.4 diff -u -r1.4 Fail.java --- proposal/myrmidon/src/java/org/apache/antlib/core/Fail.java 13 Jan = 2002 00:02:11 -0000 1.4 +++ proposal/myrmidon/src/java/org/apache/antlib/core/Fail.java 24 Jan = 2002 11:18:26 -0000 @@ -7,7 +7,6 @@ */ package org.apache.antlib.core; =20 -import org.apache.avalon.framework.context.ContextException; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Condition; @@ -53,30 +52,23 @@ public void execute() throws TaskException { - try + boolean failed =3D true; + + if( null !=3D m_condition ) { - boolean failed =3D true; + failed =3D m_condition.evaluate( getContext() ); + } =20 - if( null !=3D m_condition ) + if( failed ) + { + if( null !=3D m_message ) { - failed =3D m_condition.evaluate( getContext() ); + throw new TaskException( m_message ); } - - if( failed ) + else { - if( null !=3D m_message ) - { - throw new TaskException( m_message ); - } - else - { - throw new TaskException(); - } + throw new TaskException(); } - } - catch( final ContextException ce ) - { - throw new TaskException( ce.toString(), ce ); } } =20 Index: = proposal/myrmidon/src/java/org/apache/antlib/core/LoadProperties.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= core/LoadProperties.java,v retrieving revision 1.3 diff -u -r1.3 LoadProperties.java --- = proposal/myrmidon/src/java/org/apache/antlib/core/LoadProperties.java 20 = Jan 2002 17:32:58 -0000 1.3 +++ = proposal/myrmidon/src/java/org/apache/antlib/core/LoadProperties.java 24 = Jan 2002 11:18:27 -0000 @@ -14,8 +14,8 @@ import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.excalibur.io.IOUtil; +import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.framework.AbstractContainerTask; =20 /** * This task loads properties from a property file and places them in = the context. @@ -24,7 +24,7 @@ * @ant:task name=3D"load-properties" */ public class LoadProperties - extends AbstractContainerTask + extends AbstractTask { private final static Resources REZ =3D ResourceManager.getPackageResources( LoadProperties.class ); Index: proposal/myrmidon/src/java/org/apache/antlib/core/Property.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= core/Property.java,v retrieving revision 1.6 diff -u -r1.6 Property.java --- proposal/myrmidon/src/java/org/apache/antlib/core/Property.java 22 = Jan 2002 11:47:14 -0000 1.6 +++ proposal/myrmidon/src/java/org/apache/antlib/core/Property.java 24 = Jan 2002 11:18:27 -0000 @@ -9,8 +9,6 @@ =20 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; @@ -18,9 +16,7 @@ import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.AbstractContainerTask; import org.apache.myrmidon.framework.DataType; -import org.apache.myrmidon.interfaces.type.TypeException; import org.apache.myrmidon.interfaces.type.TypeFactory; -import org.apache.myrmidon.interfaces.type.TypeManager; =20 /** * This is the property "task" to declare a binding of a datatype to a = name. @@ -41,24 +37,6 @@ private String m_name; private Object m_value; private boolean m_localScope =3D true; - private TypeFactory m_factory; - - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - super.compose( componentManager ); - - final TypeManager typeManager =3D = (TypeManager)componentManager.lookup( TypeManager.ROLE ); - try - { - m_factory =3D typeManager.getFactory( DataType.ROLE ); - } - catch( final TypeException te ) - { - final String message =3D REZ.getString( = "property.bad-factory.error" ); - throw new ComponentException( message, te ); - } - } =20 public void configure( final Configuration configuration ) throws ConfigurationException @@ -76,7 +54,8 @@ { try { - final DataType value =3D (DataType)m_factory.create( = children[ i ].getName() ); + final TypeFactory typeFactory =3D getTypeFactory( = DataType.ROLE ); + final DataType value =3D (DataType)typeFactory.create( = children[ i ].getName() ); configure( value, children[ i ] ); setValue( value ); } Index: = proposal/myrmidon/src/java/org/apache/antlib/core/Resources.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= core/Resources.properties,v retrieving revision 1.5 diff -u -r1.5 Resources.properties --- = proposal/myrmidon/src/java/org/apache/antlib/core/Resources.properties = 12 Jan 2002 05:49:07 -0000 1.5 +++ = proposal/myrmidon/src/java/org/apache/antlib/core/Resources.properties = 24 Jan 2002 11:18:27 -0000 @@ -1,4 +1,3 @@ -property.bad-factory.error=3DUnable to retrieve DataType factory from = TypeManager. property.no-set.error=3DUnable to set datatype. property.multi-set.error=3DValue can not be set multiple times. property.no-name.error=3DName must be specified. Index: = proposal/myrmidon/src/java/org/apache/antlib/runtime/ConverterDef.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= runtime/ConverterDef.java,v retrieving revision 1.4 diff -u -r1.4 ConverterDef.java --- = proposal/myrmidon/src/java/org/apache/antlib/runtime/ConverterDef.java = 20 Jan 2002 17:32:57 -0000 1.4 +++ = proposal/myrmidon/src/java/org/apache/antlib/runtime/ConverterDef.java = 24 Jan 2002 11:18:27 -0000 @@ -11,9 +11,6 @@ import java.net.URL; 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.converter.Converter; @@ -28,7 +25,6 @@ */ public class ConverterDef extends AbstractTask - implements Composable { private final static Resources REZ =3D ResourceManager.getPackageResources( ConverterDef.class ); @@ -37,15 +33,6 @@ private String m_destinationType; private File m_lib; private String m_classname; - private ConverterRegistry m_converterRegistry; - private TypeManager m_typeManager; - - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - m_converterRegistry =3D = (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE ); - m_typeManager =3D (TypeManager)componentManager.lookup( = TypeManager.ROLE ); - } =20 public void setLib( final File lib ) { @@ -93,13 +80,15 @@ =20 try { - m_converterRegistry.registerConverter( m_classname, = m_sourceType, m_destinationType ); + final ConverterRegistry converterRegistry =3D = (ConverterRegistry)getService( ConverterRegistry.ROLE ); + converterRegistry.registerConverter( m_classname, = m_sourceType, m_destinationType ); =20 final URL url =3D m_lib.toURL(); final DefaultTypeFactory factory =3D new = DefaultTypeFactory( new URL[]{url} ); factory.addNameClassMapping( m_classname, m_classname ); =20 - m_typeManager.registerType( Converter.ROLE, m_classname, = factory ); + final TypeManager typeManager =3D (TypeManager)getService( = TypeManager.ROLE ); + typeManager.registerType( Converter.ROLE, m_classname, = factory ); } catch( final Exception e ) { Index: = proposal/myrmidon/src/java/org/apache/antlib/runtime/Facility.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= runtime/Facility.java,v retrieving revision 1.4 diff -u -r1.4 Facility.java --- proposal/myrmidon/src/java/org/apache/antlib/runtime/Facility.java = 20 Jan 2002 17:32:57 -0000 1.4 +++ proposal/myrmidon/src/java/org/apache/antlib/runtime/Facility.java = 24 Jan 2002 11:18:27 -0000 @@ -9,9 +9,6 @@ =20 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.Configurable; import org.apache.avalon.framework.configuration.Configuration; import = org.apache.avalon.framework.configuration.ConfigurationException; @@ -19,9 +16,7 @@ import org.apache.myrmidon.aspects.AspectHandler; import org.apache.myrmidon.framework.AbstractContainerTask; import org.apache.myrmidon.interfaces.aspect.AspectManager; -import org.apache.myrmidon.interfaces.type.TypeException; import org.apache.myrmidon.interfaces.type.TypeFactory; -import org.apache.myrmidon.interfaces.type.TypeManager; =20 /** * Task that definesMethod to register a single converter. @@ -30,7 +25,7 @@ */ public class Facility extends AbstractContainerTask - implements Composable, Configurable + implements Configurable { private final static Resources REZ =3D ResourceManager.getPackageResources( Facility.class ); @@ -38,28 +33,6 @@ private String m_namespace; private AspectHandler m_aspectHandler; =20 - private AspectManager m_aspectManager; - private TypeFactory m_factory; - - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - super.compose( componentManager ); - - m_aspectManager =3D (AspectManager)componentManager.lookup( = AspectManager.ROLE ); - - final TypeManager typeManager =3D = (TypeManager)componentManager.lookup( TypeManager.ROLE ); - try - { - m_factory =3D typeManager.getFactory( AspectHandler.ROLE ); - } - catch( final TypeException te ) - { - final String message =3D REZ.getString( = "facility.no-factory.error" ); - throw new ComponentException( message, te ); - } - } - public void configure( final Configuration configuration ) throws ConfigurationException { @@ -77,7 +50,8 @@ { try { - m_aspectHandler =3D (AspectHandler)m_factory.create( = children[ 0 ].getName() ); + final TypeFactory typeFactory =3D getTypeFactory( = AspectHandler.ROLE ); + m_aspectHandler =3D (AspectHandler)typeFactory.create( = children[ 0 ].getName() ); } catch( final Exception e ) { @@ -109,6 +83,7 @@ throw new TaskException( message ); } =20 - m_aspectManager.addAspectHandler( m_namespace, m_aspectHandler = ); + final AspectManager aspectManager =3D = (AspectManager)getService( AspectManager.ROLE ); + aspectManager.addAspectHandler( m_namespace, m_aspectHandler ); } } Index: proposal/myrmidon/src/java/org/apache/antlib/runtime/Import.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= runtime/Import.java,v retrieving revision 1.4 diff -u -r1.4 Import.java --- proposal/myrmidon/src/java/org/apache/antlib/runtime/Import.java 20 = Jan 2002 17:32:57 -0000 1.4 +++ proposal/myrmidon/src/java/org/apache/antlib/runtime/Import.java 24 = Jan 2002 11:18:28 -0000 @@ -10,9 +10,6 @@ import java.io.File; 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.deployer.Deployer; @@ -25,19 +22,11 @@ */ public class Import extends AbstractTask - implements Composable { private final static Resources REZ =3D ResourceManager.getPackageResources( Import.class ); =20 private File m_lib; - private Deployer m_deployer; - - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - m_deployer =3D (Deployer)componentManager.lookup( Deployer.ROLE = ); - } =20 public void setLib( final File lib ) { @@ -55,7 +44,8 @@ =20 try { - m_deployer.deploy( m_lib ); + final Deployer deployer =3D (Deployer)getService( = Deployer.ROLE ); + deployer.deploy( m_lib ); } catch( final DeploymentException de ) { Index: = proposal/myrmidon/src/java/org/apache/antlib/runtime/Resources.properties= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/= runtime/Resources.properties,v retrieving revision 1.1 diff -u -r1.1 Resources.properties --- = proposal/myrmidon/src/java/org/apache/antlib/runtime/Resources.properties= 17 Dec 2001 08:48:57 -0000 1.1 +++ = proposal/myrmidon/src/java/org/apache/antlib/runtime/Resources.properties= 24 Jan 2002 11:18:28 -0000 @@ -4,7 +4,6 @@ converterdef.no-lib.error=3DMust specify the lib parameter. converterdef.no-register.error=3DFailed to register converter {0}. =20 -facility.no-factory.error=3DUnable to retrieve AspectHandler factory = from TypeManager. facility.no-create.error=3DFailed to create aspect handler of type {0}. facility.multi-element.error=3DExpected one sub-element to configure = facility. facility.no-namespace.error=3DMust specify namespace parameter. Index: = proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/api/AbstractTask.java,v retrieving revision 1.13 diff -u -r1.13 AbstractTask.java --- proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java = 5 Jan 2002 03:02:41 -0000 1.13 +++ proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java = 24 Jan 2002 11:18:28 -0000 @@ -8,10 +8,15 @@ package org.apache.myrmidon.api; =20 import java.io.File; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; 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; +import org.apache.myrmidon.interfaces.type.TypeException; +import org.apache.myrmidon.interfaces.type.TypeFactory; +import org.apache.myrmidon.interfaces.type.TypeManager; =20 /** * This is the class that Task writers should extend to provide custom = tasks. @@ -22,6 +27,9 @@ extends AbstractLogEnabled implements Task, Contextualizable { + private final static Resources REZ =3D + ResourceManager.getPackageResources( AbstractTask.class ); + ///Variable to hold context for use by sub-classes private TaskContext m_context; =20 @@ -31,6 +39,7 @@ * @param context the context */ public void contextualize( final Context context ) + throws ContextException { m_context =3D (TaskContext)context; } @@ -103,6 +112,30 @@ throws TaskException { getContext().setProperty( name, value, scope ); + } + + protected final Object getService ( final String role ) + throws TaskException + { + return getContext().getService( role ); + } + + /** + * Locates a type factory. + */ + protected final TypeFactory getTypeFactory( final String role ) + throws TaskException + { + final TypeManager typeManager =3D (TypeManager)getService( = TypeManager.ROLE ); + try + { + return typeManager.getFactory( role ); + } + catch( final TypeException te ) + { + final String message =3D REZ.getString( = "abstracttask.no-factory.error", role ); + throw new TaskException( message, te ); + } } =20 protected final TaskContext createSubContext( final String name ) Index: = proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/api/TaskContext.java,v retrieving revision 1.13 diff -u -r1.13 TaskContext.java --- proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java = 5 Jan 2002 03:02:11 -0000 1.13 +++ proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java = 24 Jan 2002 11:18:29 -0000 @@ -100,6 +100,14 @@ throws TaskException; =20 /** + * Locates a service, by role name. + * + * @param role the service role. + */ + Object getService( String role ) + throws TaskException; + + /** * Create a Child Context. * This allows separate hierarchly contexts to be easily = constructed. * Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Aspect= AwareExecutor.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/executor/AspectAwareExecutor.java,v retrieving revision 1.13 diff -u -r1.13 AspectAwareExecutor.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Aspect= AwareExecutor.java 20 Jan 2002 17:32:56 -0000 1.13 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Aspect= AwareExecutor.java 24 Jan 2002 11:18:31 -0000 @@ -81,9 +81,6 @@ debug( "contextualizing.notice" ); doContextualize( task, taskModel, frame.getContext() ); =20 - debug( "composing.notice" ); - doCompose( task, taskModel, frame.getComponentManager() ); - debug( "configuring.notice" ); getAspectManager().preConfigure( taskModel ); doConfigure( task, taskModel, frame.getContext() ); Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutionFrame.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/executor/DefaultExecutionFrame.java,v retrieving revision 1.9 diff -u -r1.9 DefaultExecutionFrame.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutionFrame.java 23 Dec 2001 06:25:35 -0000 1.9 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutionFrame.java 24 Jan 2002 11:18:31 -0000 @@ -12,9 +12,11 @@ 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; =20 @@ -24,36 +26,28 @@ * @author Peter Donald */ 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; =20 public void enableLogging( final Logger logger ) { m_logger =3D logger; } =20 - public void contextualize( final Context context ) + public void contextualize( final Context context ) throws = ContextException { m_context =3D (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 =3D componentManager; - - m_typeManager =3D (TypeManager)componentManager.lookup( = TypeManager.ROLE ); + try + { + m_typeManager =3D (TypeManager)m_context.getService( = TypeManager.ROLE ); + } + catch( TaskException te ) + { + throw new ContextException(te.getMessage(), te); + } } =20 public TypeManager getTypeManager() @@ -69,10 +63,5 @@ public TaskContext getContext() { return m_context; - } - - public ComponentManager getComponentManager() - { - return m_componentManager; } } Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutor.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/executor/DefaultExecutor.java,v retrieving revision 1.18 diff -u -r1.18 DefaultExecutor.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutor.java 20 Jan 2002 17:32:56 -0000 1.18 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Defaul= tExecutor.java 24 Jan 2002 11:18:31 -0000 @@ -59,9 +59,6 @@ debug( "contextualizing.notice" ); doContextualize( task, taskModel, frame.getContext() ); =20 - debug( "composing.notice" ); - doCompose( task, taskModel, frame.getComponentManager() ); - debug( "configuring.notice" ); doConfigure( task, taskModel, frame.getContext() ); =20 @@ -110,29 +107,6 @@ taskModel.getLocation(), throwable.getMessage() ); throw new TaskException( message, throwable ); - } - } - - 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 =3D - REZ.getString( "compose.error", - taskModel.getName(), - taskModel.getLocation(), - throwable.getMessage() ); - throw new TaskException( message, throwable ); - } } } =20 Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resour= ces.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/executor/Resources.properties,v retrieving revision 1.2 diff -u -r1.2 Resources.properties --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resour= ces.properties 19 Nov 2001 12:37:25 -0000 1.2 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resour= ces.properties 24 Jan 2002 11:18:31 -0000 @@ -1,7 +1,6 @@ creating.notice=3DCreating. logger.notice=3DSetting Logger. contextualizing.notice=3DContextualizing. -composing.notice=3DComposing. configuring.notice=3DConfiguring. initializing.notice=3DInitializing. executing.notice=3DExecuting. @@ -9,7 +8,6 @@ =20 no-create.error=3DUnable to create task {0}. config.error=3DError configuring task {0} at {1} (Reason: {2}). -compose.error=3DError composing task {0} at {1} (Reason: {2}). context.error=3DError contextualizing task {0} at {1} (Reason: {2}). dispose.error=3DError disposing task {0} at {1} (Reason: {2}). init.error=3DError initializing task {0} at {1} (Reason: {2}). Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltTaskContext.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/workspace/DefaultTaskContext.java,v retrieving revision 1.8 diff -u -r1.8 DefaultTaskContext.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltTaskContext.java 20 Jan 2002 17:32:58 -0000 1.8 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltTaskContext.java 24 Jan 2002 11:18:32 -0000 @@ -14,6 +14,9 @@ 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.ComponentException; +import org.apache.avalon.framework.component.ComponentManager; +import org.apache.avalon.framework.component.Composable; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.context.DefaultContext; import org.apache.myrmidon.api.TaskContext; @@ -26,11 +29,13 @@ */ public class DefaultTaskContext extends DefaultContext - implements TaskContext + implements TaskContext, Composable { private final static Resources REZ =3D ResourceManager.getPackageResources( DefaultTaskContext.class = ); =20 + private ComponentManager m_componentManager; + /** * Constructor for Context with no parent contexts. */ @@ -55,6 +60,11 @@ super( parent ); } =20 + public void compose( ComponentManager manager ) + { + m_componentManager =3D manager; + } + /** * Retrieve Name of tasklet. * @@ -180,7 +190,8 @@ =20 if( CURRENT =3D=3D scope ) { put( name, value ); - } else if( PARENT =3D=3D scope ) + } + else if( PARENT =3D=3D scope ) { if( null =3D=3D getParent() ) { @@ -207,6 +218,36 @@ { final String message =3D REZ.getString( "bad-scope.error", = scope ); throw new IllegalStateException( message ); + } + } + + /** + * Locates a service, by role name. + * + * @param role the service role. + */ + public Object getService( String role ) + throws TaskException + { + if( m_componentManager !=3D null ) + { + try + { + return m_componentManager.lookup( role ); + } + catch( ComponentException e ) + { + final String message =3D REZ.getString( = "bad-find-service.error", role ); + throw new TaskException( message, e ); + } + } + else if( getParent() !=3D null ) + { + return ( (TaskContext) getParent() ).getService( role ); + } + else { + final String message =3D REZ.getString( = "bad-find-service.error", role ); + throw new TaskException( message ); } } =20 Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltWorkspace.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/workspace/DefaultWorkspace.java,v retrieving revision 1.12 diff -u -r1.12 DefaultWorkspace.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltWorkspace.java 20 Jan 2002 17:32:58 -0000 1.12 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Defau= ltWorkspace.java 24 Jan 2002 11:18:33 -0000 @@ -19,7 +19,6 @@ 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; @@ -219,9 +218,6 @@ private ExecutionFrame createExecutionFrame( final Project project = ) throws TaskException { - final TaskContext context =3D new DefaultTaskContext( = m_baseContext ); - context.setProperty( TaskContext.BASE_DIRECTORY, = project.getBaseDirectory() ); - //Create per frame ComponentManager final DefaultComponentManager componentManager =3D new DefaultComponentManager( m_componentManager ); @@ -267,6 +263,11 @@ componentManager.put( Project.ROLE + "/" + name, other ); } =20 + // Create and configure the context + final DefaultTaskContext context =3D new DefaultTaskContext( = m_baseContext ); + context.setProperty( TaskContext.BASE_DIRECTORY, = project.getBaseDirectory() ); + context.compose( componentManager ); + final DefaultExecutionFrame frame =3D new = DefaultExecutionFrame(); =20 try @@ -276,7 +277,6 @@ =20 frame.enableLogging( logger ); frame.contextualize( context ); - frame.compose( componentManager ); } catch( final Exception e ) { @@ -401,10 +401,10 @@ return; } } - catch( final ContextException ce ) + catch( final TaskException te ) { final String message =3D REZ.getString( = "condition-eval.error", name ); - throw new TaskException( message, ce ); + throw new TaskException( message, te ); } } =20 Index: = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resou= rces.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/components/workspace/Resources.properties,v retrieving revision 1.4 diff -u -r1.4 Resources.properties --- = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resou= rces.properties 5 Jan 2002 03:03:55 -0000 1.4 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resou= rces.properties 24 Jan 2002 11:18:33 -0000 @@ -15,7 +15,9 @@ no-name.error=3DNo Name in Context. no-dir.error=3DNo Base Directory in Context. no-parent.error=3DCan't set a property with parent scope when context = has no parent. +bad-find-services.error=3DUnable to find service "{0}". bad-scope.error=3DUnknown property scope! ({0}). bad-property.error=3DProperty {0} must have a value of type {1}. null-resolved-value.error=3DValue "{0}" resolved to null. -bad-resolve.error=3DUnable to resolve value "{0}". \ No newline at end of file +bad-resolve.error=3DUnable to resolve value "{0}". +bad-find-service.error=3DCould not find service "{0}". Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContaine= rTask.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/AbstractContainerTask.java,v retrieving revision 1.10 diff -u -r1.10 AbstractContainerTask.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContaine= rTask.java 20 Jan 2002 17:32:56 -0000 1.10 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContaine= rTask.java 24 Jan 2002 11:18:33 -0000 @@ -9,15 +9,12 @@ =20 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.converter.Converter; import org.apache.myrmidon.converter.ConverterException; import org.apache.myrmidon.interfaces.configurer.Configurer; @@ -31,7 +28,6 @@ */ public abstract class AbstractContainerTask extends AbstractTask - implements Composable { private final static Resources REZ =3D ResourceManager.getPackageResources( = AbstractContainerTask.class ); @@ -45,12 +41,25 @@ ///For executing sub-elements as tasks private Executor m_executor; =20 - public void compose( final ComponentManager componentManager ) - throws ComponentException + /** + * Retrieve context from container. + * + * @param context the context + */ + public void contextualize( Context context ) + throws ContextException { - m_configurer =3D (Configurer)componentManager.lookup( = Configurer.ROLE ); - m_converter =3D (MasterConverter)componentManager.lookup( = MasterConverter.ROLE ); - m_executor =3D (Executor)componentManager.lookup( Executor.ROLE = ); + super.contextualize( context ); + try + { + m_configurer =3D (Configurer)getService( Configurer.ROLE ); + m_converter =3D (MasterConverter)getService( = MasterConverter.ROLE ); + m_executor =3D (Executor)getService( Executor.ROLE ); + } + catch( TaskException te ) + { + throw new ContextException(te.getMessage(), te); + } } =20 /** Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.= java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/AbstractTypeDef.java,v retrieving revision 1.11 diff -u -r1.11 AbstractTypeDef.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.= java 20 Jan 2002 17:32:56 -0000 1.11 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.= java 24 Jan 2002 11:18:33 -0000 @@ -12,9 +12,6 @@ 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 @@ */ public abstract class AbstractTypeDef extends AbstractTask - implements Composable { private final static Resources REZ =3D ResourceManager.getPackageResources( AbstractTypeDef.class ); @@ -39,15 +35,6 @@ 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 =3D (TypeManager)componentManager.lookup( = TypeManager.ROLE ); - m_roleManager =3D (RoleManager)componentManager.lookup( = RoleManager.ROLE ); - } =20 public void setLib( final File lib ) { @@ -80,15 +67,17 @@ } =20 final String typeName =3D getTypeName(); - final String role =3D m_roleManager.getRoleForName( typeName ); + final RoleManager roleManager =3D (RoleManager)getService( = RoleManager.ROLE ); + final String role =3D roleManager.getRoleForName( typeName ); =20 final ClassLoader classLoader =3D createClassLoader(); final DefaultTypeFactory factory =3D new DefaultTypeFactory( = classLoader ); factory.addNameClassMapping( m_name, m_className ); =20 + final TypeManager typeManager =3D (TypeManager)getService( = TypeManager.ROLE ); try { - m_typeManager.registerType( role, m_name, factory ); + typeManager.registerType( role, m_name, factory ); } catch( final TypeException te ) { @@ -114,11 +103,6 @@ final String message =3D REZ.getString( = "typedef.bad-classloader.error", e ); throw new TaskException( message, e ); } - } - - protected final TypeManager getTypeManager() - { - return m_typeManager; } =20 protected abstract String getTypeName(); Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/Condition.java,v retrieving revision 1.9 diff -u -r1.9 Condition.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java = 22 Jan 2002 11:46:30 -0000 1.9 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java = 24 Jan 2002 11:18:34 -0000 @@ -45,7 +45,7 @@ } =20 public boolean evaluate( final TaskContext context ) - throws ContextException + throws TaskException { boolean result =3D false; =20 @@ -66,8 +66,9 @@ } } } - catch( final TaskException te ) + catch( final ContextException ce ) { + // Unknown property result =3D false; } /* Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/Pattern.java,v retrieving revision 1.12 diff -u -r1.12 Pattern.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java 23 = Jan 2002 10:18:23 -0000 1.12 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java 24 = Jan 2002 11:18:34 -0000 @@ -9,10 +9,8 @@ =20 import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.avalon.framework.context.ContextException; -import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskContext; -import org.apache.tools.ant.Project; +import org.apache.myrmidon.api.TaskException; =20 /** * Basic data type for holding patterns. @@ -103,7 +101,7 @@ return getName(); } } - catch( final ContextException ce ) + catch( final TaskException te ) { //ignore for the moment } Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.proper= ties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/Resources.properties,v retrieving revision 1.3 diff -u -r1.3 Resources.properties --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.proper= ties 16 Dec 2001 12:10:29 -0000 1.3 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.proper= ties 24 Jan 2002 11:18:34 -0000 @@ -11,7 +11,6 @@ =20 pattern.ifelse-duplicate.error=3DCan only set one of if/else for = pattern data type. =20 -type.no-factory.error=3DUnable to retrieve DataType factory from = TypeManager. type.no-create.error=3DUnable to create datatype. type.no-id.error=3DId must be specified. =20 Index: = proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask= .java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/framework/TypeInstanceTask.java,v retrieving revision 1.8 diff -u -r1.8 TypeInstanceTask.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask= .java 20 Jan 2002 17:32:56 -0000 1.8 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask= .java 24 Jan 2002 11:18:34 -0000 @@ -9,17 +9,13 @@ =20 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; =20 /** * This is the property "task" to declare a binding of a datatype to a = name. @@ -36,24 +32,6 @@ private String m_id; private Object m_value; private boolean m_localScope =3D true; - private TypeFactory m_factory; - - public void compose( final ComponentManager componentManager ) - throws ComponentException - { - super.compose( componentManager ); - - final TypeManager typeManager =3D = (TypeManager)componentManager.lookup( TypeManager.ROLE ); - try - { - m_factory =3D typeManager.getFactory( DataType.ROLE ); - } - catch( final TypeException te ) - { - final String message =3D REZ.getString( = "type.no-factory.error" ); - throw new ComponentException( message, te ); - } - } =20 public void configure( final Configuration configuration ) throws ConfigurationException @@ -85,7 +63,8 @@ =20 try { - m_value =3D m_factory.create( configuration.getName() ); + final TypeFactory typeFactory =3D getTypeFactory( = DataType.ROLE ); + m_value =3D typeFactory.create( configuration.getName() ); } catch( final Exception e ) { Index: = proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/executor/Execut= ionFrame.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/java/org/apache/myrmido= n/interfaces/executor/ExecutionFrame.java,v retrieving revision 1.5 diff -u -r1.5 ExecutionFrame.java --- = proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/executor/Execut= ionFrame.java 23 Dec 2001 06:25:36 -0000 1.5 +++ = proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/executor/Execut= ionFrame.java 24 Jan 2002 11:18:35 -0000 @@ -24,6 +24,4 @@ Logger getLogger(); =20 TaskContext getContext(); - - ComponentManager getComponentManager(); } Index: proposal/myrmidon/src/make/sample.ant =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/make/sample.ant,v retrieving revision 1.24 diff -u -r1.24 sample.ant --- proposal/myrmidon/src/make/sample.ant 19 Jan 2002 07:44:26 -0000 = 1.24 +++ proposal/myrmidon/src/make/sample.ant 24 Jan 2002 11:18:37 -0000 @@ -81,10 +81,10 @@ =20 - + =20 - + =20 Index: = proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer= /DefaultConfigurerTest.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: = /home/cvspublic/jakarta-ant/proposal/myrmidon/src/testcases/org/apache/my= rmidon/components/configurer/DefaultConfigurerTest.java,v retrieving revision 1.1 diff -u -r1.1 DefaultConfigurerTest.java --- = proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer= /DefaultConfigurerTest.java 22 Jan 2002 11:16:02 -0000 1.1 +++ = proposal/myrmidon/src/testcases/org/apache/myrmidon/components/configurer= /DefaultConfigurerTest.java 24 Jan 2002 11:18:38 -0000 @@ -101,13 +101,17 @@ m_componentManager.put( Configurer.ROLE, component ); components.add( component ); =20 + // Setup a context + m_context =3D new DefaultTaskContext(); + components.add( m_context ); + // Log enable the components for( Iterator iterator =3D components.iterator(); = iterator.hasNext(); ) { - component =3D (Component)iterator.next(); - if( component instanceof LogEnabled ) + Object obj =3D iterator.next(); + if( obj instanceof LogEnabled ) { - final LogEnabled logEnabled =3D (LogEnabled)component; + final LogEnabled logEnabled =3D (LogEnabled)obj; logEnabled.enableLogging( m_logger ); } } @@ -115,21 +119,21 @@ // Compose the components for( Iterator iterator =3D components.iterator(); = iterator.hasNext(); ) { - component =3D (Component)iterator.next(); - if( component instanceof Composable ) + Object obj =3D iterator.next(); + if( obj instanceof Composable ) { - final Composable composable =3D (Composable)component; + final Composable composable =3D (Composable)obj; composable.compose( m_componentManager ); } } =20 + // Configure the context + final File baseDir =3D new File( "." ).getAbsoluteFile(); + m_context.setProperty( TaskContext.BASE_DIRECTORY, baseDir ); + // Find the configurer m_configurer =3D (Configurer)m_componentManager.lookup( = Configurer.ROLE ); =20 - // Setup a context - m_context =3D new DefaultTaskContext(); - final File baseDir =3D new File( "." ).getAbsoluteFile(); - m_context.setProperty( TaskContext.BASE_DIRECTORY, baseDir ); } =20 /** ------=_NextPart_000_00C6_01C1A51D.5A6270C0 Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: ------=_NextPart_000_00C6_01C1A51D.5A6270C0--