diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java b/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java
deleted file mode 100644
index 323b05cbb..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java
+++ /dev/null
@@ -1,23 +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.txt file.
- */
-package org.apache.myrmidon;
-
-/**
- * Abstract interface to hold constants.
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public interface Constants
-{
- //Constants to indicate the build of Myrmidon
- String BUILD_DATE = "@@DATE@@";
- String BUILD_VERSION = "@@VERSION@@";
-
- String BUILD_DESCRIPTION = "Myrmidon " + BUILD_VERSION + " compiled on " + BUILD_DATE;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java
deleted file mode 100644
index 042cdf1be..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java
+++ /dev/null
@@ -1,242 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.aut.converter.Converter;
-import org.apache.aut.converter.ConverterException;
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.interfaces.configurer.Configurer;
-import org.apache.myrmidon.interfaces.executor.ExecutionFrame;
-import org.apache.myrmidon.interfaces.executor.Executor;
-import org.apache.myrmidon.interfaces.role.RoleInfo;
-import org.apache.myrmidon.interfaces.role.RoleManager;
-import org.apache.myrmidon.interfaces.type.TypeException;
-import org.apache.myrmidon.interfaces.type.TypeFactory;
-import org.apache.myrmidon.interfaces.type.TypeManager;
-
-/**
- * This is the class that Task writers should extend to provide custom tasks.
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public abstract class AbstractContainerTask
- extends AbstractTask
-{
- private static final Resources REZ =
- ResourceManager.getPackageResources( AbstractContainerTask.class );
-
- ///For converting own attributes
- private Converter m_converter;
-
- ///For configuring own sub-elements
- private Configurer m_configurer;
-
- ///For executing sub-elements as tasks
- private Executor m_executor;
- private ExecutionFrame m_frame;
-
- /**
- * Retrieve context from container.
- *
- * @param context the context
- */
- public void contextualize( TaskContext context )
- throws TaskException
- {
- super.contextualize( context );
- m_configurer = (Configurer)getService( Configurer.class );
- m_converter = (Converter)getService( Converter.class );
- m_executor = (Executor)getService( Executor.class );
- m_frame = (ExecutionFrame)getService( ExecutionFrame.class );
- }
-
- /**
- * Helper method to convert an object to a specific type.
- *
- * @param to type to convert object to
- * @param object the object to convert
- * @return the converted object
- * @exception ConfigurationException if an error occurs
- */
- protected final Object convert( final Class to, final Object object )
- throws ConfigurationException
- {
- try
- {
- return m_converter.convert( to, object, getContext() );
- }
- catch( final ConverterException ce )
- {
- final String message = REZ.getString( "container.bad-config.error" );
- throw new ConfigurationException( message, ce );
- }
- }
-
- /**
- * Configure an object using specific configuration element.
- *
- * @param object the object
- * @param element the configuration element
- * @exception ConfigurationException if an error occurs
- */
- protected final void configureElement( final Object object,
- final Configuration element )
- throws ConfigurationException
- {
- m_configurer.configureElement( object, element, getContext() );
- }
-
- /**
- * Configure an object using specific configuration element.
- *
- * @param object the object
- * @param clazz the class to use when configuring element
- * @param element the configuration element
- * @exception ConfigurationException if an error occurs
- */
- protected final void configureElement( final Object object,
- final Class clazz,
- final Configuration element )
- throws ConfigurationException
- {
- m_configurer.configureElement( object, clazz, element, getContext() );
- }
-
- /**
- * Configure an objects attribute using parameters.
- *
- * @param object the object
- * @param name the attibute name
- * @param value the attibute value
- * @exception ConfigurationException if an error occurs
- */
- protected final void configureAttribute( final Object object, final String name, final String value )
- throws ConfigurationException
- {
- m_configurer.configureAttribute( object, name, value, getContext() );
- }
-
- /**
- * Configure an objects attribute using parameters.
- *
- * @param object the object
- * @param clazz the class to use when configuring element
- * @param name the attibute name
- * @param value the attibute value
- * @exception ConfigurationException if an error occurs
- */
- protected final void configureAttribute( final Object object,
- final Class clazz,
- final String name, final String value )
- throws ConfigurationException
- {
- m_configurer.configureAttribute( object, clazz, name, value, getContext() );
- }
-
- /**
- * Utility method to execute specified tasks in current ExecutionFrame.
- */
- protected final void executeTasks( final Configuration[] tasks )
- throws TaskException
- {
- for( int i = 0; i < tasks.length; i++ )
- {
- final Configuration task = tasks[ i ];
- executeTask( task );
- }
- }
-
- /**
- * Utility method to execute specified task in current ExecutionFrame.
- */
- protected final void executeTask( final Configuration task )
- throws TaskException
- {
- m_executor.execute( task, m_frame );
- }
-
- /**
- * Create an instance of type with specified type and in specified role.
- */
- protected final Object newInstance( final Class roleType, final String typeName )
- throws TaskException
- {
- try
- {
- final RoleInfo role = getRoleByType( roleType );
- final TypeFactory typeFactory = getTypeFactory( role.getName() );
- return typeFactory.create( typeName );
- }
- catch( Exception e )
- {
- final String message =
- REZ.getString( "container.no-create-type-for-type.error", roleType.getName(), typeName );
- throw new TaskException( message, e );
- }
- }
-
- /**
- * Create an instance of type with specified type and in specified role.
- */
- protected final Object newInstance( final String roleName, final String typeName )
- throws TaskException
- {
- try
- {
- final TypeFactory typeFactory = getTypeFactory( roleName );
- return typeFactory.create( typeName );
- }
- catch( final Exception e )
- {
- final String message =
- REZ.getString( "container.no-create-type.error", roleName, typeName );
- throw new TaskException( message, e );
- }
- }
-
- /**
- * Looks up a role using the role type.
- */
- protected final RoleInfo getRoleByType( final Class roleType )
- throws TaskException
- {
- final RoleManager roleManager = (RoleManager)getService( RoleManager.class );
- final RoleInfo role = roleManager.getRoleByType( roleType );
- if( role == null )
- {
- final String message = REZ.getString( "container.unknown-role-type.error", roleType.getName() );
- throw new TaskException( message );
- }
- return role;
- }
-
- /**
- * Locates a type factory.
- */
- protected final TypeFactory getTypeFactory( final String roleName )
- throws TaskException
- {
- try
- {
- final TypeManager typeManager = (TypeManager)getService( TypeManager.class );
- return typeManager.getFactory( roleName );
- }
- catch( final TypeException te )
- {
- final String message = REZ.getString( "container.no-factory.error", roleName );
- throw new TaskException( message, te );
- }
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFacadeTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFacadeTask.java
deleted file mode 100644
index 1be8b86c9..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFacadeTask.java
+++ /dev/null
@@ -1,187 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Abstract task used to write tasks that delegate to facades
- * such as Javac, Jspc and so forth.
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public abstract class AbstractFacadeTask
- extends AbstractContainerTask
- implements Configurable
-{
- private static final Resources REZ =
- ResourceManager.getPackageResources( AbstractFacadeTask.class );
-
- /**
- * The name of the attribute used to select specific
- * implementation of facade.
- */
- private final String m_selector;
-
- /**
- * The Class type for the facade (also used as the role
- * when looking up TypeManager).
- */
- private final Class m_facadeType;
-
- /**
- * The default name of implementation if none are specified.
- */
- private final String m_defaultName;
-
- /**
- * The configuration used to configure the facade implementation.
- */
- private Configuration m_configuration;
-
- /**
- * Create the facade task that works with specified facade class,
- * using the selector attribute to find implementation or using
- * defaultName if selector attribute not specified.
- */
- protected AbstractFacadeTask( final String selector,
- final Class facadeType,
- final String defaultName )
- {
- m_selector = selector;
- m_facadeType = facadeType;
- m_defaultName = defaultName;
- }
-
- /**
- * Supply the configuration for this task.
- */
- public void configure( final Configuration configuration )
- throws ConfigurationException
- {
- m_configuration = configuration;
- }
-
- /**
- * Utility method to create and configure the facade
- * implementation.
- */
- protected Object prepareFacade()
- throws TaskException
- {
- final Object facade = createFacade();
- configureFacade( facade );
- return facade;
- }
-
- /**
- * Utility method to configure the specified facade.
- * It will be configured according to normal resolution
- * rules using the configuration data supplied to task
- * minus the selector attribute if present.
- */
- protected void configureFacade( final Object facade )
- throws TaskException
- {
- Configuration configuration = m_configuration;
-
- if( null != m_selector &&
- null != m_configuration.getAttribute( m_selector, null ) )
- {
- configuration = rebuildConfiguration( m_configuration, m_selector );
- }
-
- try
- {
- configureElement( facade, m_facadeType, configuration );
- }
- catch( final ConfigurationException ce )
- {
- throw new TaskException( ce.getMessage(), ce );
- }
- }
-
- /**
- * Rebuild the configuration tree with the attribute with specified
- * name removed from top-level element.
- */
- private Configuration rebuildConfiguration( final Configuration configuration,
- final String attribute )
- {
- final DefaultConfiguration newConfiguration =
- new DefaultConfiguration( configuration.getName(),
- configuration.getLocation() );
-
- //Add all the attributes from old configuration except the one
- //that was used to select the particular implementation
- final String[] names = configuration.getAttributeNames();
- for( int i = 0; i < names.length; i++ )
- {
- final String name = names[ i ];
- if( !name.equals( attribute ) )
- {
- final String value = configuration.getAttribute( name, null );
- newConfiguration.setAttribute( name, value );
- }
- }
-
- //Add all elements to new configuration element in the
- //correct order
- final Configuration[] children = configuration.getChildren();
- for( int i = 0; i < children.length; i++ )
- {
- newConfiguration.addChild( children[ i ] );
- }
-
- return newConfiguration;
- }
-
- /**
- * Create the instance of the facade. It looks up the name
- * of the implementation via the getImplementation()
- * method and then creates a new instance from a TypeFactory
- * using that name and the facadeType (specified in the
- * constructor).
- */
- protected Object createFacade()
- throws TaskException
- {
- final String implementation = getImplementation();
- if( null == implementation )
- {
- final String message =
- REZ.getString( "facade.missing-impl.error", getContext().getName() );
- throw new TaskException( message );
- }
- return newInstance( m_facadeType, implementation );
- }
-
- /**
- * Get the shortname of the implementation
- * to use. It assumes that the implementation is registered in
- * the TypeFactory under this shortname.
- */
- protected String getImplementation()
- {
- if( null != m_selector )
- {
- return m_configuration.getAttribute( m_selector, m_defaultName );
- }
- else
- {
- return m_defaultName;
- }
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFileSet.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFileSet.java
deleted file mode 100644
index cf99bf0ac..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractFileSet.java
+++ /dev/null
@@ -1,42 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-/**
- * An abstract base class for all FileSets.
- * FileSets represent a pattern anchored by a root.
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public class AbstractFileSet
- extends PatternSet
-{
- private boolean m_defaultExcludes = true;
-
- /**
- * Add the default excludes to FileSet.
- */
- public final void setDefaultExcludes( final boolean defaultExcludes )
- {
- m_defaultExcludes = defaultExcludes;
- }
-
- public final boolean includeDefaultExcludes()
- {
- return m_defaultExcludes;
- }
-
- /**
- * Merge specified PatternSet into this patternSet.
- */
- public final void addPatternSet( final PatternSet set )
- {
- append( set );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractMatchingTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractMatchingTask.java
deleted file mode 100644
index 9d70502c5..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractMatchingTask.java
+++ /dev/null
@@ -1,71 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.myrmidon.api.AbstractTask;
-
-/**
- * An abstract base class for tasks that wish to operate on
- * a set of files. This class is based on the ant1.x MatchingTask and
- * should fullfill similar requirements.
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public abstract class AbstractMatchingTask
- extends AbstractTask
-{
- private FileSet m_fileset = new FileSet();
-
- /**
- * Retrieve fileset for Matching task.
- */
- protected FileSet getFileSet()
- {
- return m_fileset;
- }
-
- /**
- * The attribute that contains a list of itesm to be included.
- */
- public void setIncludes( final String includes )
- {
- m_fileset.setIncludes( includes );
- }
-
- /**
- * The attribute that contains a list of items to be excluded.
- */
- public void setExcludes( final String excludes )
- {
- m_fileset.setExcludes( excludes );
- }
-
- /**
- * Set this to true to use the defaul exclude patterns.
- */
- public void setDefaultexcludes( final boolean useDefaultExcludes )
- {
- m_fileset.setDefaultExcludes( useDefaultExcludes );
- }
-
- public void addInclude( final Pattern pattern )
- {
- m_fileset.addInclude( pattern );
- }
-
- public void addExclude( final Pattern pattern )
- {
- m_fileset.addExclude( pattern );
- }
-
- public void addPatternSet( final PatternSet set )
- {
- m_fileset.addPatternSet( set );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java
deleted file mode 100644
index d431160a2..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java
+++ /dev/null
@@ -1,93 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import java.io.File;
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.interfaces.deployer.Deployer;
-import org.apache.myrmidon.interfaces.deployer.DeploymentException;
-import org.apache.myrmidon.interfaces.deployer.TypeDefinition;
-import org.apache.myrmidon.interfaces.deployer.TypeDeployer;
-
-/**
- * Abstract task to extend to define a type.
- *
- * TODO: Make this support classpath sub-element in future
- *
- * @author Peter Donald
- * @version $Revision$ $Date$
- */
-public abstract class AbstractTypeDef
- extends AbstractContainerTask
-{
- private static final Resources REZ =
- ResourceManager.getPackageResources( AbstractTypeDef.class );
-
- // TODO - replace lib with class-path
- private File m_lib;
- private String m_name;
- private String m_classname;
-
- protected void setName( final String name )
- {
- m_name = name;
- }
-
- public void setClassname( final String classname )
- {
- m_classname = classname;
- }
-
- public void setLib( final File lib )
- {
- m_lib = lib;
- }
-
- protected final String getName()
- {
- return m_name;
- }
-
- protected final String getClassname()
- {
- return m_classname;
- }
-
- /**
- * Executes the task.
- */
- public void execute()
- throws TaskException
- {
- if( null == m_lib )
- {
- final String message = REZ.getString( "typedef.no-lib.error" );
- throw new TaskException( message );
- }
-
- try
- {
- // Locate the deployer, and use it to deploy the type
- final Deployer deployer = (Deployer)getService( Deployer.class );
- final TypeDeployer typeDeployer = deployer.createDeployer( m_lib );
- final TypeDefinition typeDef = createTypeDefinition();
- typeDeployer.deployType( typeDef );
- }
- catch( DeploymentException e )
- {
- throw new TaskException( e.getMessage(), e );
- }
- }
-
- /**
- * Creates the definition for the type to be deployed.
- */
- protected abstract TypeDefinition createTypeDefinition();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ChainFileNameMapper.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ChainFileNameMapper.java
deleted file mode 100644
index 29846a916..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/ChainFileNameMapper.java
+++ /dev/null
@@ -1,85 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import java.util.ArrayList;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * A mapper that applies a chain of mappers.
- *
- * @author Adam Murdoch
- * @version $Revision$ $Date$
- *
- * @ant.type type="mapper" name="chain"
- */
-public class ChainFileNameMapper
- implements FileNameMapper
-{
- private final ArrayList m_mappers = new ArrayList();
-
- /**
- * Adds a nested mapper.
- */
- public void add( final FileNameMapper mapper )
- {
- m_mappers.add( mapper );
- }
-
- /**
- * Returns an array containing the target filename(s) for the given source
- * file.
- */
- public String[] mapFileName( final String sourceFileName,
- final TaskContext context )
- throws TaskException
- {
- ArrayList names = new ArrayList();
- names.add( sourceFileName );
-
- final int count = m_mappers.size();
- for( int i = 0; i < count; i++ )
- {
- final FileNameMapper mapper = (FileNameMapper)m_mappers.get( i );
- names = mapNames( mapper, names, context );
- }
-
- return (String[])names.toArray( new String[ names.size() ] );
- }
-
- /**
- * Maps a set of names.
- */
- private ArrayList mapNames( final FileNameMapper mapper,
- final ArrayList names,
- final TaskContext context )
- throws TaskException
- {
- final ArrayList retval = new ArrayList();
-
- // Map each of the supplied names
- final int count = names.size();
- for( int i = 0; i < count; i++ )
- {
- final String name = (String)names.get( i );
- final String[] newNames = mapper.mapFileName( name, context );
- if( newNames == null )
- {
- continue;
- }
- for( int j = 0; j < newNames.length; j++ )
- {
- final String newName = newNames[ j ];
- retval.add( newName );
- }
- }
-
- return retval;
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.java
deleted file mode 100644
index 73fd2a4d3..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-/**
- * Base class for those classes that can appear inside the build file
- * as stand alone data types.
- *
- * @author Peter Donald
- * @ant:role shorthand="data-type"
- */
-public interface DataType
-{
- String ROLE = DataType.class.getName();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileNameMapper.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileNameMapper.java
deleted file mode 100644
index 9640171f6..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileNameMapper.java
+++ /dev/null
@@ -1,44 +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.txt file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Interface to be used by SourceFileScanner.
- * - * Used to find the name of the target file(s) corresponding to a source file. - *
- * - * The rule by which the file names are transformed is specified via the setFrom - * and setTo methods. The exact meaning of these is implementation dependent. - *
- * - * @author Stefan Bodewig - * - * @ant:role shorthand="mapper" - */ -public interface FileNameMapper -{ - /** - * Returns an array containing the target filename(s) for the given source - * file. - * - *if the given rule doesn't apply to the source file, implementation - * must return null. SourceFileScanner will then omit the source file in - * question.
- * - * @param sourceFileName the name of the source file relative to some given - * basedirectory. - * @param context the context to perform the mapping in. - * @return Description of the Returned Value - */ - String[] mapFileName( String sourceFileName, TaskContext context ) - throws TaskException; -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileSet.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileSet.java deleted file mode 100644 index eb05b909c..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/FileSet.java +++ /dev/null @@ -1,38 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import java.io.File; - -/** - * A FileSet represents a set of files selected by patterns with a - * specified root. - * - * @author Peter Donald - * @version $Revision$ $Date$ - * - * @ant.data-type name="fileset" - */ -public class FileSet - extends AbstractFileSet -{ - private File m_dir; - - /** - * Specify the base directory at which the file set is rooted. - */ - public final void setDir( File dir ) - { - m_dir = dir; - } - - public final File getDir() - { - return m_dir; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/JavaVersion.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/JavaVersion.java deleted file mode 100644 index d8309e237..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/JavaVersion.java +++ /dev/null @@ -1,77 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import org.apache.avalon.framework.ValuedEnum; - -/** - * Type safe wrapper class for Java Version enums. - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public final class JavaVersion - extends ValuedEnum -{ - //standard enums for version of JVM - public static final JavaVersion JAVA1_0 = new JavaVersion( "Java 1.0", 100 ); - public static final JavaVersion JAVA1_1 = new JavaVersion( "Java 1.1", 110 ); - public static final JavaVersion JAVA1_2 = new JavaVersion( "Java 1.2", 120 ); - public static final JavaVersion JAVA1_3 = new JavaVersion( "Java 1.3", 130 ); - public static final JavaVersion JAVA1_4 = new JavaVersion( "Java 1.4", 140 ); - - private static final JavaVersion CURRENT = determineCurrentJavaVersion(); - - /** - * Method to retrieve the current JVM version. - * - * @return the current JVM version - */ - public static final JavaVersion getCurrentJavaVersion() - { - return CURRENT; - } - - /** - * Private constructor so no instance except here can be defined. - * - * @param name the java version name - * @param value the version * 100 - */ - private JavaVersion( final String name, final int value ) - { - super( name, value ); - } - - /** - * Helper method to retrieve current JVM version. - * - * @return the current JVM version - */ - private static final JavaVersion determineCurrentJavaVersion() - { - JavaVersion version = JavaVersion.JAVA1_0; - - try - { - Class.forName( "java.lang.Void" ); - version = JAVA1_1; - Class.forName( "java.lang.ThreadLocal" ); - version = JAVA1_2; - Class.forName( "java.lang.StrictMath" ); - version = JAVA1_3; - Class.forName( "java.lang.CharSequence" ); - version = JAVA1_4; - } - catch( final ClassNotFoundException cnfe ) - { - } - - return version; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/LogLevel.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/LogLevel.java deleted file mode 100644 index 37d7d06d3..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/LogLevel.java +++ /dev/null @@ -1,132 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import java.util.HashMap; -import java.util.Set; -import org.apache.avalon.framework.Enum; -import org.apache.myrmidon.api.TaskContext; - -/** - * Type safe Enum for Log Levels and utility method - * for using enum to write to logger. - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public final class LogLevel - extends Enum -{ - //Map for all the levels - private static final HashMap c_levels = new HashMap(); - - //standard enums for version of JVM - public static final LogLevel ERROR = new LogLevel( "error" ); - public static final LogLevel WARN = new LogLevel( "warn" ); - public static final LogLevel INFO = new LogLevel( "info" ); - public static final LogLevel VERBOSE = new LogLevel( "verbose" ); - public static final LogLevel DEBUG = new LogLevel( "debug" ); - - /** - * Retrieve the log level for the specified name. - * - * @param name the name of the LogLevel object to retrieve - * @returns The LogLevel for specified name or null - */ - public static LogLevel getByName( final String name ) - { - return (LogLevel)c_levels.get( name ); - } - - /** - * Retrieve the names of all the LogLevels. - * - * @returns The names of all the LogLevels - */ - public static String[] getNames() - { - final Set keys = c_levels.keySet(); - return (String[])keys.toArray( new String[ keys.size() ] ); - } - - /** - * Log a message. - * - * @param level the level to write the log message at. - * @param message the message to write. - */ - public static void log( final TaskContext context, - final LogLevel level, - final String message ) - { - if( ERROR == level ) - { - context.error( message ); - } - else if( WARN == level ) - { - context.warn( message ); - } - else if( INFO == level ) - { - context.info( message ); - } - else if( VERBOSE == level ) - { - context.verbose( message ); - } - else - { - context.debug( message ); - } - } - - /** - * Log a message. - * - * @param level the level to write the log message at. - * @param message the message to write. - * @param throwable the throwable. - */ - public static void log( final TaskContext context, - final LogLevel level, - final String message, - final Throwable throwable ) - { - if( ERROR == level ) - { - context.error( message, throwable ); - } - else if( WARN == level ) - { - context.warn( message, throwable ); - } - else if( INFO == level ) - { - context.info( message, throwable ); - } - else if( VERBOSE == level ) - { - context.verbose( message, throwable ); - } - else - { - context.debug( message, throwable ); - } - } - - /** - * Private constructor so no instance except here can be defined. - * - * @param name the name of Log Level - */ - private LogLevel( final String name ) - { - super( name, c_levels ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java deleted file mode 100644 index 5fac4e2f4..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java +++ /dev/null @@ -1,142 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.framework.conditions.Condition; -import org.apache.myrmidon.framework.conditions.IsTrueCondition; -import org.apache.myrmidon.framework.conditions.NotCondition; - -/** - * Basic data type for holding patterns. - * - * @author Peter Donald - * @version $Revision$ $Date$ - * @ant.data-type name="pattern" - */ -public class Pattern - implements DataType -{ - private static final Resources REZ = - ResourceManager.getPackageResources( Pattern.class ); - - private String m_name; - private Condition m_condition; - - public Pattern() - { - } - - public Pattern( final String name ) - { - m_name = name; - } - - /** - * Retrieve value of pattern. - * - * @return the value of pattern - */ - public String getName() - { - return m_name; - } - - /** - * Get condition associated with pattern if any. - * - * @return the Condition - */ - public Condition getCondition() - { - return m_condition; - } - - /** - * Setter method for name of pattern. - * - * @param name the name - */ - public void setName( final String name ) - { - m_name = name; - } - - /** - * Set if clause on pattern. - * - * @param condition the condition - * @exception TaskException if an error occurs - */ - public void setIf( final String condition ) - throws TaskException - { - verifyConditionNull(); - m_condition = new IsTrueCondition( condition ); - } - - /** - * Set unless clause of pattern. - * - * @param condition the unless clause - * @exception TaskException if an error occurs - */ - public void setUnless( final String condition ) - throws TaskException - { - verifyConditionNull(); - m_condition = new NotCondition( new IsTrueCondition( condition ) ); - } - - public String evaluateName( final TaskContext context ) - { - try - { - final Condition condition = getCondition(); - final boolean result = ( condition == null || condition.evaluate( context ) ); - if( result ) - { - return getName(); - } - } - catch( final TaskException te ) - { - //ignore for the moment - } - return null; - } - - public String toString() - { - String result = "Pattern['" + m_name + "',"; - if( null != m_condition ) - { - result = result + m_condition; - } - return result + "]"; - } - - /** - * Utility method to make sure condition unset. - * Made so that it is not possible for both if and unless to be set. - * - * @exception TaskException if an error occurs - */ - private void verifyConditionNull() - throws TaskException - { - if( null != m_condition ) - { - final String message = REZ.getString( "pattern.ifelse-duplicate.error" ); - throw new TaskException( message ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternSet.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternSet.java deleted file mode 100644 index 1ad303366..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternSet.java +++ /dev/null @@ -1,115 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import java.util.ArrayList; -import java.util.StringTokenizer; - -/** - * Named collection of include/exclude tags.- * - * @author Arnout J. Kuiper - * @author Stefano Mazzocchi - * @author Sam Ruby - * @author Jon S. Stevens - * @author Stefan Bodewig - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public class PatternSet -{ - private ArrayList m_includes = new ArrayList(); - private ArrayList m_excludes = new ArrayList(); - - /** - * Sets the set of exclude patterns. Patterns may be separated by a comma or - * a space. - * - * @param excludes the string containing the exclude patterns - */ - public void setExcludes( final String excludes ) - { - final Pattern[] patterns = parsePatterns( excludes ); - for( int i = 0; i < patterns.length; i++ ) - { - addExclude( patterns[ i ] ); - } - } - - /** - * Sets the set of include patterns. Patterns may be separated by a comma or - * a space. - * - * @param includes the string containing the include patterns - */ - public void setIncludes( final String includes ) - { - final Pattern[] patterns = parsePatterns( includes ); - for( int i = 0; i < patterns.length; i++ ) - { - addInclude( patterns[ i ] ); - } - } - - /** - * add a name entry on the exclude list - */ - public void addExclude( final Pattern pattern ) - { - m_excludes.add( pattern ); - } - - /** - * add a name entry on the include list - */ - public void addInclude( final Pattern pattern ) - { - m_includes.add( pattern ); - } - - public final ArrayList getIncludes() - { - return m_includes; - } - - public final ArrayList getExcludes() - { - return m_excludes; - } - - /** - * Adds the patterns of the other instance to this set. - */ - public void append( final PatternSet other ) - { - m_includes.addAll( other.m_includes ); - m_excludes.addAll( other.m_excludes ); - } - - public String toString() - { - return "PatternSet [ includes: " + m_includes + - " excludes: " + m_excludes + " ]"; - } - - private Pattern[] parsePatterns( final String patternString ) - { - final ArrayList patterns = new ArrayList(); - if( patternString != null && patternString.length() > 0 ) - { - StringTokenizer tok = new StringTokenizer( patternString, ", ", false ); - while( tok.hasMoreTokens() ) - { - final Pattern pattern = new Pattern( tok.nextToken() ); - patterns.add( pattern ); - } - } - - return (Pattern[])patterns.toArray( new Pattern[ patterns.size() ] ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternUtil.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternUtil.java deleted file mode 100644 index b99e96ec8..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternUtil.java +++ /dev/null @@ -1,64 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import java.util.ArrayList; -import java.util.Iterator; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public class PatternUtil -{ - /** - * Returns the filtered include patterns. - */ - public static String[] getIncludePatterns( final PatternSet set, - final TaskContext context ) - throws TaskException - { - return toArray( set.getIncludes(), context ); - } - - public static String[] getExcludePatterns( final PatternSet set, - final TaskContext context ) - throws TaskException - { - return toArray( set.getExcludes(), context ); - } - - /** - * Convert a vector of Pattern elements into an array of Strings. - */ - private static String[] toArray( final ArrayList list, final TaskContext context ) - { - if( list.size() == 0 ) - { - return null; - } - - final ArrayList names = new ArrayList(); - final Iterator patterns = list.iterator(); - while( patterns.hasNext() ) - { - final Pattern pattern = (Pattern)patterns.next(); - final String result = pattern.evaluateName( context ); - if( null != result && result.length() > 0 ) - { - names.add( result ); - } - } - - return (String[])names.toArray( new String[ names.size() ] ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.properties deleted file mode 100644 index dbd764ede..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Resources.properties +++ /dev/null @@ -1,20 +0,0 @@ -container.null-value.error=Value ({0}) resolved to null. -container.bad-resolve.error=Error resolving value ({0}). -container.bad-config.error=Error converting value. -container.no-factory.error=Could not locate the type factory for role "{0}". -container.no-create-type.error=Could not create an instance of role "{0}" with type name "{1}". -container.no-create-type-for-type.error=Could not create an instance of class "{0}" with type name "{1}". -container.unknown-role-type.error=Could not determine the role for class "{0}". - -typedef.no-lib.error=Must specify the lib parameter. - -condition.no-resolve.error=Error resolving {0}. - -pattern.ifelse-duplicate.error=Can only set one of if/else for pattern data type. - -type.no-create.error=Unable to create datatype. -type.no-id.error=Id must be specified. - -unknown-family=Don't know how to detect os family "{0}" - -facade.missing-impl.error=Unable to determine the name of implementation for facade task "{0}". diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TaskList.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TaskList.java deleted file mode 100644 index c569b7342..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TaskList.java +++ /dev/null @@ -1,32 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import java.util.ArrayList; -import org.apache.avalon.framework.configuration.Configuration; - -/** - * This object contains an ordered list of tasks. - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public class TaskList -{ - private ArrayList m_tasks = new ArrayList(); - - public void add( final Configuration task ) - { - m_tasks.add( task ); - } - - public Configuration[] getTasks() - { - return (Configuration[])m_tasks.toArray( new Configuration[ m_tasks.size() ] ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java deleted file mode 100644 index 683769a1f..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java +++ /dev/null @@ -1,91 +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.txt file. - */ -package org.apache.myrmidon.framework; - -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.avalon.framework.configuration.Configurable; -import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.configuration.ConfigurationException; -import org.apache.avalon.framework.configuration.DefaultConfiguration; -import org.apache.myrmidon.api.TaskException; - -/** - * This is the property "task" to declare a binding of a datatype to a name. - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public class TypeInstanceTask - extends AbstractContainerTask - implements Configurable -{ - private static final Resources REZ = - ResourceManager.getPackageResources( TypeInstanceTask.class ); - - private String m_id; - private Object m_value; - - public void configure( final Configuration configuration ) - throws ConfigurationException - { - final DefaultConfiguration newConfiguration = - new DefaultConfiguration( configuration.getName(), configuration.getLocation() ); - - final String[] attributes = configuration.getAttributeNames(); - for( int i = 0; i < attributes.length; i++ ) - { - final String name = attributes[ i ]; - final String value = configuration.getAttribute( name ); - - if( name.equals( "id" ) || name.equals( "local-scope" ) ) - { - configureAttribute( this, name, value ); - } - else - { - newConfiguration.setAttribute( name, value ); - } - } - - final Configuration[] children = configuration.getChildren(); - for( int i = 0; i < children.length; i++ ) - { - newConfiguration.addChild( children[ i ] ); - } - - try - { - m_value = newInstance( DataType.ROLE, configuration.getName() ); - } - catch( final Exception e ) - { - final String message = REZ.getString( "type.no-create.error" ); - throw new ConfigurationException( message, e ); - } - - configureElement( m_value, newConfiguration ); - } - - public void setId( final String id ) - { - m_id = id; - } - - public void execute() - throws TaskException - { - if( null == m_id ) - { - final String message = REZ.getString( "type.no-id.error" ); - throw new TaskException( message ); - } - - getContext().setProperty( m_id, m_value ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/AndCondition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/AndCondition.java deleted file mode 100644 index 6fbdf5dc4..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/AndCondition.java +++ /dev/null @@ -1,56 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import java.util.ArrayList; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * <and> condition container.
- * - * Iterates over all conditions and returns false as soon as one evaluates to - * false. An empty and condition returns true.
- * - * @author Stefan Bodewig - * @version $Revision$ - * - * @ant.type type="condition" name="and" - */ -public class AndCondition - implements Condition -{ - private final ArrayList m_conditions = new ArrayList(); - - /** - * Adds a condition. - */ - public void add( final Condition condition ) - { - m_conditions.add( condition ); - } - - /** - * Evaluates the condition. - * - */ - public boolean evaluate( final TaskContext context ) - throws TaskException - { - final int count = m_conditions.size(); - for( int i = 0; i < count; i++ ) - { - final Condition condition = (Condition)m_conditions.get( i ); - if( !condition.evaluate( context ) ) - { - return false; - } - } - return true; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Condition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Condition.java deleted file mode 100644 index 0df965116..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Condition.java +++ /dev/null @@ -1,32 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * Class representing a condition. - * - * @author Stefan Bodewig - * @author Peter Donald - * @version $Revision$ $Date$ - * - * @ant:role shorthand="condition" - */ -public interface Condition -{ - /** - * Evaluates this condition. - * - * @param context - * The context to evaluate the condition in. - */ - boolean evaluate( final TaskContext context ) - throws TaskException; -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsSetCondition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsSetCondition.java deleted file mode 100644 index 64da4dff0..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsSetCondition.java +++ /dev/null @@ -1,66 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * A {@link Condition} that is true when a property is set. - * - * @author Stefan Bodewig - * @author Peter Donald - * @author Adam Murdoch - * @version $Revision$ $Date$ - * - * @ant.type type="condition" name="is-set" - */ -public class IsSetCondition - implements Condition -{ - private static final Resources REZ = - ResourceManager.getPackageResources( IsSetCondition.class ); - - private String m_property; - - public IsSetCondition( final String propName ) - { - m_property = propName; - } - - public IsSetCondition() - { - } - - /** - * Set the property name to test. - */ - public void setProperty( final String propName ) - { - m_property = propName; - } - - /** - * Evaluates the condition. - */ - public boolean evaluate( final TaskContext context ) - throws TaskException - { - if( m_property == null ) - { - final String message = REZ.getString( "isset.no-property.error" ); - throw new TaskException( message ); - } - - // Resolve the condition - final Object object = context.getProperty( m_property ); - return ( object != null ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsTrueCondition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsTrueCondition.java deleted file mode 100644 index dcd45653c..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/IsTrueCondition.java +++ /dev/null @@ -1,84 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.aut.converter.Converter; -import org.apache.aut.converter.ConverterException; - -/** - * A {@link Condition} that is true when a property is set, but not set to - * 'false'. - * - * @author Stefan Bodewig - * @author Peter Donald - * @author Adam Murdoch - * @version $Revision$ $Date$ - * - * @ant.type type="condition" name="is-true" - */ -public class IsTrueCondition - implements Condition -{ - private static final Resources REZ = - ResourceManager.getPackageResources( IsTrueCondition.class ); - - private String m_property; - - public IsTrueCondition( final String propName ) - { - m_property = propName; - } - - public IsTrueCondition() - { - } - - /** - * Set the property name to test. - */ - public void setProperty( final String propName ) - { - m_property = propName; - } - - /** - * Evaluates the condition. - */ - public boolean evaluate( final TaskContext context ) - throws TaskException - { - if( m_property == null ) - { - final String message = REZ.getString( "isset.no-property.error" ); - throw new TaskException( message ); - } - - // Resolve the property name - final Object object = context.getProperty( m_property ); - if( object == null ) - { - return false; - } - - // Convert value to boolean - try - { - final Converter converter = (Converter)context.getService( Converter.class ); - final Boolean value = (Boolean)converter.convert( Boolean.class, object, context ); - return value.booleanValue(); - } - catch( final ConverterException e ) - { - throw new TaskException( e.getMessage(), e ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/NotCondition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/NotCondition.java deleted file mode 100644 index c96d50cf5..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/NotCondition.java +++ /dev/null @@ -1,69 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; - -/** - * <not> condition. Evaluates to true if the single condition nested into - * it is false and vice versa. - * - * @author Stefan Bodewig - * @version $Revision$ - * - * @ant.type type="condition" name="not" - */ -public class NotCondition - implements Condition -{ - private static final Resources REZ = - ResourceManager.getPackageResources( NotCondition.class ); - - private Condition m_condition; - - public NotCondition() - { - } - - public NotCondition( final Condition condition ) - { - m_condition = condition; - } - - /** - * Adds a nested condition. - */ - public void add( final Condition condition ) - throws TaskException - { - if( m_condition != null ) - { - final String message = REZ.getString( "not.too-many-conditions.error" ); - throw new TaskException( message ); - } - m_condition = condition; - } - - /** - * Evaluates the condition. - */ - public boolean evaluate( final TaskContext context ) - throws TaskException - { - if( m_condition == null ) - { - final String message = REZ.getString( "not.no-condition.error" ); - throw new TaskException( message ); - } - - return ! m_condition.evaluate( context ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/OrCondition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/OrCondition.java deleted file mode 100644 index 2e4683ba9..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/OrCondition.java +++ /dev/null @@ -1,56 +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.txt file. - */ -package org.apache.myrmidon.framework.conditions; - -import java.util.ArrayList; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * <or> condition container.- * - * Iterates over all conditions and returns true as soon as one evaluates to - * true. An empty container evaluates to true
- * - * @author Stefan Bodewig - * @version $Revision$ - * - * @ant.type type="condition" name="or" - */ -public class OrCondition - implements Condition -{ - private final ArrayList m_conditions = new ArrayList(); - - /** - * Adds a condition. - */ - public void add( final Condition condition ) - { - m_conditions.add( condition ); - } - - /** - * Evaluates the condition. - * - */ - public boolean evaluate( final TaskContext context ) - throws TaskException - { - final int count = m_conditions.size(); - for( int i = 0; i < count; i++ ) - { - final Condition condition = (Condition)m_conditions.get( i ); - if( condition.evaluate( context ) ) - { - return true; - } - } - return (count == 0); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Resources.properties deleted file mode 100644 index 8a3743cd7..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/conditions/Resources.properties +++ /dev/null @@ -1,4 +0,0 @@ -isset.no-property.error=No property specified to test. -istrue.no-property.error=No property specified to test. -not.no-condition.error=No condition specified. -not.too-many-conditions.error=Too many conditions specified. \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/ExecManagerFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/ExecManagerFactory.java deleted file mode 100644 index 1cefdb8d0..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/ExecManagerFactory.java +++ /dev/null @@ -1,49 +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.txt file. - */ -package org.apache.myrmidon.framework.factories; - -import java.io.File; -import org.apache.aut.nativelib.impl.DefaultExecManager; -import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.context.Contextualizable; -import org.apache.myrmidon.interfaces.service.AntServiceException; -import org.apache.myrmidon.interfaces.service.ServiceFactory; - -/** - * A Factory responsible for creating the ExecManager service. - * - * @author Peter Donald - * @version $Revision$ $Date$ - */ -public class ExecManagerFactory - implements ServiceFactory, Contextualizable -{ - private File m_homeDir; - - public void contextualize( final Context context ) throws ContextException - { - m_homeDir = (File)context.get( "myrmidon.home" ); - } - - /** - * Create the ExecManager Service. - */ - public Object createService() - throws AntServiceException - { - try - { - return new DefaultExecManager( m_homeDir ); - } - catch( final Exception ee ) - { - throw new AntServiceException( ee.getMessage(), ee ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/Resources.properties deleted file mode 100644 index c0a60cd5d..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/Resources.properties +++ /dev/null @@ -1,2 +0,0 @@ -missing-home-dir.error=Cannot locate antRun scripts: Property 'myrmidon.home' not specified -create-provider.error=Could not create file system provider "{0}". \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManager.java deleted file mode 100644 index f4690d716..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManager.java +++ /dev/null @@ -1,93 +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.txt file. - */ -package org.apache.myrmidon.framework.factories; - -import org.apache.aut.vfs.FileSystemException; -import org.apache.aut.vfs.impl.DefaultFileSystemManager; -import org.apache.aut.vfs.provider.FileSystemProvider; -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.service.ServiceException; -import org.apache.avalon.framework.service.ServiceManager; -import org.apache.avalon.framework.service.Serviceable; -import org.apache.myrmidon.interfaces.type.TypeFactory; -import org.apache.myrmidon.interfaces.type.TypeManager; - -/** - * The myrmidon FileSystemManager implementation. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public class VfsManager - extends DefaultFileSystemManager - implements Serviceable, Initializable -{ - private static final Resources REZ - = ResourceManager.getPackageResources( VfsManager.class ); - - private TypeManager m_typeManager; - - /** - * Locate the services used by this service. - */ - public void service( final ServiceManager serviceManager ) throws ServiceException - { - m_typeManager = (TypeManager)serviceManager.lookup( TypeManager.ROLE ); - } - - /** - * Initialises this service. - */ - public void initialize() throws Exception - { - final TypeFactory factory = m_typeManager.getFactory( FileSystemProvider.ROLE ); - - // TODO - make this list configurable - - // Required providers - addProvider( factory, new String[]{"file"}, "file", false ); - addProvider( factory, new String[]{"zip", "jar"}, "zip", false ); - - // Optional providers - addProvider( factory, new String[]{"smb"}, "smb", true ); - addProvider( factory, new String[]{"ftp"}, "ftp", true ); - } - - /** - * Registers a file system provider. - */ - private void addProvider( final TypeFactory factory, - final String[] urlSchemes, - final String providerName, - final boolean ignoreIfNotPresent ) - throws FileSystemException - { - // Create an instance - if( ignoreIfNotPresent && !factory.canCreate( providerName ) ) - { - return; - } - - final FileSystemProvider provider; - try - { - provider = (FileSystemProvider)factory.create( providerName ); - } - catch( Exception e ) - { - final String message = REZ.getString( "create-provider.error", providerName ); - throw new FileSystemException( message, e ); - } - - // Register the provider - addProvider( urlSchemes, provider ); - } - -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManagerFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManagerFactory.java deleted file mode 100644 index b40806c21..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories/VfsManagerFactory.java +++ /dev/null @@ -1,36 +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.txt file. - */ -package org.apache.myrmidon.framework.factories; - -import org.apache.aut.vfs.FileSystemManager; -import org.apache.avalon.excalibur.i18n.ResourceManager; -import org.apache.avalon.excalibur.i18n.Resources; -import org.apache.myrmidon.interfaces.service.AntServiceException; -import org.apache.myrmidon.interfaces.service.ServiceFactory; - -/** - * A factory that creates the {@link FileSystemManager} service. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public class VfsManagerFactory - implements ServiceFactory -{ - private static final Resources REZ - = ResourceManager.getPackageResources( VfsManagerFactory.class ); - - /** - * Create a service that coresponds to this factory. - */ - public Object createService() - throws AntServiceException - { - return new VfsManager(); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ArrayFileList.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ArrayFileList.java deleted file mode 100644 index 1a2de020b..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ArrayFileList.java +++ /dev/null @@ -1,39 +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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * A PathElement made up of an array of strings. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public class ArrayFileList - implements FileList -{ - private final String[] m_parts; - - public ArrayFileList( final String part ) - { - m_parts = new String[] { part } ; - } - - public ArrayFileList( final String[] parts ) - { - m_parts = parts; - } - - public String[] listFiles( final TaskContext context ) - throws TaskException - { - return m_parts; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileList.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileList.java deleted file mode 100644 index e3bb67603..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileList.java +++ /dev/null @@ -1,31 +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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; - -/** - * A list of files. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - * - * @ant:role shorthand="path" - */ -public interface FileList -{ - /** - * Returns the files in this list. - * - * @param context the context to use to evaluate the list. - * @return The names of the files in this list. All names are absolute paths. - */ - String[] listFiles( TaskContext context ) - throws TaskException; -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListToStringConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListToStringConverter.java deleted file mode 100644 index 22d809f34..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListToStringConverter.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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import org.apache.aut.converter.AbstractConverter; -import org.apache.aut.converter.ConverterException; -import org.apache.aut.nativelib.PathUtil; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.framework.file.FileList; - -/** - * Converters from FileList to String. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - * - * @ant.converter source="org.apache.myrmidon.framework.file.FileList" destination="java.lang.String" - */ -public class FileListToStringConverter - extends AbstractConverter -{ - public FileListToStringConverter() - { - super( FileList.class, String.class ); - } - - protected Object convert( final Object original, final Object context ) - throws ConverterException - { - try - { - final TaskContext taskContext = (TaskContext)context; - final FileList fileList = (FileList)original; - final String[] files = fileList.listFiles( taskContext ); - return PathUtil.formatPath( files ); - } - catch( final TaskException e ) - { - throw new ConverterException( e.getMessage(), e ); - } - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListUtil.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListUtil.java deleted file mode 100644 index 00ecc4d3d..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/FileListUtil.java +++ /dev/null @@ -1,102 +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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; -import org.apache.myrmidon.interfaces.classloader.ClassLoaderException; -import org.apache.aut.nativelib.PathUtil; -import java.io.File; -import java.io.IOException; -import java.net.URL; - -/** - * Utility methods for dealing with {@link FileList} objects. - * - * @author Peter Donald - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public final class FileListUtil -{ - private FileListUtil() - { - } - - /** - * Formats a path into its native representation. - */ - public static String formatPath( final FileList path, final TaskContext context ) - throws TaskException - { - final String[] list = path.listFiles( context ); - return PathUtil.formatPath( list ); - } - - /** - * Converts a path into an array of Files. - */ - public static File[] toFiles( final FileList path, final TaskContext context ) - throws TaskException - { - final String[] list = path.listFiles( context ); - final File[] result = new File[ list.length ]; - for( int i = 0; i < list.length; i++ ) - { - result[ i ] = new File( list[ i ] ); - } - return result; - } - - /** - * Converts a path into an array of URLs - useful for building a ClassLoader. - */ - public static URL[] toURLs( final FileList path, final TaskContext context ) - throws TaskException - { - try - { - final String[] list = path.listFiles( context ); - - final URL[] result = new URL[ list.length ]; - - // path containing one or more elements - for( int i = 0; i < list.length; i++ ) - { - result[ i ] = new File( list[ i ] ).toURL(); - } - - return result; - } - catch( final IOException ioe ) - { - throw new TaskException( "Malformed path entry.", ioe ); - } - } - - /** - * Creates a ClassLoader from a class-path. - */ - public static ClassLoader createClassLoader( final FileList classpath, - final TaskContext context ) - throws TaskException - { - final File[] files = toFiles( classpath, context ); - final ClassLoaderManager manager = (ClassLoaderManager)context.getService( ClassLoaderManager.class ); - try - { - return manager.createClassLoader( files ); - } - catch( final ClassLoaderException e ) - { - throw new TaskException( e.getMessage(), e ); - } - } - -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ParsedPathElement.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ParsedPathElement.java deleted file mode 100644 index ebafdb677..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/ParsedPathElement.java +++ /dev/null @@ -1,36 +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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.framework.file.FileList; -import org.apache.tools.todo.util.FileUtils; - -/** - * A PathElement that is parsed from a string. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public class ParsedPathElement - implements FileList -{ - private final String m_path; - - public ParsedPathElement( final String path ) - { - m_path = path; - } - - public String[] listFiles( final TaskContext context ) - throws TaskException - { - return FileUtils.translatePath( context.getBaseDirectory(), m_path ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/Path.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/Path.java deleted file mode 100644 index f9cdf43c7..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/Path.java +++ /dev/null @@ -1,178 +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.txt file. - */ -package org.apache.myrmidon.framework.file; - -import java.io.File; -import java.util.ArrayList; -import org.apache.myrmidon.api.TaskContext; -import org.apache.myrmidon.api.TaskException; -import org.apache.myrmidon.framework.DataType; -import org.apache.myrmidon.framework.FileSet; -import org.apache.myrmidon.framework.file.ArrayFileList; -import org.apache.myrmidon.framework.file.FileList; -import org.apache.tools.todo.util.FileUtils; -import org.apache.tools.todo.types.DirectoryScanner; -import org.apache.tools.todo.types.ScannerUtil; - -/** - * This object represents a path as used by CLASSPATH or PATH environment - * variable.
- *
- *
- * <sometask>
- * <somepath>
- * <pathelement location="/path/to/file.jar" />
- *
- * <pathelement
- * path="/path/to/file2.jar:/path/to/class2;/path/to/class3" />
- * <pathelement location="/path/to/file3.jar" />
- *
- * <pathelement location="/path/to/file4.jar" />
- *
- * </somepath>
- * </sometask>
- *
- *
- * The object implemention sometask must provide a method called
- * createSomepath which returns an instance of Path.
- * Nested path definitions are handled by the Path object and must be labeled
- * pathelement.
- *
- * The path element takes a parameter path which will be parsed and
- * split into single elements. It will usually be used to define a path from an
- * environment variable.
- *
- * @author Thomas.Haas@softwired-inc.com
- * @author Stefan Bodewig
- *
- * @ant.data-type name="path"
- */
-public class Path
- implements DataType, FileList
-{
- private final ArrayList m_elements = new ArrayList();
-
- public Path( final String path )
- {
- add( path );
- }
-
- public Path()
- {
- }
-
- /**
- * Adds a String to the ArrayList if it isn't already included.
- */
- private void addUnlessPresent( final ArrayList list, final String entry )
- {
- if( !list.contains( entry ) )
- {
- list.add( entry );
- }
- }
-
- /**
- * Adds an element to the path.
- */
- public void setLocation( final File location )
- {
- addLocation( location );
- }
-
- /**
- * Adds a element definition to the path.
- *
- * @param location the location of the element to add (must not be null
- * nor empty.
- */
- public void addLocation( final File location )
- {
- final FileList pathElement = new ArrayFileList( location.getAbsolutePath() );
- m_elements.add( pathElement );
- }
-
- /**
- * Adds a nested <fileset> element.
- */
- public void addFileset( final FileSet fileSet )
- {
- m_elements.add( fileSet );
- }
-
- /**
- * Adds a path.
- */
- public void setPath( final String path )
- {
- add( path );
- }
-
- /**
- * Adds a path.
- */
- public void add( final String path )
- {
- final FileList pathElement = new ParsedPathElement( path );
- m_elements.add( pathElement );
- }
-
- /**
- * Adds a path.
- */
- public void add( final String[] path )
- {
- final FileList pathElement = new ArrayFileList( path );
- m_elements.add( pathElement );
- }
-
- /**
- * Adds a path.
- */
- public void add( final FileList list )
- {
- m_elements.add( list );
- }
-
- /**
- * Returns all path elements defined by this and nested path objects.
- * The paths returned by this method are absolute.
- */
- public String[] listFiles( final TaskContext context )
- throws TaskException
- {
- ArrayList result = new ArrayList( 2 * m_elements.size() );
- for( int i = 0; i < m_elements.size(); i++ )
- {
- Object o = m_elements.get( i );
- if( o instanceof FileList )
- {
- final FileList element = (FileList)o;
- final String[] parts = element.listFiles( context );
- for( int j = 0; j < parts.length; j++ )
- {
- addUnlessPresent( result, parts[ j ] );
- }
- }
- else if( o instanceof FileSet )
- {
- final FileSet fs = (FileSet)o;
- final DirectoryScanner ds = ScannerUtil.getDirectoryScanner( fs );
- final String[] s = ds.getIncludedFiles();
- final File dir = fs.getDir();
- for( int j = 0; j < s.length; j++ )
- {
- File f = new File( dir, s[ j ] );
- String absolutePath = f.getAbsolutePath();
- addUnlessPresent( result, FileUtils.translateFile( absolutePath ) );
- }
- }
- }
- return (String[])result.toArray( new String[ result.size() ] );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/StringToPathConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/StringToPathConverter.java
deleted file mode 100644
index 0d8a7e388..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/file/StringToPathConverter.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.txt file.
- */
-package org.apache.myrmidon.framework.file;
-
-import org.apache.aut.converter.AbstractConverter;
-import org.apache.aut.converter.ConverterException;
-import org.apache.myrmidon.framework.file.Path;
-
-/**
- * A converter from String to Path.
- *
- * @author Adam Murdoch
- * @version $Revision$ $Date$
- *
- * @ant.converter source="java.lang.String" destination="org.apache.myrmidon.framework.file.Path"
- */
-public class StringToPathConverter
- extends AbstractConverter
-{
- /**
- * Constructors a converter.
- */
- public StringToPathConverter()
- {
- super( String.class, Path.class );
- }
-
- /**
- * Converts from String to Path
- *
- * @param original the original Object
- * @param context the context in which to convert
- * @return the converted object
- */
- protected Object convert( final Object original, final Object context )
- throws ConverterException
- {
- String path = (String)original;
- Path retval = new Path( path );
- return retval;
- }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilter.java
deleted file mode 100644
index 2a4b2712d..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilter.java
+++ /dev/null
@@ -1,31 +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.txt file.
- */
-package org.apache.myrmidon.framework.filters;
-
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Filters lines of text.
- *
- * @author Adam Murdoch
- * @version $Revision$ $Date$
- *
- * @ant:role shorthand="line-filter"
- */
-public interface LineFilter
-{
- /**
- * Filters a line of text.
- *
- * @param line the text to filter.
- * @param context the context to use when filtering.
- */
- void filterLine( StringBuffer line, TaskContext context )
- throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilterSet.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilterSet.java
deleted file mode 100644
index 2de3a2a33..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/LineFilterSet.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.txt file.
- */
-package org.apache.myrmidon.framework.filters;
-
-import java.util.ArrayList;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * A collection of line filters.
- *
- * @ant.data-type name="filterset"
- * @ant.type type="line-filter" name="filterset"
- */
-public class LineFilterSet
- implements LineFilter
-{
- private ArrayList m_filterSets = new ArrayList();
-
- public void add( final LineFilter filter )
- {
- m_filterSets.add( filter );
- }
-
- /**
- * Filters a line of text.
- *
- * @param line the text to filter.
- * @param context the context to use when filtering.
- */
- public void filterLine( final StringBuffer line, final TaskContext context )
- throws TaskException
- {
- final int count = m_filterSets.size();
- for( int i = 0; i < count; i++ )
- {
- final LineFilter filter = (LineFilter)m_filterSets.get( i );
- filter.filterLine( line, context );
- }
- }
-}
-
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenLineFilter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenLineFilter.java
deleted file mode 100644
index c98f25d2e..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenLineFilter.java
+++ /dev/null
@@ -1,138 +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.txt file.
- */
-package org.apache.myrmidon.framework.filters;
-
-import java.util.ArrayList;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * A line filter that replaces tokens. May have begintoken and endtokens defined.
- *
- * @author Michael McCallum
- *
- * @ant.type type="line-filter" name="token-filter"
- */
-public class TokenLineFilter
- implements LineFilter
-{
- /**
- * The default token start string
- */
- private static final char[] DEFAULT_TOKEN_START = {'@'};
-
- /**
- * The default token end string
- */
- private static final char[] DEFAULT_TOKEN_END = {'@'};
-
- /**
- * List of ordered filters and filter files.
- */
- private ArrayList m_tokenSets = new ArrayList();
-
- /**
- * Adds a TokenSet to this filter.
- */
- public void add( final TokenSet tokens )
- {
- m_tokenSets.add( tokens );
- }
-
- /**
- * Filters a line of text.
- *
- * @param line the text to filter.
- * @param context the context to use when filtering.
- */
- public void filterLine( final StringBuffer line, final TaskContext context )
- throws TaskException
- {
- int index = 0;
- while( index < line.length() )
- {
- // Find the start of the next token
- final int startToken = indexOf( line, DEFAULT_TOKEN_START, index );
- if( startToken == -1 )
- {
- break;
- }
- final int startTokenName = startToken + DEFAULT_TOKEN_START.length;
-
- // Find the end of the next token
- int endTokenName = indexOf( line, DEFAULT_TOKEN_END, startTokenName );
- if( endTokenName == -1 )
- {
- break;
- }
- int endToken = endTokenName + DEFAULT_TOKEN_END.length;
- if( endTokenName == startTokenName )
- {
- // Empty token name - skip
- index = endToken;
- continue;
- }
-
- // Extract token name figure out the value
- final String token = line.substring( startTokenName, endTokenName );
- final String value = getTokenValue( token, context );
- if( value == null )
- {
- // Unknown token - skip
- index = endToken;
- continue;
- }
-
- // Replace token with its value
- line.delete( startToken, endToken );
- line.insert( startToken, value );
-
- index = startToken + value.length();
- }
- }
-
- /**
- * Returns the value of a token.
- */
- private String getTokenValue( final String token, final TaskContext context )
- throws TaskException
- {
- String value = null;
- final int count = m_tokenSets.size();
- for( int i = 0; value == null && i < count; i++ )
- {
- final TokenSet tokenSet = (TokenSet)m_tokenSets.get( i );
- value = tokenSet.getValue( token, context );
- }
- return value;
- }
-
- /**
- * Returns the location of a string in a stringbuffer.
- */
- private int indexOf( final StringBuffer buffer,
- final char[] str,
- final int index )
- {
- final int maxIndex = buffer.length() - str.length + 1;
- outer: for( int i = index; i < maxIndex; i++ )
- {
- for( int j = 0; j < str.length; j++ )
- {
- if( buffer.charAt( i + j ) != str[ j ] )
- {
- continue outer;
- }
- }
- return i;
- }
- return -1;
- }
-}
-
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenSet.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenSet.java
deleted file mode 100644
index 7d8073302..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/filters/TokenSet.java
+++ /dev/null
@@ -1,32 +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.txt file.
- */
-package org.apache.myrmidon.framework.filters;
-
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * A set of tokens.
- *
- * @author Adam Murdoch
- * @version $Revision$ $Date$
- *
- * @ant:role shorthand="token-set"
- */
-public interface TokenSet
-{
- /**
- * Evaluates the value for a token.
- *
- * @param token the token to evaluate.
- * @param context the context to use to evaluate the token.
- * @return the value for the token, or null if the token is unknown.
- */
- String getValue( String token, TaskContext context )
- throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/java/ExecuteJava.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/java/ExecuteJava.java
deleted file mode 100644
index d9805c975..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/java/ExecuteJava.java
+++ /dev/null
@@ -1,382 +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.txt file.
- */
-package org.apache.myrmidon.framework.java;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import org.apache.aut.nativelib.Os;
-import org.apache.aut.nativelib.PathUtil;
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.framework.nativelib.Execute;
-import org.apache.myrmidon.framework.file.Path;
-import org.apache.myrmidon.framework.file.FileListUtil;
-import org.apache.myrmidon.framework.nativelib.EnvironmentData;
-import org.apache.tools.todo.types.SysProperties;
-import org.apache.myrmidon.framework.nativelib.ArgumentList;
-import org.apache.tools.todo.util.FileUtils;
-
-/**
- * A utility class that takes care of executing a Java application. This
- * class can execute Java apps in the current JVM, or a forked JVM.
- *
- *
To execute a Java application, create an instance of this class, - * configure it, and call one of the following methods: - *
addLine, addValue
- * or the argument object.
- *
- * @return The Arguments value
- */
- public String[] getArguments()
- {
- final int size = m_arguments.size();
- final ArrayList result = new ArrayList( size * 2 );
- for( int i = 0; i < size; i++ )
- {
- final Argument arg = (Argument)m_arguments.get( i );
- final String[] s = arg.getParts();
- for( int j = 0; j < s.length; j++ )
- {
- result.add( s[ j ] );
- }
- }
-
- final String[] res = new String[ result.size() ];
- return (String[])result.toArray( res );
- }
-
- /**
- * Sets the arguments, replacing the current value of this list.
- */
- public void setArguments( final ArgumentList list )
- {
- m_arguments.clear();
- addArguments( list );
- }
-
- public void addArguments( final String[] args )
- {
- for( int i = 0; i < args.length; i++ )
- {
- addArgument( args[ i ] );
- }
- }
-
- public void addArguments( final ArgumentList args )
- {
- addArguments( args.getArguments() );
- }
-
- public void addArgument( final File argument )
- {
- addArgument( new Argument( argument ) );
- }
-
- public void addArgument( final String argument )
- {
- addArgument( new Argument( argument ) );
- }
-
- public void addArgument( final Argument argument )
- {
- m_arguments.add( argument );
- }
-
- public void addLine( final String line )
- throws TaskException
- {
- final String[] parts = FileUtils.translateCommandline( line );
- addArguments( parts );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Commandline.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Commandline.java
deleted file mode 100644
index 245d2392c..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Commandline.java
+++ /dev/null
@@ -1,61 +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.txt file.
- */
-package org.apache.myrmidon.framework.nativelib;
-
-
-
-/**
- * Commandline objects help handling command lines specifying processes to
- * execute. The class can be used to define a command line as nested elements or
- * as a helper to define a command line by an application.
- *
- *
- * <someelement> The element
- * <acommandline executable="/executable/to/run">
- * <argument value="argument 1" />
- * <argument line="argument_1 argument_2 argument_3"
- * />
- * <argument value="argument 4" />
- * </acommandline>
- * </someelement>
- * someelement must provide a method createAcommandline
- * which returns an instance of this class.
- *
- * @author thomas.haas@softwired-inc.com
- * @author Stefan Bodewig
- */
-public class Commandline
- extends ArgumentList
-{
- private String m_executable;
-
- /**
- * Sets the executable to run.
- */
- public void setExecutable( final String executable )
- {
- m_executable = executable;
- }
-
- /**
- * Returns the executable to run.
- */
- public String getExecutable()
- {
- return m_executable;
- }
-
- /**
- * Sets the commandline, replacing its current value.
- */
- public void setCommandline( final Commandline command )
- {
- m_executable = command.getExecutable();
- setArguments( command );
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentData.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentData.java
deleted file mode 100644
index 112df2835..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentData.java
+++ /dev/null
@@ -1,56 +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.txt file.
- */
-package org.apache.myrmidon.framework.nativelib;
-
-import java.util.ArrayList;
-import java.util.Properties;
-
-/**
- * Wrapper for environment variables.
- *
- * @author Stefan Bodewig
- */
-public class EnvironmentData
-{
- protected final ArrayList m_variables = new ArrayList();
-
- public Properties getVariables()
- {
- final Properties environment = new Properties();
- final int size = m_variables.size();
- for( int i = 0; i < size; i++ )
- {
- final EnvironmentVariable variable = (EnvironmentVariable)m_variables.get( i );
- environment.setProperty( variable.getKey(), variable.getValue() );
- }
- return environment;
- }
-
- public void addVariable( EnvironmentVariable var )
- {
- m_variables.add( var );
- }
-
- public void addVariable( String key, String value )
- {
- final EnvironmentVariable var = new EnvironmentVariable();
- var.setKey( key );
- var.setValue( value );
- addVariable( var );
- }
-
- public void addVariables( EnvironmentData properties )
- {
- m_variables.addAll( properties.m_variables );
- }
-
- public int size()
- {
- return m_variables.size();
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentVariable.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentVariable.java
deleted file mode 100644
index bff7982b2..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/EnvironmentVariable.java
+++ /dev/null
@@ -1,49 +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.txt file.
- */
-package org.apache.myrmidon.framework.nativelib;
-
-import java.io.File;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.framework.file.Path;
-
-public class EnvironmentVariable
-{
- private String m_key;
- private String m_value;
-
- public void setFile( final File file )
- {
- m_value = file.getAbsolutePath();
- }
-
- public void setKey( final String key )
- {
- m_key = key;
- }
-
- public void setPath( final Path path ) throws TaskException
- {
- throw new TaskException( "Using a path not implemented." );
- //m_value = PathUtil.formatPath( path );
- }
-
- public void setValue( final String value )
- {
- m_value = value;
- }
-
- public String getKey()
- {
- return m_key;
- }
-
- public String getValue()
- {
- return m_value;
- }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Execute.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Execute.java
deleted file mode 100644
index 5bdc03b98..000000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Execute.java
+++ /dev/null
@@ -1,278 +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.txt file.
- */
-package org.apache.myrmidon.framework.nativelib;
-
-import java.io.File;
-import java.util.Properties;
-import org.apache.aut.nativelib.ExecException;
-import org.apache.aut.nativelib.ExecManager;
-import org.apache.aut.nativelib.ExecMetaData;
-import org.apache.aut.nativelib.ExecOutputHandler;
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.tools.todo.util.FileUtils;
-
-/**
- * This is a utility class designed to make executing native processes easier
- * in the context of ant.
- *
- *
To execute a native process, configure an instance of this class, - * and then call its {@link #execute} method. - * - * @author Peter Donald - * @author Thomas Haas - * @version $Revision$ $Date$ - */ -public class Execute - extends Commandline -{ - private static final Resources REZ - = ResourceManager.getPackageResources( Execute.class ); - - private Properties m_environment = new Properties(); - private File m_workingDirectory; - private boolean m_newEnvironment; - private ExecOutputHandler m_handler; - private long m_timeout; - private int m_returnCode; - private boolean m_ignoreReturnCode; - - /** - * Sets the timeout, in milliseconds, for the process. The process is - * forcibly shutdown after this time. Use 0 to allow the process to - * run forever. Default is 0. - * - * @param timeout the timeout, in milliseconds. - */ - public void setTimeout( final long timeout ) - { - m_timeout = timeout; - } - - /** - * Sets the handler for the process' output and error streams. If not - * provided, the process' output and error are written to the log using - * the TaskContext's logging methods. - * - * @param handler the handler. - */ - public void setExecOutputHandler( final ExecOutputHandler handler ) - { - m_handler = handler; - } - - /** - * Sets the environment to use for the process. - * - * @param environment a map from environment variable name to value. - */ - public void setEnvironment( final Properties environment ) - { - if( null == environment ) - { - throw new NullPointerException( "environment" ); - } - m_environment = environment; - } - - /** - * If this variable is false then then the environment specified is - * added to the environment variables for current process. If this - * value is true then the specified environment replaces the environment - * for the command. Default is false. - */ - public void setNewenvironment( final boolean newEnvironment ) - { - m_newEnvironment = newEnvironment; - } - - /** - * Sets the working directory of the process to execute. Default is the - * project's base directory. - * - * @param workingDirectory the working directory of the process. Use - * null for the project's base directory. - */ - public void setWorkingDirectory( final File workingDirectory ) - { - m_workingDirectory = workingDirectory; - } - - /** - * Sets the expected return code of the process. If the process does not - * exit with this return code, and exception is thrown by {@link #execute}. - * Default is 0. - * - * @param returnCode the expected return code. - */ - public void setReturnCode( final int returnCode ) - { - m_returnCode = returnCode; - } - - /** - * If set to true, the return code of the process is ignore. If false, - * it is compared against the expected return code. Default is false. - */ - public void setIgnoreReturnCode( final boolean ignore ) - { - m_ignoreReturnCode = ignore; - } - - /** - * Runs a process defined by the command line and returns its exit status. - * - * @return the exit status of the subprocess. - */ - public int execute( final TaskContext context ) - throws TaskException - { - validate(); - - try - { - // Build an output handler - final ExecOutputHandler handler = buildOutputHandler( context ); - - // Build the command meta-info - final ExecManager execManager = (ExecManager)context.getService( ExecManager.class ); - final ExecMetaData metaData = buildExecMetaData( context, execManager ); - - logExecDetails( metaData, context ); - - // Execute the process and check return code - final int returnCode = execManager.execute( metaData, handler, m_timeout ); - checkReturnCode( returnCode ); - return returnCode; - } - catch( final Exception e ) - { - final String message = REZ.getString( "execute.failed.error", getExecutable() ); - throw new TaskException( message, e ); - } - } - - /** - * Logs the details of the command. - */ - private void logExecDetails( final ExecMetaData metaData, - final TaskContext context ) - throws TaskException - { - if( context.isVerboseEnabled() ) - { - final String cmdline = FileUtils.formatCommandLine( metaData.getCommand() ); - final String message = REZ.getString( "execute.command.notice", cmdline ); - context.verbose( message ); - } - if( context.isDebugEnabled() ) - { - final String message = REZ.getString( "execute.env-vars.notice", metaData.getEnvironment() ); - context.debug( message ); - } - } - - /** - * Vaidates the arguments. - */ - private void validate() throws TaskException - { - if( null == getExecutable() ) - { - final String message = REZ.getString( "execute.no-executable.error" ); - throw new TaskException( message ); - } - if( m_workingDirectory != null ) - { - if( !m_workingDirectory.exists() ) - { - final String message = REZ.getString( "execute.dir-noexist.error", m_workingDirectory ); - throw new TaskException( message ); - } - else if( !m_workingDirectory.isDirectory() ) - { - final String message = REZ.getString( "execute.dir-notdir.error", m_workingDirectory ); - throw new TaskException( message ); - } - } - } - - /** - * Creates an output handler to use for the process' stdout and stderr. - */ - private ExecOutputHandler buildOutputHandler( final TaskContext context ) - { - ExecOutputHandler handler = m_handler; - if( handler == null ) - { - handler = new LoggingExecOutputHandler( context ); - } - return handler; - } - - /** - * Utility method to verify that specified return code was the - * return code expected (if any). - */ - private void checkReturnCode( final int returnCode ) - throws TaskException - { - if( ! m_ignoreReturnCode && returnCode != m_returnCode ) - { - final String message = REZ.getString( "execute.bad-resultcode.error", - getExecutable(), - new Integer(returnCode) ); - throw new TaskException( message ); - } - } - - /** - * Utility method to create an ExecMetaData object - * to pass to the ExecManager service. - */ - private ExecMetaData buildExecMetaData( final TaskContext context, - final ExecManager execManager ) - throws ExecException - { - // Build the command line - final String[] command = getCommandLine(); - - // Build the environment - final Properties newEnvironment = new Properties(); - if( !m_newEnvironment ) - { - newEnvironment.putAll( execManager.getNativeEnvironment() ); - } - newEnvironment.putAll( m_environment ); - - // Determine the working directory - File workingDir = m_workingDirectory; - if( workingDir == null ) - { - workingDir = context.getBaseDirectory(); - } - - return new ExecMetaData( command, - newEnvironment, - workingDir ); - } - - /** - * Builds the command line. - */ - private String[] getCommandLine() - { - final String[] args = getArguments(); - final String[] result = new String[ args.length + 1 ]; - result[ 0 ] = getExecutable().replace( '/', File.separatorChar ).replace( '\\', File.separatorChar ); - System.arraycopy( args, 0, result, 1, args.length ); - return result; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/LoggingExecOutputHandler.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/LoggingExecOutputHandler.java deleted file mode 100644 index 029ba42d6..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/LoggingExecOutputHandler.java +++ /dev/null @@ -1,47 +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.txt file. - */ -package org.apache.myrmidon.framework.nativelib; - -import org.apache.aut.nativelib.ExecOutputHandler; -import org.apache.myrmidon.api.TaskContext; - -/** - * An {@link org.apache.aut.nativelib.ExecOutputHandler} adaptor, that writes output to the logging - * methods of a {@link org.apache.myrmidon.api.TaskContext}. - * - * @author Adam Murdoch - * @version $Revision$ $Date$ - */ -public class LoggingExecOutputHandler - implements ExecOutputHandler -{ - private final TaskContext m_context; - - public LoggingExecOutputHandler( final TaskContext context ) - { - m_context = context; - } - - /** - * Receive notification about the process writing - * to standard output. - */ - public void stdout( final String line ) - { - m_context.info( line ); - } - - /** - * Receive notification about the process writing - * to standard error. - */ - public void stderr( final String line ) - { - m_context.error( line ); - } -} diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Resources.properties deleted file mode 100644 index e30a04d15..000000000 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/nativelib/Resources.properties +++ /dev/null @@ -1,7 +0,0 @@ -execute.no-executable.error=No executable specified. -execute.dir-noexist.error=The specified working directory "{0}" does not exist. -execute.dir-notdir.error=The specified working directory "{0}" is not a directory. -execute.failed.error=Command "{0}" failed. -execute.bad-resultcode.error=Command "{0}" returned unexpected exit code {1}. -execute.command.notice=Executing: {0} -execute.env-vars.notice=Using environment: {0}.