Configurable
is that the
- * instantiating entity must call the configure
- * method before it is valid. The configure
method
- * must be called after the constructor, and before any other method.
- *
- * @author Federico Barbieri
- * @author Pierpaolo Fumagalli
- * @author Stefano Mazzocchi
- * @author Berin Loritsch
- * @author Peter Donald
- */
-public interface Configurable
-{
- /**
- * Pass the Configuration
to the Configurable
- * class. This method must always be called after the constructor
- * and before any other method.
- *
- * @param configuration the class configurations.
- */
- void configure( Configuration configuration )
- throws ConfigurationException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/Configuration.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/Configuration.java
deleted file mode 100644
index f696f4847..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/Configuration.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.configuration;
-
-import java.util.Iterator;
-
-/**
- * Fork of Avalon code that will be folded back when they get equivelent facilties.
- * Note that the code is different package so it should not cause any issues.
- *
- * @author Peter Donald
- */
-public interface Configuration
- extends org.apache.avalon.Configuration
-{
- /**
- * Retrieve a list of all child names.
- *
- * @return the child names
- */
- Iterator getChildren();
-
- /**
- * Retrieve a list of all attribute names.
- *
- * @return the attribute names
- */
- Iterator getAttributeNames();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java
deleted file mode 100644
index b2d39f260..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.configuration;
-
-import org.xml.sax.SAXException;
-
-/**
- * Fork of Avalon code that will be folded back when they get equivelent facilties.
- * Note that the code is different package so it should not cause any issues.
- *
- * @author Peter Donald
- */
-public class ConfigurationBuilder
- extends org.apache.avalon.DefaultConfigurationBuilder
-{
- protected org.apache.avalon.SAXConfigurationHandler getHandler()
- {
- return new SAXConfigurationHandler();
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/Configurer.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/Configurer.java
index 9bb25c288..50f10e4a2 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/Configurer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/configuration/Configurer.java
@@ -7,13 +7,14 @@
*/
package org.apache.ant.configuration;
-import org.apache.avalon.Component;
-import org.apache.avalon.ConfigurationException;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.context.Context;
/**
* Class used to configure tasks.
- *
+ *
* @author Peter Donald
*/
public interface Configurer
@@ -21,7 +22,7 @@ public interface Configurer
{
/**
* Configure an object based on a configuration in a particular context.
- * This configuring can be done in different ways for different
+ * This configuring can be done in different ways for different
* configurers.
*
* @param object the object
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfiguration.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfiguration.java
deleted file mode 100644
index 1bcd88f3a..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfiguration.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.configuration;
-
-import java.util.Iterator;
-
-/**
- * Fork of Avalon code that will be folded back when they get equivelent facilties.
- * Note that the code is different package so it should not cause any issues.
- *
- * @author Peter Donald
- */
-public class DefaultConfiguration
- extends org.apache.avalon.DefaultConfiguration
- implements Configuration
-{
- public DefaultConfiguration( final String localname, final String location )
- {
- super( localname, location );
- }
-
- /**
- * Retrieve a list of all child names.
- *
- * @return the child names
- */
- public Iterator getChildren()
- {
- if( null == m_children ) return EMPTY_ITERATOR;
- else return m_children.iterator();
- }
-
- /**
- * Retrieve a list of all attribute names.
- *
- * @return the attribute names
- */
- public Iterator getAttributeNames()
- {
- if( null == m_attributes ) return EMPTY_ITERATOR;
- else return m_attributes.keySet().iterator();
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java
index 151650634..337fba81b 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java
@@ -13,32 +13,34 @@ import java.util.ArrayList;
import java.util.Iterator;
import org.apache.ant.convert.Converter;
import org.apache.ant.convert.ConverterException;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.ConfigurationException;
-import org.apache.avalon.Context;
-import org.apache.avalon.Loggable;
-import org.apache.avalon.util.PropertyException;
-import org.apache.avalon.util.PropertyUtil;
+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.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.logger.AbstractLoggable;
+import org.apache.avalon.framework.logger.Loggable;
import org.apache.log.Logger;
/**
* Class used to configure tasks.
- *
+ *
* @author Peter Donald
*/
public class DefaultConfigurer
extends AbstractLoggable
- implements Configurer, Composer, Loggable
+ implements Configurer, Composable, Loggable
{
- protected final static String RESERVED_ATTRIBUTES[] =
+ protected final static String RESERVED_ATTRIBUTES[] =
{
"id"
};
- protected final static String RESERVED_ELEMENTS[] =
+ protected final static String RESERVED_ELEMENTS[] =
{
"content"
};
@@ -47,16 +49,16 @@ public class DefaultConfigurer
protected Converter m_converter;
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_converter = (Converter)componentManager.lookup( "org.apache.ant.convert.Converter" );
}
-
+
/**
* Configure a task based on a configuration in a particular context.
- * This configuring can be done in different ways for different
- * configurers.
- * This one does it by first checking if object implements Configurable
+ * This configuring can be done in different ways for different
+ * configurers.
+ * This one does it by first checking if object implements Configurable
* and if it does will pass the task the configuration - else it will use
* ants rules to map configuration to types
*
@@ -65,59 +67,59 @@ public class DefaultConfigurer
* @param context the Context
* @exception ConfigurationException if an error occurs
*/
- public void configure( final Object object,
+ public void configure( final Object object,
final Configuration configuration,
final Context context )
throws ConfigurationException
{
if( DEBUG )
{
- m_logger.debug( "Configuring " + object );
+ getLogger().debug( "Configuring " + object );
}
if( object instanceof Configurable )
{
- if( DEBUG )
+ if( DEBUG )
{
- m_logger.debug( "Configuring object via Configurable interface" );
+ getLogger().debug( "Configuring object via Configurable interface" );
}
((Configurable)object).configure( configuration );
}
else
{
- if( DEBUG )
+ if( DEBUG )
{
- m_logger.debug( "Configuring object via Configurable reflection" );
+ getLogger().debug( "Configuring object via Configurable reflection" );
}
- final Iterator attributes = configuration.getAttributeNames();
- while( attributes.hasNext() )
+ final String[] attributes = configuration.getAttributeNames();
+ for( int i = 0; i < attributes.length; i++ )
{
- final String name = (String)attributes.next();
+ final String name = attributes[ i ];
final String value = configuration.getAttribute( name );
-
- if( DEBUG )
+
+ if( DEBUG )
{
- m_logger.debug( "Configuring attribute name=" + name +
+ getLogger().debug( "Configuring attribute name=" + name +
" value=" + value );
}
-
+
configureAttribute( object, name, value, context );
}
- final Iterator elements = configuration.getChildren();
-
- while( elements.hasNext() )
+ final Configuration[] children = configuration.getChildren();
+
+ for( int i = 0; i < children.length; i++ )
{
- final Configuration element = (Configuration)elements.next();
-
- if( DEBUG )
+ final Configuration child = children[ i ];
+
+ if( DEBUG )
{
- m_logger.debug( "Configuring subelement name=" + element.getName() );
+ getLogger().debug( "Configuring subelement name=" + child.getName() );
}
-
- configureElement( object, element, context );
+
+ configureElement( object, child, context );
}
final String content = configuration.getValue( null );
@@ -126,11 +128,11 @@ public class DefaultConfigurer
{
if( !content.trim().equals( "" ) )
{
- if( DEBUG )
+ if( DEBUG )
{
- m_logger.debug( "Configuring content " + content );
+ getLogger().debug( "Configuring content " + content );
}
-
+
configureContent( object, content, context );
}
}
@@ -145,7 +147,7 @@ public class DefaultConfigurer
* @param context the Context
* @exception ConfigurationException if an error occurs
*/
- protected void configureContent( final Object object,
+ protected void configureContent( final Object object,
final String content,
final Context context )
throws ConfigurationException
@@ -153,8 +155,8 @@ public class DefaultConfigurer
setValue( object, "addContent", content, context );
}
- protected void configureAttribute( final Object object,
- final String name,
+ protected void configureAttribute( final Object object,
+ final String name,
final String value,
final Context context )
throws ConfigurationException
@@ -168,7 +170,7 @@ public class DefaultConfigurer
setValue( object, methodName, value, context );
}
- protected void setValue( final Object object,
+ protected void setValue( final Object object,
final String methodName,
final String value,
final Context context )
@@ -182,8 +184,8 @@ public class DefaultConfigurer
if( 0 == methods.length )
{
- throw new ConfigurationException( "Unable to set attribute via " + methodName +
- " due to not finding any appropriate " +
+ throw new ConfigurationException( "Unable to set attribute via " + methodName +
+ " due to not finding any appropriate " +
"accessor method" );
}
@@ -198,7 +200,7 @@ public class DefaultConfigurer
{
try
{
- final Object objectValue =
+ final Object objectValue =
PropertyUtil.resolveProperty( value, context, false );
setValue( object, objectValue, methods, context );
@@ -210,8 +212,8 @@ public class DefaultConfigurer
}
}
- protected void setValue( final Object object,
- Object value,
+ protected void setValue( final Object object,
+ Object value,
final Method methods[],
final Context context )
throws ConfigurationException
@@ -226,14 +228,14 @@ public class DefaultConfigurer
return;
}
}
-
- throw new ConfigurationException( "Unable to set attribute via " +
- methods[ 0 ].getName() + " as could not convert " +
+
+ throw new ConfigurationException( "Unable to set attribute via " +
+ methods[ 0 ].getName() + " as could not convert " +
source + " to a matching type" );
}
- protected boolean setValue( final Object object,
- Object value,
+ protected boolean setValue( final Object object,
+ Object value,
final Method method,
final Class sourceClass,
final String source,
@@ -245,7 +247,7 @@ public class DefaultConfigurer
{
parameterType = getComplexTypeFor( parameterType );
}
-
+
try
{
value = m_converter.convert( parameterType, value, context );
@@ -254,18 +256,18 @@ public class DefaultConfigurer
{
if( DEBUG )
{
- m_logger.debug( "Failed to find converter ", ce );
+ getLogger().debug( "Failed to find converter ", ce );
}
return false;
}
catch( final Exception e )
{
- throw new ConfigurationException( "Error converting attribute for " +
+ throw new ConfigurationException( "Error converting attribute for " +
method.getName(),
e );
}
-
+
try
{
method.invoke( object, new Object[] { value } );
@@ -273,13 +275,13 @@ public class DefaultConfigurer
catch( final IllegalAccessException iae )
{
//should never happen ....
- throw new ConfigurationException( "Error retrieving methods with " +
+ throw new ConfigurationException( "Error retrieving methods with " +
"correct access specifiers",
iae );
}
catch( final InvocationTargetException ite )
{
- throw new ConfigurationException( "Error calling method attribute " +
+ throw new ConfigurationException( "Error calling method attribute " +
method.getName(),
ite );
}
@@ -308,11 +310,11 @@ public class DefaultConfigurer
{
final Method methods[] = clazz.getMethods();
final ArrayList matches = new ArrayList();
-
+
for( int i = 0; i < methods.length; i++ )
{
final Method method = methods[ i ];
- if( methodName.equals( method.getName() ) &&
+ if( methodName.equals( method.getName() ) &&
Method.PUBLIC == (method.getModifiers() & Method.PUBLIC) )
{
if( method.getReturnType().equals( Void.TYPE ) )
@@ -333,11 +335,11 @@ public class DefaultConfigurer
{
final Method methods[] = clazz.getMethods();
final ArrayList matches = new ArrayList();
-
+
for( int i = 0; i < methods.length; i++ )
{
final Method method = methods[ i ];
- if( methodName.equals( method.getName() ) &&
+ if( methodName.equals( method.getName() ) &&
Method.PUBLIC == (method.getModifiers() & Method.PUBLIC) )
{
final Class returnType = method.getReturnType();
@@ -352,7 +354,7 @@ public class DefaultConfigurer
}
}
}
-
+
return (Method[])matches.toArray( new Method[0] );
}
@@ -364,10 +366,10 @@ public class DefaultConfigurer
protected String getJavaNameFor( final String name )
{
final StringBuffer sb = new StringBuffer();
-
+
int index = name.indexOf( '-' );
int last = 0;
-
+
while( -1 != index )
{
final String word = name.substring( last, index ).toLowerCase();
@@ -376,16 +378,16 @@ public class DefaultConfigurer
last = index + 1;
index = name.indexOf( '-', last );
}
-
+
index = name.length();
final String word = name.substring( last, index ).toLowerCase();
sb.append( Character.toUpperCase( word.charAt( 0 ) ) );
sb.append( word.substring( 1, word.length() ) );
-
+
return sb.toString();
- }
+ }
- protected void configureElement( final Object object,
+ protected void configureElement( final Object object,
final Configuration configuration,
final Context context )
throws ConfigurationException
@@ -403,7 +405,7 @@ public class DefaultConfigurer
// slow. Need to cache results per class etc.
final Class clazz = object.getClass();
Method methods[] = getMethodsFor( clazz, "add" + javaName );
-
+
if( 0 != methods.length )
{
//guess it is first method ????
@@ -415,8 +417,8 @@ public class DefaultConfigurer
if( 0 == methods.length )
{
- throw new ConfigurationException( "Unable to set attribute " + javaName +
- " due to not finding any appropriate " +
+ throw new ConfigurationException( "Unable to set attribute " + javaName +
+ " due to not finding any appropriate " +
"accessor method" );
}
@@ -425,7 +427,7 @@ public class DefaultConfigurer
}
}
- protected void createElement( final Object object,
+ protected void createElement( final Object object,
final Method method,
final Configuration configuration,
final Context context )
@@ -446,7 +448,7 @@ public class DefaultConfigurer
}
}
- protected void addElement( final Object object,
+ protected void addElement( final Object object,
final Method method,
final Configuration configuration,
final Context context )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/SAXConfigurationHandler.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/SAXConfigurationHandler.java
deleted file mode 100644
index 6802bdb0f..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/configuration/SAXConfigurationHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.configuration;
-
-/**
- * Fork of Avalon code that will be folded back when they get equivelent facilties.
- * Note that the code is different package so it should not cause any issues.
- *
- * @author Peter Donald
- */
-public class SAXConfigurationHandler
- extends org.apache.avalon.SAXConfigurationHandler
-{
- protected org.apache.avalon.DefaultConfiguration
- createConfiguration( final String localName, final String location )
- {
- return new DefaultConfiguration( localName, location );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java
index f1f21e06e..63b35fce2 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.convert;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* Instances of this interface are used to convert between different types.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java
index 97bf38992..efb003a8f 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.convert;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* Instances of this interface are used to convert between different types.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterEngine.java b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterEngine.java
index 11337a707..3205d9c8e 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterEngine.java
@@ -8,8 +8,8 @@
package org.apache.ant.convert.engine;
import org.apache.ant.convert.Converter;
-import org.apache.avalon.Component;
-import org.apache.avalon.camelot.LocatorRegistry;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.camelot.Registry;
/**
* Converter engine to handle converting between types.
@@ -24,7 +24,7 @@ public interface ConverterEngine
*
* @return the LocatorRegistry
*/
- LocatorRegistry getRegistry();
+ Registry getRegistry();
/**
* Get registry for converterInfo objects.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterInfo.java b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterInfo.java
index d69dc3c93..4e8683913 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterInfo.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterInfo.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.convert.engine;
-import org.apache.avalon.camelot.Info;
+import org.apache.avalon.framework.camelot.Info;
/**
* This info represents meta-information about a converter.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterRegistry.java b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterRegistry.java
index d0478be4a..b00fe3db9 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterRegistry.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/ConverterRegistry.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.convert.engine;
-import org.apache.avalon.camelot.Registry;
+import org.apache.avalon.framework.camelot.Registry;
/**
* Interface for registry for ConverterInfos.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterEngine.java b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterEngine.java
index 7845fa0f4..b079a53d3 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterEngine.java
@@ -10,16 +10,16 @@ package org.apache.ant.convert.engine;
import org.apache.ant.AntException;
import org.apache.ant.convert.Converter;
import org.apache.ant.convert.ConverterException;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.Context;
-import org.apache.avalon.camelot.DefaultFactory;
-import org.apache.avalon.camelot.DefaultLocatorRegistry;
-import org.apache.avalon.camelot.Factory;
-import org.apache.avalon.camelot.Locator;
-import org.apache.avalon.camelot.LocatorRegistry;
+import org.apache.avalon.framework.logger.AbstractLoggable;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.camelot.DefaultFactory;
+import org.apache.avalon.framework.camelot.DefaultRegistry;
+import org.apache.avalon.framework.camelot.Factory;
+import org.apache.avalon.framework.camelot.Locator;
+import org.apache.avalon.framework.camelot.Registry;
/**
* Converter engine to handle converting between types.
@@ -28,12 +28,12 @@ import org.apache.avalon.camelot.LocatorRegistry;
*/
public class DefaultConverterEngine
extends AbstractLoggable
- implements ConverterEngine, Composer
+ implements ConverterEngine, Composable
{
protected final static boolean DEBUG = false;
protected Factory m_factory;
- protected LocatorRegistry m_registry = new DefaultLocatorRegistry();
+ protected Registry m_registry = new DefaultRegistry( Locator.class );
protected ConverterRegistry m_infoRegistry = new DefaultConverterRegistry();
/**
@@ -41,7 +41,7 @@ public class DefaultConverterEngine
*
* @return the LocatorRegistry
*/
- public LocatorRegistry getRegistry()
+ public Registry getRegistry()
{
return m_registry;
}
@@ -60,12 +60,12 @@ public class DefaultConverterEngine
* Retrieve relevent services needed to deploy.
*
* @param componentManager the ComponentManager
- * @exception ComponentManagerException if an error occurs
+ * @exception ComponentException if an error occurs
*/
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
- m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" );
+ m_factory = (Factory)componentManager.lookup( "org.apache.avalon.framework.camelot.Factory" );
}
/**
@@ -89,8 +89,8 @@ public class DefaultConverterEngine
if( DEBUG )
{
- m_logger.debug( "Looking for converter from " + originalClass.getName() +
- " to " + destination.getName() );
+ getLogger().debug( "Looking for converter from " + originalClass.getName() +
+ " to " + destination.getName() );
}
//TODO: Start searching inheritance hierarchy for converter
@@ -106,7 +106,7 @@ public class DefaultConverterEngine
}
//TODO: Start caching converters instead of repeatedly instantiating em.
- final Locator locator = m_registry.getLocator( name );
+ final Locator locator = (Locator)m_registry.getInfo( name, Locator.class );
final Converter converter = (Converter)m_factory.create( locator, Converter.class );
return converter.convert( destination, original, context );
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterRegistry.java b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterRegistry.java
index 99c87c674..dfb6bfaa4 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterRegistry.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/convert/engine/DefaultConverterRegistry.java
@@ -8,9 +8,9 @@
package org.apache.ant.convert.engine;
import java.util.HashMap;
-import org.apache.avalon.camelot.DefaultRegistry;
-import org.apache.avalon.camelot.Info;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.camelot.DefaultRegistry;
+import org.apache.avalon.framework.camelot.Info;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* Default implementation of ConverterInfo registry.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java
index b1ea3a26d..33807fb90 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java
@@ -8,10 +8,11 @@
package org.apache.ant.launcher;
import java.io.File;
-import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
+import java.util.ArrayList;
import java.util.StringTokenizer;
/**
@@ -26,12 +27,12 @@ public final class AntLoader
/**
* Magic entry point.
*
- * @param argsthe CLI arguments
+ * @param args the CLI arguments
* @exception Exception if an error occurs
*/
- public final static void main( final String[] args )
+ public final static void main( final String[] args )
throws Exception
- {
+ {
try
{
//actually try to discover the install directory based on where
@@ -40,40 +41,67 @@ public final class AntLoader
System.setProperty( "ant.home", installDirectory.toString() );
//setup classloader appropriately for myrmidon jar
- final File archive =
- new File( installDirectory, "lib" + File.separator + "myrmidon.jar" );
- final AntClassLoader classLoader =
- new AntClassLoader( new URL[] { archive.toURL() } );
+ final File libDir = new File( installDirectory, "lib" );
+ final URL[] urls = buildURLList( libDir );
+
+ final AntClassLoader classLoader = new AntClassLoader( urls );
//load class and retrieve appropriate main method.
final Class clazz = classLoader.loadClass( "org.apache.ant.Main" );
final Method method = clazz.getMethod( "main", new Class[] { args.getClass() } );
-
+
//kick the tires and light the fires....
method.invoke( null, new Object[] { args } );
}
- catch( final InvocationTargetException ite )
+ catch( final InvocationTargetException ite )
{
System.err.println( "Error: " + ite.getTargetException().getMessage() );
ite.getTargetException().printStackTrace();
}
- catch( final Throwable throwable )
+ catch( final Throwable throwable )
{
System.err.println( "Error: " + throwable.getMessage() );
throwable.printStackTrace();
}
}
+ private final static URL[] buildURLList( final File dir )
+ throws Exception
+ {
+ final ArrayList urlList = new ArrayList();
+
+ final File[] contents = dir.listFiles();
+
+ if( null == contents )
+ {
+ return new URL[ 0 ];
+ }
+
+ for( int i = 0; i < contents.length; i++ )
+ {
+ final File file = contents[ i ];
+
+ if( !file.isFile() || !file.canRead() )
+ {
+ continue;
+ }
+
+ urlList.add( file.toURL() );
+ }
+
+ return (URL[])urlList.toArray( new URL[ 0 ] );
+ }
+
/**
* Finds the ant.jar file in the classpath.
*/
- protected final static File findInstallDir()
+ private final static File findInstallDir()
throws Exception
{
final String classpath = System.getProperty( "java.class.path" );
final String pathSeparator = System.getProperty( "path.separator" );
final StringTokenizer tokenizer = new StringTokenizer( classpath, pathSeparator );
-
+
while( tokenizer.hasMoreTokens() )
{
final String element = tokenizer.nextToken();
@@ -82,16 +110,16 @@ public final class AntLoader
{
File file = (new File( element )).getAbsoluteFile();
file = file.getParentFile();
-
+
if( null != file )
{
file = file.getParentFile();
}
- return file;
+ return file;
}
}
-
+
throw new Exception( "Unable to locate ant.jar in classpath" );
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/AntCall.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/AntCall.java
index f333737ab..21bc9f219 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/AntCall.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/AntCall.java
@@ -14,10 +14,10 @@ import org.apache.ant.project.ProjectEngine;
import org.apache.ant.tasklet.AbstractTasklet;
import org.apache.ant.tasklet.DefaultTaskletContext;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.context.Context;
/**
* This is abstract base class for tasklets.
@@ -26,7 +26,7 @@ import org.apache.avalon.Context;
*/
public class AntCall
extends AbstractTasklet
- implements Composer
+ implements Composable
{
protected ProjectEngine m_projectEngine;
protected Project m_project;
@@ -42,7 +42,7 @@ public class AntCall
}
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_componentManager = componentManager;
m_projectEngine = (ProjectEngine)componentManager.
@@ -66,7 +66,7 @@ public class AntCall
return property;
}
- public void run()
+ public void execute()
throws AntException
{
if( null == m_target )
@@ -78,7 +78,7 @@ public class AntCall
for( int i = 0; i < size; i++ )
{
final Property property = (Property)m_properties.get( i );
- property.run();
+ property.execute();
}
getLogger().info( "Calling target " + m_target );
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Echo.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Echo.java
index f3c06c547..a405d0aa1 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Echo.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Echo.java
@@ -25,7 +25,7 @@ public class Echo
m_message = message;
}
- public void run()
+ public void execute()
throws AntException
{
getLogger().warn( m_message );
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Property.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Property.java
index 2be4e8b68..d920281c1 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Property.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/Property.java
@@ -9,8 +9,6 @@ package org.apache.ant.modules.basic;
import java.util.Iterator;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configurable;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.configuration.Configurer;
import org.apache.ant.convert.Converter;
import org.apache.ant.tasklet.DataType;
@@ -18,11 +16,13 @@ import org.apache.ant.tasklet.engine.DataTypeEngine;
import org.apache.ant.tasklet.AbstractTasklet;
import org.apache.ant.tasklet.TaskletContext;
import org.apache.ant.tasklet.engine.TaskletEngine;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.ConfigurationException;
-import org.apache.avalon.Resolvable;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.context.Resolvable;
/**
* This is the property "task" to declare a binding of a datatype to a name.
@@ -31,7 +31,7 @@ import org.apache.avalon.Resolvable;
*/
public class Property
extends AbstractTasklet
- implements Configurable, Composer
+ implements Configurable, Composable
{
protected String m_name;
protected Object m_value;
@@ -41,7 +41,7 @@ public class Property
protected Configurer m_configurer;
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_configurer = (Configurer)componentManager.
lookup( "org.apache.ant.configuration.Configurer" );
@@ -55,11 +55,11 @@ public class Property
public void configure( final Configuration configuration )
throws ConfigurationException
{
- final Iterator attributes = configuration.getAttributeNames();
+ final String[] attributes = configuration.getAttributeNames();
- while( attributes.hasNext() )
+ for( int i = 0; i < attributes.length; i++ )
{
- final String name = (String)attributes.next();
+ final String name = attributes[ i ];
final String value = configuration.getAttribute( name );
final Object object = getContext().resolveValue( value );
@@ -105,10 +105,11 @@ public class Property
}
}
- final Iterator children = configuration.getChildren();
- while( children.hasNext() )
+ final Configuration[] children = configuration.getChildren();
+
+ for( int i = 0; i < children.length; i++ )
{
- final Configuration child = (Configuration)children.next();
+ final Configuration child = children[ i ];
try
{
@@ -144,7 +145,7 @@ public class Property
m_localScope = localScope;
}
- public void run()
+ public void execute()
throws AntException
{
if( null == m_name )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToByteConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToByteConverter.java
index 0db19847d..e3a73ec42 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToByteConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToByteConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to byte converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToClassConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToClassConverter.java
index 254f58734..dccb17f06 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToClassConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToClassConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to class converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToDoubleConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToDoubleConverter.java
index 067353578..64f705652 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToDoubleConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToDoubleConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to double converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFileConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFileConverter.java
index 24b1d8be0..136399e77 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFileConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFileConverter.java
@@ -10,7 +10,7 @@ package org.apache.ant.modules.basic;
import java.io.File;
import org.apache.ant.convert.AbstractConverter;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to file converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFloatConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFloatConverter.java
index fab3e8b3a..2d4e36ea9 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFloatConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToFloatConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to float converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToIntegerConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToIntegerConverter.java
index d807666fd..9e98c406c 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToIntegerConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToIntegerConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to integer converter.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToLongConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToLongConverter.java
index 0b61fe330..603a2d145 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToLongConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToLongConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to long converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToShortConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToShortConverter.java
index 7919e648e..491df831a 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToShortConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToShortConverter.java
@@ -8,7 +8,7 @@
package org.apache.ant.modules.basic;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to short converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToURLConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToURLConverter.java
index 9ec3faded..8bb07e43d 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToURLConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/basic/StringToURLConverter.java
@@ -9,7 +9,7 @@ package org.apache.ant.modules.basic;
import java.net.URL;
import org.apache.ant.convert.AbstractConverter;
-import org.apache.avalon.Context;
+import org.apache.avalon.framework.context.Context;
/**
* String to url converter
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
index a42b4ee30..553a2b0ac 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/AbstractResourceRegisterer.java
@@ -13,10 +13,10 @@ import java.net.URL;
import org.apache.ant.AntException;
import org.apache.ant.tasklet.AbstractTasklet;
import org.apache.ant.tasklet.engine.TaskletEngine;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* Method to register a single tasklet.
@@ -25,7 +25,7 @@ import org.apache.avalon.camelot.RegistryException;
*/
public abstract class AbstractResourceRegisterer
extends AbstractTasklet
- implements Composer
+ implements Composable
{
protected String m_lib;
protected String m_name;
@@ -33,7 +33,7 @@ public abstract class AbstractResourceRegisterer
protected TaskletEngine m_engine;
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_engine = (TaskletEngine)componentManager.
lookup( "org.apache.ant.tasklet.engine.TaskletEngine" );
@@ -54,7 +54,7 @@ public abstract class AbstractResourceRegisterer
m_classname = classname;
}
- public void run()
+ public void execute()
throws AntException
{
if( null == m_name )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
index 08e6888e8..cf216d9e3 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterConverter.java
@@ -15,12 +15,12 @@ import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.convert.engine.DefaultConverterInfo;
import org.apache.ant.tasklet.AbstractTasklet;
import org.apache.ant.tasklet.engine.TaskletEngine;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.camelot.DefaultLocator;
-import org.apache.avalon.camelot.DeploymentException;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.camelot.DefaultLocator;
+import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* Method to register a single converter.
@@ -29,7 +29,7 @@ import org.apache.avalon.camelot.RegistryException;
*/
public class RegisterConverter
extends AbstractTasklet
- implements Composer
+ implements Composable
{
protected String m_sourceType;
protected String m_destinationType;
@@ -38,7 +38,7 @@ public class RegisterConverter
protected TaskletEngine m_engine;
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_engine = (TaskletEngine)componentManager.
lookup( "org.apache.ant.tasklet.engine.TaskletEngine" );
@@ -64,7 +64,7 @@ public class RegisterConverter
m_destinationType = destinationType;
}
- public void run()
+ public void execute()
throws AntException
{
if( null == m_classname )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterDataType.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterDataType.java
index dcf325bea..e247e7583 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterDataType.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterDataType.java
@@ -9,9 +9,9 @@ package org.apache.ant.modules.core;
import java.net.URL;
import org.apache.ant.AntException;
-import org.apache.avalon.camelot.DefaultLocator;
-import org.apache.avalon.camelot.DeploymentException;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.camelot.DefaultLocator;
+import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* Method to register a single datatype.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklet.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklet.java
index 3f276fddd..48d2a1579 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklet.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklet.java
@@ -9,9 +9,9 @@ package org.apache.ant.modules.core;
import java.net.URL;
import org.apache.ant.AntException;
-import org.apache.avalon.camelot.DefaultLocator;
-import org.apache.avalon.camelot.DeploymentException;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.camelot.DefaultLocator;
+import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* Method to register a single tasklet.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
index 0fedc8da9..652135905 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/core/RegisterTasklib.java
@@ -13,10 +13,10 @@ import java.net.URL;
import org.apache.ant.AntException;
import org.apache.ant.tasklet.AbstractTasklet;
import org.apache.ant.tasklet.engine.TaskletEngine;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.camelot.DeploymentException;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.camelot.DeploymentException;
/**
* Method to register a tasklib.
@@ -25,13 +25,13 @@ import org.apache.avalon.camelot.DeploymentException;
*/
public class RegisterTasklib
extends AbstractTasklet
- implements Composer
+ implements Composable
{
protected String m_lib;
protected TaskletEngine m_engine;
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_engine = (TaskletEngine)componentManager.
lookup( "org.apache.ant.tasklet.engine.TaskletEngine" );
@@ -42,7 +42,7 @@ public class RegisterTasklib
m_lib = lib;
}
- public void run()
+ public void execute()
throws AntException
{
if( null == m_lib )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/test/ConfigurationTest.java b/proposal/myrmidon/src/java/org/apache/ant/modules/test/ConfigurationTest.java
index 3090fc155..dcfdfb418 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/test/ConfigurationTest.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/test/ConfigurationTest.java
@@ -8,10 +8,10 @@
package org.apache.ant.modules.test;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configurable;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.tasklet.AbstractTasklet;
-import org.apache.avalon.ConfigurationException;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.ConfigurationException;
/**
* This is to test self interpretation of configuration.
@@ -22,7 +22,7 @@ public class ConfigurationTest
extends AbstractTasklet
implements Configurable
{
- protected String m_message;
+ private String m_message;
public void configure( final Configuration configuration )
throws ConfigurationException
@@ -39,7 +39,7 @@ public class ConfigurationTest
}
}
- public void run()
+ public void execute()
throws AntException
{
getLogger().warn( m_message );
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/test/ContentTest.java b/proposal/myrmidon/src/java/org/apache/ant/modules/test/ContentTest.java
index 4cc24b290..cb1a5c177 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/test/ContentTest.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/test/ContentTest.java
@@ -30,7 +30,7 @@ public class ContentTest
}
*/
- public void run()
+ public void execute()
throws AntException
{
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/test/PrimitiveTypesTest.java b/proposal/myrmidon/src/java/org/apache/ant/modules/test/PrimitiveTypesTest.java
index 87a078b4a..598dcc9a8 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/test/PrimitiveTypesTest.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/test/PrimitiveTypesTest.java
@@ -84,7 +84,7 @@ public class PrimitiveTypesTest
getLogger().warn( "setString( " + value + " );" );
}
- public void run()
+ public void execute()
throws AntException
{
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/modules/test/SubElementTest.java b/proposal/myrmidon/src/java/org/apache/ant/modules/test/SubElementTest.java
index c02123e5b..dc9c105c8 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/modules/test/SubElementTest.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/modules/test/SubElementTest.java
@@ -37,7 +37,7 @@ public class SubElementTest
System.out.println( "addBeeper(" + beep + ");" );
}
- public void run()
+ public void execute()
throws AntException
{
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java
index 35898a415..6d4407d72 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java
@@ -11,13 +11,13 @@ import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configuration;
-import org.apache.ant.configuration.ConfigurationBuilder;
-import org.apache.ant.util.Condition;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.ConfigurationException;
-import org.apache.avalon.util.StringUtil;
+import org.apache.ant.util.Condition;
+import org.apache.avalon.framework.ExceptionUtil;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.log.Logger;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -31,11 +31,11 @@ public class DefaultProjectBuilder
extends AbstractLoggable
implements ProjectBuilder
{
- protected ConfigurationBuilder m_builder;
+ protected DefaultConfigurationBuilder m_builder;
public DefaultProjectBuilder()
{
- m_builder = new ConfigurationBuilder();
+ m_builder = new DefaultConfigurationBuilder();
}
/**
@@ -63,7 +63,7 @@ public class DefaultProjectBuilder
/**
* Utility method to build a Configuration tree from a source.
- * Overide this in sub-classes if you want to provide extra
+ * Overide this in sub-classes if you want to provide extra
* functionality (ie xslt/css).
*
* @param location the location
@@ -76,7 +76,7 @@ public class DefaultProjectBuilder
{
try
{
- return (Configuration)m_builder.build( location );
+ return (Configuration)m_builder.buildFromFile( location );
}
catch( final SAXException se )
{
@@ -108,7 +108,7 @@ public class DefaultProjectBuilder
final String projectName = configuration.getAttribute( "name" );
//determine base directory for project
- final File baseDirectory =
+ final File baseDirectory =
(new File( file.getParentFile(), baseDirectoryName )).getAbsoluteFile();
getLogger().debug( "Project " + projectName + " base directory: " + baseDirectory );
@@ -116,7 +116,7 @@ public class DefaultProjectBuilder
//create project and ...
final DefaultProject project = new DefaultProject();
project.setDefaultTargetName( defaultTarget );
-
+
//setup basic context of project
final TaskletContext context = project.getContext();
context.setProperty( TaskletContext.BASE_DIRECTORY, baseDirectory );
@@ -136,15 +136,15 @@ public class DefaultProjectBuilder
* @param configuration the Configuration
* @exception AntException if an error occurs
*/
- protected void buildTopLevelProject( final DefaultProject project,
+ protected void buildTopLevelProject( final DefaultProject project,
final Configuration configuration )
throws AntException
{
- final Iterator elements = configuration.getChildren();
+ final Configuration[] children = configuration.getChildren();
- while( elements.hasNext() )
+ for( int i = 0; i < children.length; i++ )
{
- final Configuration element = (Configuration)elements.next();
+ final Configuration element = children[ i ];
final String name = element.getName();
//handle individual elements
@@ -152,7 +152,7 @@ public class DefaultProjectBuilder
else if( name.equals( "property" ) ) buildImplicitTask( project, element );
else
{
- throw new AntException( "Unknown top-level element " + name +
+ throw new AntException( "Unknown top-level element " + name +
" at " + element.getLocation() );
}
}
@@ -173,16 +173,16 @@ public class DefaultProjectBuilder
if( null == name )
{
- throw new AntException( "Discovered un-named target at " +
+ throw new AntException( "Discovered un-named target at " +
target.getLocation() );
- }
+ }
getLogger().debug( "Parsing target: " + name );
if( null != ifCondition && null != unlessCondition )
{
throw new AntException( "Discovered invalid target that has both a if and " +
- "unless condition at " + target.getLocation() );
+ "unless condition at " + target.getLocation() );
}
Condition condition = null;
@@ -203,7 +203,7 @@ public class DefaultProjectBuilder
//apply depends attribute
if( null != depends )
{
- final String[] elements = StringUtil.splitString( depends, "," );
+ final String[] elements = ExceptionUtil.splitString( depends, "," );
for( int i = 0; i < elements.length; i++ )
{
@@ -211,22 +211,21 @@ public class DefaultProjectBuilder
if( 0 == dependency.length() )
{
- throw new AntException( "Discovered empty dependency in target " +
- target.getName() + " at " + target.getLocation() );
+ throw new AntException( "Discovered empty dependency in target " +
+ target.getName() + " at " + target.getLocation() );
}
getLogger().debug( "Target dependency: " + dependency );
defaultTarget.addDependency( dependency );
- }
+ }
}
//add all the targets from element
- final Iterator tasks = target.getChildren();
- while( tasks.hasNext() )
+ final Configuration[] tasks = target.getChildren();
+ for( int i = 0; i < tasks.length; i++ )
{
- final Configuration task = (Configuration)tasks.next();
- getLogger().debug( "Parsed task: " + task.getName() );
- defaultTarget.addTask( task );
+ getLogger().debug( "Parsed task: " + tasks[ i ].getName() );
+ defaultTarget.addTask( tasks[ i ] );
}
//add target to project
@@ -240,9 +239,9 @@ public class DefaultProjectBuilder
* @param task the configuration
*/
protected void buildImplicitTask( final DefaultProject project, final Configuration task )
- {
+ {
DefaultTarget target = (DefaultTarget)project.getImplicitTarget();
-
+
if( null == target )
{
target = new DefaultTarget();
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java
index a44aa96c2..4a2d20bc4 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java
@@ -10,35 +10,35 @@ package org.apache.ant.project;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.tasklet.DefaultTaskletContext;
import org.apache.ant.tasklet.TaskletContext;
import org.apache.ant.tasklet.engine.DefaultTaskletEngine;
import org.apache.ant.tasklet.engine.TaskletEngine;
import org.apache.ant.util.Condition;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.Composer;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.DefaultComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.DefaultComponentManager;
-import org.apache.avalon.Disposable;
-import org.apache.avalon.Initializable;
+import org.apache.avalon.framework.activity.Disposable;
+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.component.DefaultComponentManager;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.log.Logger;
/**
* This is the default implementation of ProjectEngine.
- *
+ *
* @author Peter Donald
*/
public class DefaultProjectEngine
extends AbstractLoggable
- implements ProjectEngine, Composer
+ implements ProjectEngine, Composable
{
protected TaskletEngine m_taskletEngine;
protected ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport();
protected DefaultComponentManager m_componentManager;
-
+
/**
* Add a listener to project events.
*
@@ -48,7 +48,7 @@ public class DefaultProjectEngine
{
m_listenerSupport.addProjectListener( listener );
}
-
+
/**
* Remove a listener from project events.
*
@@ -58,15 +58,15 @@ public class DefaultProjectEngine
{
m_listenerSupport.removeProjectListener( listener );
}
-
+
/**
* Retrieve relevent services needed for engine.
*
* @param componentManager the ComponentManager
- * @exception ComponentManagerException if an error occurs
+ * @exception ComponentException if an error occurs
*/
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
m_componentManager = (DefaultComponentManager)componentManager;
m_taskletEngine = (TaskletEngine)componentManager.
@@ -80,7 +80,7 @@ public class DefaultProjectEngine
* @param project the Project
* @param target the name of the target
* @exception AntException if an error occurs
- */
+ */
public void execute( final Project project, final String target )
throws AntException
{
@@ -125,8 +125,8 @@ public class DefaultProjectEngine
* @param done the list of targets already executed in current run
* @exception AntException if an error occurs
*/
- protected void execute( final Project project,
- final String targetName,
+ protected void execute( final Project project,
+ final String targetName,
final TaskletContext context,
final ArrayList done )
throws AntException
@@ -137,7 +137,7 @@ public class DefaultProjectEngine
{
throw new AntException( "Unable to find target " + targetName );
}
-
+
//add target to list of targets executed
done.add( targetName );
@@ -163,8 +163,8 @@ public class DefaultProjectEngine
* @param context the context in which to execute
* @exception AntException if an error occurs
*/
- protected void executeTarget( final String targetName,
- final Target target,
+ protected void executeTarget( final String targetName,
+ final Target target,
final TaskletContext context )
throws AntException
{
@@ -175,13 +175,13 @@ public class DefaultProjectEngine
//create project context and set target name
final TaskletContext targetContext = new DefaultTaskletContext( context );
targetContext.setProperty( Project.TARGET, targetName );
-
+
//notify listeners
m_listenerSupport.targetStarted( targetName );
- //actually do the execution work
+ //actually do the execution work
executeTargetWork( targetName, target, targetContext );
-
+
//notify listeners
m_listenerSupport.targetFinished();
}
@@ -194,8 +194,8 @@ public class DefaultProjectEngine
* @param target the target
* @param context the context
*/
- protected void executeTargetWork( final String name,
- final Target target,
+ protected void executeTargetWork( final String name,
+ final Target target,
final TaskletContext context )
{
//check the condition associated with target.
@@ -205,7 +205,7 @@ public class DefaultProjectEngine
{
if( false == condition.evaluate( context ) )
{
- getLogger().debug( "Skipping target " + name +
+ getLogger().debug( "Skipping target " + name +
" as it does not satisfy condition" );
return;
}
@@ -226,7 +226,7 @@ public class DefaultProjectEngine
* Execute a task.
*
* @param task the task definition
- * @param context the context
+ * @param context the context
* @exception AntException if an error occurs
*/
protected void executeTask( final Configuration task, final TaskletContext context )
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java
index 8d250afe0..845e50f12 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.project;
-import org.apache.avalon.util.StringUtil;
+import org.apache.avalon.framework.ExceptionUtil;
/**
* Default listener that emulates the old ant listener notifications.
@@ -89,7 +89,7 @@ public class DefaultProjectListener
*/
public void log( String message, Throwable throwable )
{
- output( message + "\n" + StringUtil.printStackTrace( throwable, 5, true ) );
+ output( message + "\n" + ExceptionUtil.printStackTrace( throwable, 5, true ) );
}
/**
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java
index 14389381b..1a5187a74 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java
@@ -9,8 +9,8 @@ package org.apache.ant.project;
import java.util.ArrayList;
import java.util.Iterator;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.util.Condition;
+import org.apache.avalon.framework.configuration.Configuration;
/**
* Default implementation of target.
@@ -41,7 +41,7 @@ public class DefaultTarget
{
this( null );
}
-
+
/**
* Get condition under which target is executed.
*
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java b/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java
index 38e0a66b0..668a44830 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.project;
-import org.apache.log.LogEntry;
+import org.apache.log.LogEvent;
import org.apache.log.LogTarget;
/**
@@ -31,19 +31,19 @@ public class LogTargetToListenerAdapter
}
/**
- * Process a log entry.
+ * Process a log event.
*
- * @param entry the entry
+ * @param event the event
*/
- public void processEntry( final LogEntry entry )
+ public void processEvent( final LogEvent event )
{
- if( null == entry.getThrowable() )
+ if( null == event.getThrowable() )
{
- m_listener.log( entry.getMessage() );
+ m_listener.log( event.getMessage() );
}
else
{
- m_listener.log( entry.getMessage(), entry.getThrowable() );
+ m_listener.log( event.getMessage(), event.getThrowable() );
}
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/Project.java b/proposal/myrmidon/src/java/org/apache/ant/project/Project.java
index a580e93ce..1ccb84604 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/Project.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/Project.java
@@ -10,7 +10,7 @@ package org.apache.ant.project;
import java.util.Iterator;
import org.apache.ant.AntException;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.Component;
+import org.apache.avalon.framework.component.Component;
/**
* Interface through which to interact with projects.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java
index a6a97c164..fe09b9460 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java
@@ -10,7 +10,7 @@ package org.apache.ant.project;
import java.io.File;
import java.io.IOException;
import org.apache.ant.AntException;
-import org.apache.avalon.Component;
+import org.apache.avalon.framework.component.Component;
/**
* Interface implemented by components that build projects from sources.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java
index 6902568f1..805f490f0 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java
@@ -10,7 +10,7 @@ package org.apache.ant.project;
import org.apache.ant.AntException;
import org.apache.ant.tasklet.TaskletContext;
import org.apache.ant.tasklet.engine.TaskletEngine;
-import org.apache.avalon.Component;
+import org.apache.avalon.framework.component.Component;
/**
* This is the interface between ProjectEngine and rest of the system.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/Target.java b/proposal/myrmidon/src/java/org/apache/ant/project/Target.java
index 84acdf8ff..46efb96c0 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/project/Target.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/project/Target.java
@@ -9,7 +9,7 @@ package org.apache.ant.project;
import java.util.Iterator;
import org.apache.ant.util.Condition;
-import org.apache.avalon.Component;
+import org.apache.avalon.framework.component.Component;
/**
* Interface to represent targets in build file.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/runtime/AntEngine.java b/proposal/myrmidon/src/java/org/apache/ant/runtime/AntEngine.java
index dd1f9ab8e..30ea0c291 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/runtime/AntEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/runtime/AntEngine.java
@@ -10,9 +10,9 @@ package org.apache.ant.runtime;
import java.util.Properties;
import org.apache.ant.project.ProjectBuilder;
import org.apache.ant.project.ProjectEngine;
-import org.apache.avalon.Component;
-import org.apache.avalon.Disposable;
-import org.apache.avalon.Initializable;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.component.Component;
/**
* Interface to the Ant runtime.
@@ -23,7 +23,7 @@ public interface AntEngine
extends Component, Initializable, Disposable
{
/**
- * Setup basic properties of engine.
+ * Setup basic properties of engine.
* Called before init() and can be used to specify alternate components in system.
*
* @param properties the properties
@@ -37,7 +37,7 @@ public interface AntEngine
* @return the ProjectBuilder
*/
ProjectBuilder getProjectBuilder();
-
+
/**
* Retrieve project engine for runtime.
* Valid after init() call
diff --git a/proposal/myrmidon/src/java/org/apache/ant/runtime/DefaultAntEngine.java b/proposal/myrmidon/src/java/org/apache/ant/runtime/DefaultAntEngine.java
index ece06a96e..678a606f8 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/runtime/DefaultAntEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/runtime/DefaultAntEngine.java
@@ -18,17 +18,16 @@ import org.apache.ant.tasklet.JavaVersion;
import org.apache.ant.tasklet.engine.DataTypeEngine;
import org.apache.ant.tasklet.engine.TaskletEngine;
import org.apache.ant.tasklet.engine.TskDeployer;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.Component;
-import org.apache.avalon.Composer;
-import org.apache.avalon.DefaultComponentManager;
-import org.apache.avalon.Initializable;
-import org.apache.avalon.camelot.CamelotUtil;
-import org.apache.avalon.camelot.DefaultFactory;
-import org.apache.avalon.camelot.Deployer;
-import org.apache.avalon.camelot.Factory;
-import org.apache.avalon.util.ObjectUtil;
-import org.apache.avalon.util.io.FileUtil;
+import org.apache.avalon.framework.logger.AbstractLoggable;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.component.DefaultComponentManager;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.camelot.CamelotUtil;
+import org.apache.avalon.framework.camelot.DefaultFactory;
+import org.apache.avalon.framework.camelot.Deployer;
+import org.apache.avalon.framework.camelot.Factory;
+import org.apache.avalon.excalibur.io.FileUtil;
/**
* Default implementation of Ant runtime.
@@ -97,7 +96,7 @@ public class DefaultAntEngine
*
* @exception Exception if an error occurs
*/
- public void init()
+ public void initialize()
throws Exception
{
//setup default properties
@@ -193,7 +192,7 @@ public class DefaultAntEngine
componentManager.put( "org.apache.ant.tasklet.engine.DataTypeEngine", m_dataTypeEngine );
componentManager.put( "org.apache.ant.project.ProjectBuilder", m_builder );
componentManager.put( "org.apache.ant.tasklet.engine.TskDeployer", m_deployer );
- componentManager.put( "org.apache.avalon.camelot.Factory", m_factory );
+ componentManager.put( "org.apache.avalon.framework.camelot.Factory", m_factory );
componentManager.put( "org.apache.ant.configuration.Configurer", m_configurer );
return componentManager;
@@ -260,14 +259,14 @@ public class DefaultAntEngine
{
setupLogger( component );
- if( component instanceof Composer )
+ if( component instanceof Composable )
{
- ((Composer)component).compose( m_componentManager );
+ ((Composable)component).compose( m_componentManager );
}
if( component instanceof Initializable )
{
- ((Initializable)component).init();
+ ((Initializable)component).initialize();
}
}
@@ -383,7 +382,7 @@ public class DefaultAntEngine
{
try
{
- final Object object = ObjectUtil.createObject( component );
+ final Object object = Class.forName( component ).newInstance();
if( !clazz.isInstance( object ) )
{
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java
index ad4bf2333..4899f10e5 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java
@@ -8,9 +8,11 @@
package org.apache.ant.tasklet;
import org.apache.ant.AntException;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.Context;
-import org.apache.avalon.Initializable;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.Contextualizable;
+import org.apache.avalon.framework.logger.AbstractLoggable;
/**
* This is abstract base class for tasklets.
@@ -19,11 +21,9 @@ import org.apache.avalon.Initializable;
*/
public abstract class AbstractTasklet
extends AbstractLoggable
- implements Tasklet, Initializable
+ implements Tasklet, Contextualizable, Initializable, Disposable
{
- //the user should set this in constructors of sub-classes
- protected JavaVersion m_requiredJavaVersion;
-
+ ///Variable to hold context for use by sub-classes
private TaskletContext m_context;
/**
@@ -37,27 +37,24 @@ public abstract class AbstractTasklet
}
/**
- * This will be called before run() method and checks any preconditions.
- *
- * Intially preconditions just include JVM version but in future it
- * will automagically also check if all required parameters are present.
+ * This will be called before execute() method and checks any preconditions.
*
- * @exception AntException if an error occurs
+ * @exception Exception if an error occurs
*/
- public void init()
- throws AntException
+ public void initialize()
+ throws Exception
{
- if( null != m_requiredJavaVersion )
- {
- final JavaVersion suppliedVersion = m_context.getJavaVersion();
+ }
- if( m_requiredJavaVersion.isLessThan( suppliedVersion ) )
- {
- throw new AntException( "Task requires a JavaVersion of at least " +
- m_requiredJavaVersion + " but current version is " +
- suppliedVersion );
- }
- }
+ /**
+ * This will be called after execute() method.
+ * Use this to clean up any resources associated with task.
+ *
+ * @exception Exception if an error occurs
+ */
+ public void dispose()
+ throws Exception
+ {
}
/**
@@ -65,7 +62,7 @@ public abstract class AbstractTasklet
*
* @return the context
*/
- protected TaskletContext getContext()
+ protected final TaskletContext getContext()
{
return m_context;
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DataType.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DataType.java
index 65f044851..07e4445df 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DataType.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DataType.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.tasklet;
-import org.apache.avalon.Component;
+import org.apache.avalon.framework.component.Component;
/**
* Base class for those classes that can appear inside the build file
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java
index 7df0f01fd..343efea62 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java
@@ -9,10 +9,11 @@ package org.apache.ant.tasklet;
import java.io.File;
import org.apache.ant.AntException;
-import org.apache.avalon.DefaultContext;
-import org.apache.avalon.util.PropertyException;
-import org.apache.avalon.util.PropertyUtil;
-import org.apache.avalon.util.io.FileUtil;
+import org.apache.avalon.framework.context.DefaultContext;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.excalibur.property.PropertyException;
+import org.apache.avalon.excalibur.property.PropertyUtil;
+import org.apache.avalon.excalibur.io.FileUtil;
/**
* Default implementation of TaskletContext.
@@ -42,7 +43,7 @@ public class DefaultTaskletContext
if( null != parent )
{
- m_baseDirectory = (File)parent.get( BASE_DIRECTORY );
+ m_baseDirectory = (File)parent.getBaseDirectory();
}
}
@@ -53,7 +54,14 @@ public class DefaultTaskletContext
*/
public JavaVersion getJavaVersion()
{
- return (JavaVersion)get( JAVA_VERSION );
+ try
+ {
+ return (JavaVersion)get( JAVA_VERSION );
+ }
+ catch( final ContextException ce )
+ {
+ throw new IllegalStateException( "No JavaVersion in Context" );
+ }
}
@@ -64,7 +72,14 @@ public class DefaultTaskletContext
*/
public String getName()
{
- return (String)get( NAME );
+ try
+ {
+ return (String)get( NAME );
+ }
+ catch( final ContextException ce )
+ {
+ throw new IllegalStateException( "No Name in Context" );
+ }
}
/**
@@ -119,7 +134,11 @@ public class DefaultTaskletContext
*/
public Object getProperty( final String name )
{
- return get( name );
+ try { return get( name ); }
+ catch( final ContextException ce )
+ {
+ return null;
+ }
}
/**
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/JavaVersion.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/JavaVersion.java
index e4ab6a706..21ad3a5f8 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/JavaVersion.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/JavaVersion.java
@@ -7,7 +7,7 @@
*/
package org.apache.ant.tasklet;
-import org.apache.avalon.util.ValuedEnum;
+import org.apache.avalon.framework.ValuedEnum;
/**
* Type safe wrapper class for Java Version enums.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java
index dbc441848..740e07828 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java
@@ -7,16 +7,14 @@
*/
package org.apache.ant.tasklet;
-import org.apache.avalon.Component;
-import org.apache.avalon.Contextualizable;
-import org.apache.avalon.Loggable;
+import org.apache.avalon.framework.component.Component;
/**
* This represents the individual tasks.
* Particular instances can also implement Initializable
* and/or Disposable, in which case init()/dispose() will
* be called at appropriate time.
- * The task can also implement Composer in which case required
+ * The task can also implement Composable in which case required
* facilities will be passed via a ComponentManager. The actual
* facilties is determined by particular task engine but will usually
* include ProjectEngine and TaskEngine.
@@ -24,6 +22,8 @@ import org.apache.avalon.Loggable;
* @author Peter Donald
*/
public interface Tasklet
- extends Component, Loggable, Contextualizable, Runnable
+ extends Component
{
+ void execute()
+ throws Exception;
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java
index bc7c8c13f..c83a7bf67 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java
@@ -8,9 +8,9 @@
package org.apache.ant.tasklet;
import java.io.File;
-import org.apache.avalon.Context;
-import org.apache.avalon.util.Enum;
-import org.apache.avalon.util.ValuedEnum;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.Enum;
+import org.apache.avalon.framework.ValuedEnum;
/**
* This represents the *Context* in which a task can be executed.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DataTypeEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DataTypeEngine.java
index ba880d6c4..e04ce99e7 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DataTypeEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DataTypeEngine.java
@@ -8,10 +8,10 @@
package org.apache.ant.tasklet.engine;
import org.apache.ant.tasklet.DataType;
-import org.apache.avalon.Component;
-import org.apache.avalon.camelot.FactoryException;
-import org.apache.avalon.camelot.LocatorRegistry;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.camelot.FactoryException;
+import org.apache.avalon.framework.camelot.Registry;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* This is basically a engine that can be used to access data-types.
@@ -28,7 +28,7 @@ public interface DataTypeEngine
*
* @return the registry
*/
- LocatorRegistry getRegistry();
+ Registry getRegistry();
/**
* Create a data-type of type registered under name.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultDataTypeEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultDataTypeEngine.java
index 9105e2061..96b5906a4 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultDataTypeEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultDataTypeEngine.java
@@ -8,16 +8,16 @@
package org.apache.ant.tasklet.engine;
import org.apache.ant.tasklet.DataType;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.Composer;
-import org.apache.avalon.camelot.DefaultLocatorRegistry;
-import org.apache.avalon.camelot.Factory;
-import org.apache.avalon.camelot.FactoryException;
-import org.apache.avalon.camelot.Locator;
-import org.apache.avalon.camelot.LocatorRegistry;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.camelot.DefaultRegistry;
+import org.apache.avalon.framework.camelot.Factory;
+import org.apache.avalon.framework.camelot.FactoryException;
+import org.apache.avalon.framework.camelot.Locator;
+import org.apache.avalon.framework.camelot.Registry;
+import org.apache.avalon.framework.camelot.RegistryException;
/**
* This is basically a engine that can be used to access data-types.
@@ -26,10 +26,10 @@ import org.apache.avalon.camelot.RegistryException;
* @author Peter Donald
*/
public class DefaultDataTypeEngine
- implements DataTypeEngine, Composer
+ implements DataTypeEngine, Composable
{
protected Factory m_factory;
- protected LocatorRegistry m_registry = new DefaultLocatorRegistry();
+ protected Registry m_registry = new DefaultRegistry( Locator.class );
/**
* Retrieve registry of data-types.
@@ -37,7 +37,7 @@ public class DefaultDataTypeEngine
*
* @return the registry
*/
- public LocatorRegistry getRegistry()
+ public Registry getRegistry()
{
return m_registry;
}
@@ -46,12 +46,12 @@ public class DefaultDataTypeEngine
* Retrieve relevent services needed to deploy.
*
* @param componentManager the ComponentManager
- * @exception ComponentManagerException if an error occurs
+ * @exception ComponentException if an error occurs
*/
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
- m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" );
+ m_factory = (Factory)componentManager.lookup( "org.apache.avalon.framework.camelot.Factory" );
}
/**
@@ -65,7 +65,7 @@ public class DefaultDataTypeEngine
public DataType createDataType( final String name )
throws RegistryException, FactoryException
{
- final Locator locator = m_registry.getLocator( name );
+ final Locator locator = (Locator)m_registry.getInfo( name, Locator.class );
return (DataType)m_factory.create( locator, DataType.class );
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java
index ed144154c..4b8da3c4b 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java
@@ -9,41 +9,41 @@ package org.apache.ant.tasklet.engine;
import java.util.HashMap;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configurable;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.configuration.Configurer;
import org.apache.ant.configuration.DefaultConfigurer;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.tasklet.Tasklet;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.AbstractLoggable;
-import org.apache.avalon.Component;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.DefaultComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.Context;
-import org.apache.avalon.Contextualizable;
-import org.apache.avalon.DefaultComponentManager;
-import org.apache.avalon.Disposable;
-import org.apache.avalon.Initializable;
-import org.apache.avalon.Loggable;
-import org.apache.avalon.camelot.DefaultFactory;
-import org.apache.avalon.camelot.DefaultLocatorRegistry;
-import org.apache.avalon.camelot.Factory;
-import org.apache.avalon.camelot.FactoryException;
-import org.apache.avalon.camelot.Locator;
-import org.apache.avalon.camelot.LocatorRegistry;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.logger.AbstractLoggable;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.DefaultComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+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.component.DefaultComponentManager;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.logger.Loggable;
+import org.apache.avalon.framework.camelot.DefaultFactory;
+import org.apache.avalon.framework.camelot.DefaultRegistry;
+import org.apache.avalon.framework.camelot.Factory;
+import org.apache.avalon.framework.camelot.FactoryException;
+import org.apache.avalon.framework.camelot.Locator;
+import org.apache.avalon.framework.camelot.Registry;
+import org.apache.avalon.framework.camelot.RegistryException;
import org.apache.log.Logger;
public class DefaultTaskletEngine
extends AbstractLoggable
- implements TaskletEngine, Composer
+ implements TaskletEngine, Composable
{
protected TskDeployer m_tskDeployer;
protected Factory m_factory;
- protected LocatorRegistry m_locatorRegistry = new DefaultLocatorRegistry();
+ protected Registry m_locatorRegistry = new DefaultRegistry( Locator.class );
protected Configurer m_configurer;
protected DataTypeEngine m_dataTypeEngine;
protected ConverterEngine m_converterEngine;
@@ -60,7 +60,7 @@ public class DefaultTaskletEngine
return m_converterEngine;
}
- public LocatorRegistry getRegistry()
+ public Registry getRegistry()
{
return m_locatorRegistry;
}
@@ -79,15 +79,15 @@ public class DefaultTaskletEngine
* Retrieve relevent services needed to deploy.
*
* @param componentManager the ComponentManager
- * @exception ComponentManagerException if an error occurs
+ * @exception ComponentException if an error occurs
*/
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
//cache CM so it can be used while executing tasks
m_componentManager = componentManager;
- m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" );
+ m_factory = (Factory)componentManager.lookup( "org.apache.avalon.framework.camelot.Factory" );
m_tskDeployer = (TskDeployer)componentManager.
lookup( "org.apache.ant.tasklet.engine.TskDeployer" );
m_configurer = (Configurer)componentManager.
@@ -118,7 +118,11 @@ public class DefaultTaskletEngine
doInitialize( tasklet, task );
getLogger().debug( "Running" );
- tasklet.run();
+ try { tasklet.execute(); }
+ catch( final Exception e )
+ {
+ throw new AntException( "Error executing task", e );
+ }
getLogger().debug( "Disposing" );
doDispose( tasklet, task );
@@ -129,7 +133,7 @@ public class DefaultTaskletEngine
{
try
{
- final Locator locator = m_locatorRegistry.getLocator( name );
+ final Locator locator = (Locator)m_locatorRegistry.getInfo( name, Locator.class );
return (Tasklet)m_factory.create( locator, Tasklet.class );
}
catch( final RegistryException re )
@@ -159,9 +163,9 @@ public class DefaultTaskletEngine
protected void doCompose( final Tasklet tasklet, final Configuration task )
throws AntException
{
- if( tasklet instanceof Composer )
+ if( tasklet instanceof Composable )
{
- try { ((Composer)tasklet).compose( m_componentManager ); }
+ try { ((Composable)tasklet).compose( m_componentManager ); }
catch( final Throwable throwable )
{
throw new AntException( "Error composing task " + task.getName() + " at " +
@@ -176,7 +180,13 @@ public class DefaultTaskletEngine
final TaskletContext context )
throws AntException
{
- try { tasklet.contextualize( context ); }
+ try
+ {
+ if( tasklet instanceof Contextualizable )
+ {
+ ((Contextualizable)tasklet).contextualize( context );
+ }
+ }
catch( final Throwable throwable )
{
throw new AntException( "Error contextualizing task " + task.getName() + " at " +
@@ -205,7 +215,7 @@ public class DefaultTaskletEngine
{
if( tasklet instanceof Initializable )
{
- try { ((Initializable)tasklet).init(); }
+ try { ((Initializable)tasklet).initialize(); }
catch( final Throwable throwable )
{
throw new AntException( "Error initializing task " + task.getName() + " at " +
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java
index 12a21542f..64174700c 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java
@@ -18,20 +18,20 @@ import java.util.zip.ZipFile;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.convert.engine.ConverterRegistry;
import org.apache.ant.convert.engine.DefaultConverterInfo;
-import org.apache.avalon.Component;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.ComponentManagerException;
-import org.apache.avalon.Composer;
-import org.apache.avalon.Configuration;
-import org.apache.avalon.ConfigurationException;
-import org.apache.avalon.camelot.AbstractZipDeployer;
-import org.apache.avalon.camelot.DefaultLocator;
-import org.apache.avalon.camelot.DefaultLocatorRegistry;
-import org.apache.avalon.camelot.DeploymentException;
-import org.apache.avalon.camelot.DeployerUtil;
-import org.apache.avalon.camelot.Loader;
-import org.apache.avalon.camelot.LocatorRegistry;
-import org.apache.avalon.camelot.RegistryException;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+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.camelot.AbstractDeployer;
+import org.apache.avalon.framework.camelot.DefaultLocator;
+import org.apache.avalon.framework.camelot.DefaultRegistry;
+import org.apache.avalon.framework.camelot.DeploymentException;
+import org.apache.avalon.framework.camelot.DeployerUtil;
+import org.apache.avalon.framework.camelot.Loader;
+import org.apache.avalon.framework.camelot.Registry;
+import org.apache.avalon.framework.camelot.RegistryException;
import org.apache.log.Logger;
/**
@@ -40,14 +40,14 @@ import org.apache.log.Logger;
* @author Peter Donald
*/
public class DefaultTskDeployer
- extends AbstractZipDeployer
- implements Composer, TskDeployer
+ extends AbstractDeployer
+ implements Composable, TskDeployer
{
protected final static String TSKDEF_FILE = "TASK-LIB/taskdefs.xml";
- protected LocatorRegistry m_dataTypeRegistry;
- protected LocatorRegistry m_taskletRegistry;
- protected LocatorRegistry m_converterRegistry;
+ protected Registry m_dataTypeRegistry;
+ protected Registry m_taskletRegistry;
+ protected Registry m_converterRegistry;
protected ConverterRegistry m_converterInfoRegistry;
/**
@@ -64,10 +64,10 @@ public class DefaultTskDeployer
* Retrieve relevent services needed to deploy.
*
* @param componentManager the ComponentManager
- * @exception ComponentManagerException if an error occurs
+ * @exception ComponentException if an error occurs
*/
public void compose( final ComponentManager componentManager )
- throws ComponentManagerException
+ throws ComponentException
{
final TaskletEngine taskletEngine = (TaskletEngine)componentManager.
lookup( "org.apache.ant.tasklet.engine.TaskletEngine" );
@@ -86,6 +86,37 @@ public class DefaultTskDeployer
m_dataTypeRegistry = dataTypeEngine.getRegistry();
}
+ /**
+ * Deploy a file.
+ * Eventually this should be cached for performance reasons.
+ *
+ * @param location the location
+ * @param file the file
+ * @exception DeploymentException if an error occurs
+ */
+ protected void deployFromFile( final String location, final File file )
+ throws DeploymentException
+ {
+ final ZipFile zipFile = DeployerUtil.getZipFileFor( file );
+
+ URL url = null;
+
+ try
+ {
+ try { url = file.toURL(); }
+ catch( final MalformedURLException mue )
+ {
+ throw new DeploymentException( "Unable to form url", mue );
+ }
+ loadResources( zipFile, location, url );
+ }
+ finally
+ {
+ try { zipFile.close(); }
+ catch( final IOException ioe ) {}
+ }
+ }
+
protected void loadResources( final ZipFile zipFile, final String location, final URL url )
throws DeploymentException
{
@@ -93,25 +124,22 @@ public class DefaultTskDeployer
try
{
- final Iterator tasks = taskdefs.getChildren( "task" );
- while( tasks.hasNext() )
+ final Configuration[] tasks = taskdefs.getChildren( "task" );
+ for( int i = 0; i < tasks.length; i++ )
{
- final Configuration task = (Configuration)tasks.next();
- handleTasklet( task, url );
+ handleTasklet( tasks[ i ], url );
}
- final Iterator converters = taskdefs.getChildren( "converter" );
- while( converters.hasNext() )
+ final Configuration[] converters = taskdefs.getChildren( "converter" );
+ for( int i = 0; i < converters.length; i++ )
{
- final Configuration converter = (Configuration)converters.next();
- handleConverter( converter, url );
+ handleConverter( converters[ i ], url );
}
- final Iterator datatypes = taskdefs.getChildren( "datatype" );
- while( datatypes.hasNext() )
+ final Configuration[] datatypes = taskdefs.getChildren( "datatype" );
+ for( int i = 0; i < datatypes.length; i++ )
{
- final Configuration datatype = (Configuration)datatypes.next();
- handleDataType( datatype, url );
+ handleDataType( datatypes[ i ], url );
}
}
catch( final ConfigurationException ce )
@@ -129,13 +157,12 @@ public class DefaultTskDeployer
try
{
- final Iterator converters = taskdefs.getChildren( "converter" );
- while( converters.hasNext() )
+ final Configuration[] converters = taskdefs.getChildren( "converter" );
+ for( int i = 0; i < converters.length; i++ )
{
- final Configuration converter = (Configuration)converters.next();
- if( converter.getAttribute( "classname" ).equals( name ) )
+ if( converters[ i ].getAttribute( "classname" ).equals( name ) )
{
- handleConverter( converter, url );
+ handleConverter( converters[ i ], url );
break;
}
}
@@ -156,13 +183,12 @@ public class DefaultTskDeployer
try
{
- final Iterator datatypes = datatypedefs.getChildren( "datatype" );
- while( datatypes.hasNext() )
+ final Configuration[] datatypes = datatypedefs.getChildren( "datatype" );
+ for( int i = 0; i < datatypes.length; i++ )
{
- final Configuration datatype = (Configuration)datatypes.next();
- if( datatype.getAttribute( "name" ).equals( name ) )
+ if( datatypes[ i ].getAttribute( "name" ).equals( name ) )
{
- handleDataType( datatype, url );
+ handleDataType( datatypes[ i ], url );
break;
}
}
@@ -182,13 +208,12 @@ public class DefaultTskDeployer
try
{
- final Iterator tasks = taskdefs.getChildren( "task" );
- while( tasks.hasNext() )
+ final Configuration[] tasks = taskdefs.getChildren( "task" );
+ for( int i = 0; i < tasks.length; i++ )
{
- final Configuration task = (Configuration)tasks.next();
- if( task.getAttribute( "name" ).equals( name ) )
+ if( tasks[ i ].getAttribute( "name" ).equals( name ) )
{
- handleTasklet( task, url );
+ handleTasklet( tasks[ i ], url );
break;
}
}
@@ -226,7 +251,7 @@ public class DefaultTskDeployer
re );
}
- m_logger.debug( "Registered converter " + name + " that converts from " +
+ getLogger().debug( "Registered converter " + name + " that converts from " +
source + " to " + destination );
}
@@ -245,7 +270,7 @@ public class DefaultTskDeployer
re );
}
- m_logger.debug( "Registered tasklet " + name + " as " + classname );
+ getLogger().debug( "Registered tasklet " + name + " as " + classname );
}
protected void handleDataType( final Configuration datatype, final URL url )
@@ -263,6 +288,6 @@ public class DefaultTskDeployer
re );
}
- m_logger.debug( "Registered datatype " + name + " as " + classname );
+ getLogger().debug( "Registered datatype " + name + " as " + classname );
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java
index 558f031d7..f2e6c2275 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java
@@ -8,14 +8,14 @@
package org.apache.ant.tasklet.engine;
import org.apache.ant.AntException;
-import org.apache.ant.configuration.Configuration;
import org.apache.ant.convert.engine.ConverterEngine;
import org.apache.ant.tasklet.engine.DataTypeEngine;
import org.apache.ant.tasklet.TaskletContext;
-import org.apache.avalon.Component;
-import org.apache.avalon.ComponentManager;
-import org.apache.avalon.Loggable;
-import org.apache.avalon.camelot.LocatorRegistry;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.logger.Loggable;
+import org.apache.avalon.framework.camelot.Registry;
import org.apache.log.Logger;
/**
@@ -38,7 +38,7 @@ public interface TaskletEngine
*
* @return the LocatorRegistry
*/
- LocatorRegistry getRegistry();
+ Registry getRegistry();
/**
* Retrieve converter engine.
diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
index 89d706acb..0331623bb 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TskDeployer.java
@@ -8,9 +8,9 @@
package org.apache.ant.tasklet.engine;
import java.net.URL;
-import org.apache.avalon.Loggable;
-import org.apache.avalon.camelot.Deployer;
-import org.apache.avalon.camelot.DeploymentException;
+import org.apache.avalon.framework.logger.Loggable;
+import org.apache.avalon.framework.camelot.Deployer;
+import org.apache.avalon.framework.camelot.DeploymentException;
import org.apache.log.Logger;
/**
diff --git a/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java b/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java
index eab77aaa9..bf74327c4 100644
--- a/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java
+++ b/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java
@@ -8,10 +8,11 @@
package org.apache.ant.util;
import org.apache.ant.AntException;
-import org.apache.avalon.Component;
-import org.apache.avalon.Context;
-import org.apache.avalon.util.PropertyException;
-import org.apache.avalon.util.PropertyUtil;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.excalibur.property.PropertyException;
+import org.apache.avalon.excalibur.property.PropertyUtil;
/**
* Class representing a condition.
@@ -21,8 +22,8 @@ import org.apache.avalon.util.PropertyUtil;
public class Condition
implements Component
{
- protected String m_condition;
- protected boolean m_isIfCondition;
+ private String m_condition;
+ private boolean m_isIfCondition;
public Condition( final boolean isIfCondition, final String condition )
{
@@ -42,29 +43,37 @@ public class Condition
public boolean evaluate( final Context context )
{
+ boolean result = false;
+
try
{
final Object resolved =
- PropertyUtil.resolveProperty( m_condition, context, false );
-
- boolean result = false;
+ PropertyUtil.resolveProperty( getCondition(), context, false );
if( null != resolved )
{
- result = ( null != context.get( resolved ) );
- }
-
- if( !m_isIfCondition )
- {
- result = !result;
+ final Object object = context.get( resolved );
+ //TODO: Do more than just check for presence????????????
+
+ //true as object present
+ result = true;
}
-
- return result;
+ }
+ catch( final ContextException ce )
+ {
+ result = false;
}
catch( final PropertyException pe )
{
throw new AntException( "Error resolving " + m_condition, pe );
}
+
+ if( !m_isIfCondition )
+ {
+ result = !result;
+ }
+
+ return result;
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/util/ItemSet.java b/proposal/myrmidon/src/java/org/apache/ant/util/ItemSet.java
deleted file mode 100644
index 685e8b03b..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/util/ItemSet.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.util;
-
-import org.apache.ant.tasklet.DataType;
-
-/**
- * Interface for ItemSet.
- * An item set contains a number of items. Example item sets include
- * PatternSets, FileSets, FilterSets etc.
- *
- * @author Peter Donald
- */
-public interface ItemSet
- extends DataType
-{
- /**
- * Returns an array containing the items(s) contained within set.
- *
- * Question: should ItemSet be context sensitive????
- */
- Object[] getItems( /* Context context??? */ );
-}
diff --git a/proposal/myrmidon/src/java/org/apache/ant/util/Mapper.java b/proposal/myrmidon/src/java/org/apache/ant/util/Mapper.java
deleted file mode 100644
index a7dea8405..000000000
--- a/proposal/myrmidon/src/java/org/apache/ant/util/Mapper.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.ant.util;
-
-import org.apache.ant.tasklet.DataType;
-
-/**
- * Interface for Mappers.
- * Mappers are responsible for mapping source items to targets items.
- * Example mappers will map source files to destination files
- * (ie A.java to A.class).
- *
- * @author Peter Donald
- * @author Stefan Bodewig
- */
-public interface Mapper
- extends DataType
-{
- /**
- * Returns an array containing the target items(s) for the
- * given source file.
- *
- * if the given rule doesn't apply to the input item, - * implementation must return null. Scanner will then - * omit the item in question.
- * - * @param item the item to be mapped - */ - Object[] mapItem( Object item ); -} diff --git a/proposal/myrmidon/src/java/org/apache/ant/util/Scanner.java b/proposal/myrmidon/src/java/org/apache/ant/util/Scanner.java deleted file mode 100644 index 9bffef5b0..000000000 --- a/proposal/myrmidon/src/java/org/apache/ant/util/Scanner.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.ant.util; - -import org.apache.avalon.Component; - -/** - * Interface for Scanners. - * - * @author Peter Donald - */ -public interface Scanner - extends Component -{ -} diff --git a/proposal/myrmidon/tools/lib/ant.jar b/proposal/myrmidon/tools/lib/ant.jar index f9bb3a72d..91947a529 100644 Binary files a/proposal/myrmidon/tools/lib/ant.jar and b/proposal/myrmidon/tools/lib/ant.jar differ