diff --git a/proposal/myrmidon/ant1compat.xml b/proposal/myrmidon/ant1compat.xml
index 894d444d9..94d3fae14 100644
--- a/proposal/myrmidon/ant1compat.xml
+++ b/proposal/myrmidon/ant1compat.xml
@@ -62,6 +62,7 @@
+
diff --git a/proposal/myrmidon/src/ant1compat/README.txt b/proposal/myrmidon/src/ant1compat/README.txt
index 69a20a74e..c3926ba20 100644
--- a/proposal/myrmidon/src/ant1compat/README.txt
+++ b/proposal/myrmidon/src/ant1compat/README.txt
@@ -18,7 +18,7 @@ it may can mimic the Ant1 configuration policy using the IntrospectionHelper.
The idea is to provide hooks between the Ant1 project and the Myrmidon
project, eg
logging: done
- properties: done but not quite working
+ properties: done
references: not done
Task definitions: done.
@@ -51,10 +51,8 @@ BUILD INSTRUCTIONS
TODO
----
* Convert this to an Xdoc document
-* Try out automatic registration of tasks - remove everything
- from ant-descriptor.xml and just use Project.addTaskDefinition()
- to register tasks? (similar for DataTypes)
* Get a version of and working
* Test heaps more tasks
-* Check that "if" and "unless" conversions are working.
+* Provide hooks between Ant1 references and Myrmidon properties. Need to use
+ converters for adapting Ant2 objects (like Ant2 or ) as Ant1 types.
diff --git a/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/Ant1CompatProject.java b/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/Ant1CompatProject.java
index fb2cd63da..49542b7fb 100644
--- a/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/Ant1CompatProject.java
+++ b/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/Ant1CompatProject.java
@@ -7,13 +7,22 @@
*/
package org.apache.tools.ant;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.apache.myrmidon.api.TaskContext;
+import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.interfaces.type.DefaultTypeFactory;
import org.apache.myrmidon.interfaces.type.TypeManager;
+import org.apache.myrmidon.interfaces.property.PropertyResolver;
+import org.apache.myrmidon.components.property.ClassicPropertyResolver;
/**
* Ant1 Project proxy for Myrmidon. Provides hooks between Myrmidon TaskContext
@@ -27,9 +36,14 @@ import org.apache.myrmidon.interfaces.type.TypeManager;
*/
public class Ant1CompatProject extends Project
{
- private TaskContext m_context;
public static final String ANT1_TASK_PREFIX = "ant1.";
+ private static final PropertyResolver c_ant1PropertyResolver =
+ new ClassicPropertyResolver();
+
+ private Set m_userProperties = new HashSet();
+ private TaskContext m_context;
+
public Ant1CompatProject( TaskContext context )
{
super();
@@ -244,4 +258,242 @@ public class Ant1CompatProject extends Project
typeManager.registerType( roleType, typeName, factory );
}
+ /**
+ * Sets a property. Any existing property of the same name
+ * is overwritten, unless it is a user property.
+ * @param name The name of property to set.
+ * Must not be null
.
+ * @param value The new value of the property.
+ * Must not be null
.
+ */
+ public void setProperty( String name, String value )
+ {
+ if( m_userProperties.contains( name ) )
+ {
+ log( "Override ignored for user property " + name, MSG_VERBOSE );
+ return;
+ }
+
+ if( null != m_context.getProperty( name ) )
+ {
+ log( "Overriding previous definition of property " + name,
+ MSG_VERBOSE );
+ }
+
+ log( "Setting project property: " + name + " -> " +
+ value, MSG_DEBUG );
+ doSetProperty( name, value );
+ }
+
+ /**
+ * Sets a property if no value currently exists. If the property
+ * exists already, a message is logged and the method returns with
+ * no other effect.
+ *
+ * @param name The name of property to set.
+ * Must not be null
.
+ * @param value The new value of the property.
+ * Must not be null
.
+ * @since 1.5
+ */
+ public void setNewProperty( String name, String value )
+ {
+ if( null != m_context.getProperty( name ) )
+ {
+ log( "Override ignored for property " + name, MSG_VERBOSE );
+ return;
+ }
+
+ log( "Setting project property: " + name + " -> " +
+ value, MSG_DEBUG );
+ doSetProperty( name, value );
+ }
+
+ /**
+ * Sets a user property, which cannot be overwritten by
+ * set/unset property calls. Any previous value is overwritten.
+ * @param name The name of property to set.
+ * Must not be null
.
+ * @param value The new value of the property.
+ * Must not be null
.
+ * @see #setProperty(String,String)
+ */
+ public void setUserProperty( String name, String value )
+ {
+ log( "Setting ro project property: " + name + " -> " +
+ value, MSG_DEBUG );
+ m_userProperties.add( name );
+ doSetProperty( name, value );
+ }
+
+ /**
+ * Sets a property value in the context, wrapping exceptions as
+ * Ant1 BuildExceptions.
+ * @param name property name
+ * @param value property value
+ */
+ private void doSetProperty( String name, String value )
+ {
+ try
+ {
+ m_context.setProperty( name, value );
+ }
+ catch( TaskException e )
+ {
+ throw new BuildException( "Could not set property: " + name, e );
+ }
+ }
+
+ /**
+ * Returns the value of a property, if it is set.
+ *
+ * @param name The name of the property.
+ * May be null
, in which case
+ * the return value is also null
.
+ * @return the property value, or null
for no match
+ * or if a null
name is provided.
+ */
+ public String getProperty( String name )
+ {
+ Object value = m_context.getProperty( name );
+
+ // In Ant1, all properties are strings.
+ if( value instanceof String )
+ {
+ return (String)value;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the value of a user property, if it is set.
+ *
+ * @param name The name of the property.
+ * May be null
, in which case
+ * the return value is also null
.
+ * @return the property value, or null
for no match
+ * or if a null
name is provided.
+ */
+ public String getUserProperty( String name )
+ {
+ if( m_userProperties.contains( name ) )
+ {
+ return getProperty( name );
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns a copy of the properties table.
+ * @return a hashtable containing all properties
+ * (including user properties).
+ */
+ public Hashtable getProperties()
+ {
+ Hashtable propsCopy = new Hashtable();
+
+ Map contextProps = m_context.getProperties();
+ Iterator propNames = contextProps.keySet().iterator();
+ while( propNames.hasNext() )
+ {
+ String name = (String)propNames.next();
+
+ // Use getProperty() to only return Strings.
+ String value = getProperty( name );
+ if( value != null )
+ {
+ propsCopy.put( name, value );
+ }
+ }
+
+ return propsCopy;
+ }
+
+ /**
+ * Returns a copy of the user property hashtable
+ * @return a hashtable containing just the user properties
+ */
+ public Hashtable getUserProperties()
+ {
+ Hashtable propsCopy = new Hashtable();
+
+ Iterator userPropNames = m_userProperties.iterator();
+ while( userPropNames.hasNext() )
+ {
+ String name = (String)userPropNames.next();
+ String value = getProperty( name );
+ propsCopy.put( name, value );
+ }
+
+ return propsCopy;
+ }
+
+ /**
+ * Replaces ${} style constructions in the given value with the
+ * string value of the corresponding data types.
+ *
+ * @param value The string to be scanned for property references.
+ * May be null
.
+ *
+ * @return the given string with embedded property names replaced
+ * by values, or null
if the given string is
+ * null
.
+ *
+ * @exception BuildException if the given value has an unclosed
+ * property name, e.g. ${xxx
+ */
+ public String replaceProperties( String value )
+ throws BuildException
+ {
+ try
+ {
+ return (String)c_ant1PropertyResolver.resolveProperties( value,
+ m_context );
+ }
+ catch( TaskException e )
+ {
+ throw new BuildException( "Error resolving value: '" + value + "'", e );
+ }
+ }
+
+ /**
+ * Make the Ant1 project set the java version property, and then
+ * copy it into the context properties.
+ *
+ * @exception BuildException if this Java version is not supported
+ *
+ * @see #getJavaVersion()
+ */
+ public void setJavaVersionProperty() throws BuildException
+ {
+ String javaVersion = getJavaVersion();
+ doSetProperty( "ant.java.version", javaVersion );
+
+ log( "Detected Java version: " + javaVersion + " in: "
+ + System.getProperty( "java.home" ), MSG_VERBOSE );
+
+ log( "Detected OS: " + System.getProperty( "os.name" ), MSG_VERBOSE );
+ }
+
+ /**
+ * Sets the base directory for the project, checking that
+ * the given filename exists and is a directory.
+ *
+ * @param baseD The project base directory.
+ * Must not be null
.
+ *
+ * @exception BuildException if the directory if invalid
+ */
+ public void setBaseDir( File baseD ) throws BuildException
+ {
+ super.setBaseDir( baseD );
+ doSetProperty( "basedir", super.getProperty( "basedir" ) );
+ }
+
}
diff --git a/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/BuildException.java b/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/BuildException.java
new file mode 100644
index 000000000..38a6cd0b0
--- /dev/null
+++ b/proposal/myrmidon/src/ant1compat/org/apache/tools/ant/BuildException.java
@@ -0,0 +1,255 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ * any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software itself,
+ * if and wherever such third-party acknowlegements normally appear.
+ *
+ * 4. The names "The Jakarta Project", "Ant", and "Apache Software
+ * Foundation" must not be used to endorse or promote products derived
+ * from this software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * .
+ */
+package org.apache.tools.ant;
+
+import java.io.PrintWriter;
+import java.io.PrintStream;
+import org.apache.tools.ant.Location;
+
+/**
+ *-----------------------------------------------------------------
+ * Ant1Compatability layer version of BuildException, modified slightly
+ * from original Ant1 BuildException, to provide a Myrmidon-friendly
+ * getCause(), so that cascading exceptions are followed.
+ * -----------------------------------------------------------------
+ *
+ * Signals an error condition during a build
+ *
+ * @author James Duncan Davidson
+ */
+public class BuildException extends RuntimeException {
+
+ /** Exception that might have caused this one. */
+ private Throwable cause;
+
+ /** Location in the build file where the exception occured */
+ private Location location = Location.UNKNOWN_LOCATION;
+
+ /**
+ * Constructs a build exception with no descriptive information.
+ */
+ public BuildException() {
+ super();
+ }
+
+ /**
+ * Constructs an exception with the given descriptive message.
+ *
+ * @param msg A description of or information about the exception.
+ * Should not be null
.
+ */
+ public BuildException(String msg) {
+ super(msg);
+ }
+
+ /**
+ * Constructs an exception with the given message and exception as
+ * a root cause.
+ *
+ * @param msg A description of or information about the exception.
+ * Should not be null
unless a cause is specified.
+ * @param cause The exception that might have caused this one.
+ * May be null
.
+ */
+ public BuildException(String msg, Throwable cause) {
+ super(msg);
+ this.cause = cause;
+ }
+
+ /**
+ * Constructs an exception with the given message and exception as
+ * a root cause and a location in a file.
+ *
+ * @param msg A description of or information about the exception.
+ * Should not be null
unless a cause is specified.
+ * @param cause The exception that might have caused this one.
+ * May be null
.
+ * @param location The location in the project file where the error
+ * occurred. Must not be null
.
+ */
+ public BuildException(String msg, Throwable cause, Location location) {
+ this(msg, cause);
+ this.location = location;
+ }
+
+ /**
+ * Constructs an exception with the given exception as a root cause.
+ *
+ * @param cause The exception that might have caused this one.
+ * Should not be null
.
+ */
+ public BuildException(Throwable cause) {
+ super(cause.toString());
+ this.cause = cause;
+ }
+
+ /**
+ * Constructs an exception with the given descriptive message and a
+ * location in a file.
+ *
+ * @param msg A description of or information about the exception.
+ * Should not be null
.
+ * @param location The location in the project file where the error
+ * occurred. Must not be null
.
+ */
+ public BuildException(String msg, Location location) {
+ super(msg);
+ this.location = location;
+ }
+
+ /**
+ * Constructs an exception with the given exception as
+ * a root cause and a location in a file.
+ *
+ * @param cause The exception that might have caused this one.
+ * Should not be null
.
+ * @param location The location in the project file where the error
+ * occurred. Must not be null
.
+ */
+ public BuildException(Throwable cause, Location location) {
+ this(cause);
+ this.location = location;
+ }
+
+ /**
+ * Returns the nested exception, if any.
+ *
+ * @return the nested exception, or null
if no
+ * exception is associated with this one
+ */
+ public Throwable getException() {
+ return cause;
+ }
+
+ /**
+ * Returns the location of the error and the error message.
+ *
+ * @return the location of the error and the error message
+ */
+ public String toString() {
+ return location.toString() + getMessage();
+ }
+
+ /**
+ * Sets the file location where the error occurred.
+ *
+ * @param location The file location where the error occurred.
+ * Must not be null
.
+ */
+ public void setLocation(Location location) {
+ this.location = location;
+ }
+
+ /**
+ * Returns the file location where the error occurred.
+ *
+ * @return the file location where the error occurred.
+ */
+ public Location getLocation() {
+ return location;
+ }
+
+ /**
+ * Prints the stack trace for this exception and any
+ * nested exception to System.err
.
+ */
+ public void printStackTrace() {
+ printStackTrace(System.err);
+ }
+
+ /**
+ * Prints the stack trace of this exception and any nested
+ * exception to the specified PrintStream.
+ *
+ * @param ps The PrintStream to print the stack trace to.
+ * Must not be null
.
+ */
+ public void printStackTrace(PrintStream ps) {
+ synchronized (ps) {
+ super.printStackTrace(ps);
+ if (cause != null) {
+ ps.println("--- Nested Exception ---");
+ cause.printStackTrace(ps);
+ }
+ }
+ }
+
+ /**
+ * Prints the stack trace of this exception and any nested
+ * exception to the specified PrintWriter.
+ *
+ * @param pw The PrintWriter to print the stack trace to.
+ * Must not be null
.
+ */
+ public void printStackTrace(PrintWriter pw) {
+ synchronized (pw) {
+ super.printStackTrace(pw);
+ if (cause != null) {
+ pw.println("--- Nested Exception ---");
+ cause.printStackTrace(pw);
+ }
+ }
+ }
+
+ //-------------------Modified from Ant1 ---------------------
+ /**
+ * Myrmidon-friendly cascading exception method.
+ * @return the cascading cause of this exception.
+ */
+ public Throwable getCause()
+ {
+ return cause;
+ }
+ //--------------------- End modified section ---------------
+}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/ClassicPropertyResolver.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/ClassicPropertyResolver.java
index 8b856efbd..5a4ced622 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/ClassicPropertyResolver.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/ClassicPropertyResolver.java
@@ -7,9 +7,8 @@
*/
package org.apache.myrmidon.components.property;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
import org.apache.myrmidon.interfaces.property.PropertyResolver;
+import org.apache.myrmidon.api.TaskContext;
/**
* A {@link PropertyResolver} implementation which resolves properties
@@ -30,15 +29,16 @@ public class ClassicPropertyResolver
* @param context the set of known properties
*/
protected Object getPropertyValue( final String propertyName,
- final Context context )
+ final TaskContext context )
{
- try
+ Object propertyValue = context.getProperty( propertyName );
+ if ( propertyValue == null )
{
- return context.get( propertyName );
+ return "${" + propertyName + "}";
}
- catch( ContextException e )
+ else
{
- return "${" + propertyName + "}";
+ return propertyValue;
}
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/DefaultPropertyResolver.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/DefaultPropertyResolver.java
index bf02d690e..77b4dbdb4 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/DefaultPropertyResolver.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/property/DefaultPropertyResolver.java
@@ -9,9 +9,8 @@ package org.apache.myrmidon.components.property;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
import org.apache.myrmidon.api.TaskException;
+import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.interfaces.property.PropertyResolver;
/**
@@ -43,7 +42,7 @@ public class DefaultPropertyResolver
* @exception TaskException if an error occurs
*/
public Object resolveProperties( final String content,
- final Context context )
+ final TaskContext context )
throws TaskException
{
int start = findNextProperty( content, 0 );
@@ -100,7 +99,7 @@ public class DefaultPropertyResolver
* @exception TaskException if an error occurs
*/
private Object recursiveResolveProperty( final String content,
- final Context context )
+ final TaskContext context )
throws TaskException
{
int start = findNextProperty( content, 0 );
@@ -238,18 +237,19 @@ public class DefaultPropertyResolver
* @exception TaskException if the property is undefined
*/
protected Object getPropertyValue( final String propertyName,
- final Context context )
+ final TaskContext context )
throws TaskException
{
- try
- {
- return context.get( propertyName );
- }
- catch( ContextException e )
+ Object propertyValue = context.getProperty( propertyName );
+ if ( propertyValue == null )
{
final String message = REZ.getString( "prop.missing-value.error", propertyName );
throw new TaskException( message );
}
+ else
+ {
+ return propertyValue;
+ }
}
}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultTaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultTaskContext.java
index 0824c5ba1..7933ebe92 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultTaskContext.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultTaskContext.java
@@ -10,11 +10,10 @@ package org.apache.myrmidon.components.workspace;
import java.io.File;
import java.util.Hashtable;
import java.util.Map;
+import java.util.HashMap;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.excalibur.io.FileUtil;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
@@ -30,17 +29,19 @@ import org.apache.myrmidon.interfaces.property.PropertyResolver;
* @version $Revision$ $Date$
*/
public class DefaultTaskContext
- implements TaskContext, Context
+ implements TaskContext
{
private final static Resources REZ =
ResourceManager.getPackageResources( DefaultTaskContext.class );
// Property name validator allows digits, but no internal whitespace.
- private static DefaultNameValidator c_propertyNameValidator = new DefaultNameValidator();
+ private static DefaultNameValidator c_propertyNameValidator =
+ new DefaultNameValidator();
static
{
c_propertyNameValidator.setAllowInternalWhitespace( false );
+ c_propertyNameValidator.setAdditionalInternalCharacters( "_-.+" );
}
private final Map m_contextData = new Hashtable();
@@ -193,7 +194,7 @@ public class DefaultTaskContext
*/
public Map getProperties()
{
- return null;
+ return new HashMap( m_contextData );
}
/**
@@ -354,20 +355,6 @@ public class DefaultTaskContext
return context;
}
- /**
- * Returns a property.
- */
- public Object get( final Object key ) throws ContextException
- {
- final Object value = getProperty( (String)key );
- if( value == null )
- {
- final String message = REZ.getString( "unknown-property.error", key );
- throw new ContextException( message );
- }
- return value;
- }
-
/**
* Checks that the supplied property name is valid.
*/
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/property/PropertyResolver.java b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/property/PropertyResolver.java
index 576121957..835dd82b2 100644
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/property/PropertyResolver.java
+++ b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/property/PropertyResolver.java
@@ -7,8 +7,8 @@
*/
package org.apache.myrmidon.interfaces.property;
-import org.apache.avalon.framework.context.Context;
import org.apache.myrmidon.api.TaskException;
+import org.apache.myrmidon.api.TaskContext;
/**
*
@@ -33,6 +33,6 @@ public interface PropertyResolver
* @exception TaskException if an error occurs
*/
Object resolveProperties( final String value,
- final Context context )
+ final TaskContext context )
throws TaskException;
}
diff --git a/proposal/myrmidon/src/test/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java b/proposal/myrmidon/src/test/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
index 21aba6d3d..ef99004d7 100644
--- a/proposal/myrmidon/src/test/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
+++ b/proposal/myrmidon/src/test/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
@@ -10,9 +10,9 @@ package org.apache.myrmidon.components.property.test;
import java.io.File;
import java.util.Date;
import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.avalon.framework.context.Context;
import org.apache.myrmidon.AbstractMyrmidonTest;
import org.apache.myrmidon.api.TaskException;
+import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.components.workspace.DefaultTaskContext;
import org.apache.myrmidon.interfaces.property.PropertyResolver;
@@ -117,7 +117,7 @@ public abstract class AbstractPropertyResolverTestCase
*/
protected void doTestResolution( final String value,
final Object expected,
- final Context context )
+ final TaskContext context )
throws Exception
{
final Object resolved = m_resolver.resolveProperties( value, context );
@@ -131,7 +131,7 @@ public abstract class AbstractPropertyResolverTestCase
*/
protected void doTestFailure( final String value,
final String expectedErrorMessage,
- final Context context )
+ final TaskContext context )
{
try
{
diff --git a/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java b/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
index 21aba6d3d..ef99004d7 100644
--- a/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
+++ b/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/property/test/AbstractPropertyResolverTestCase.java
@@ -10,9 +10,9 @@ package org.apache.myrmidon.components.property.test;
import java.io.File;
import java.util.Date;
import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.avalon.framework.context.Context;
import org.apache.myrmidon.AbstractMyrmidonTest;
import org.apache.myrmidon.api.TaskException;
+import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.components.workspace.DefaultTaskContext;
import org.apache.myrmidon.interfaces.property.PropertyResolver;
@@ -117,7 +117,7 @@ public abstract class AbstractPropertyResolverTestCase
*/
protected void doTestResolution( final String value,
final Object expected,
- final Context context )
+ final TaskContext context )
throws Exception
{
final Object resolved = m_resolver.resolveProperties( value, context );
@@ -131,7 +131,7 @@ public abstract class AbstractPropertyResolverTestCase
*/
protected void doTestFailure( final String value,
final String expectedErrorMessage,
- final Context context )
+ final TaskContext context )
{
try
{