can accept any nested FileList implementation, including <path>.
* Added <list-path> diagnostic task.
* Added test cases for <path>.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271948 13f79535-47bb-0310-9956-ffa450edef68
* Added general purpose Object -> String converter that simply uses Object.toString().
* Reorganised AbstractComponentTestCase, to give sub-classes the opportunity to replace
the default implementation of a component, with a particular implementation.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271942 13f79535-47bb-0310-9956-ffa450edef68
and i18n-ed the error and log messages.
* Moved Java -> antlib.java.JavaTask.
* Moved Path and friends -> framework.file package.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271927 13f79535-47bb-0310-9956-ffa450edef68
* Removed Path.isEmpty().
* Changed Path.list() -> listFiles( TaskContext ).
* Extracted FileList interface from Path. This interface has a single
listFile( TaskContext ) method.
* Split PathElement into two FileList implementations, ParsedPathElement and
ArrayFileList. Removed the special handling of nested PathElement
and Path objects from Path.listFiles().
* Added FileList -> String converter.
* Temporarily disabled Argument.setPath() and EnvironmentVariable.setPath().
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271926 13f79535-47bb-0310-9956-ffa450edef68
little narrower, to make it easier to extract an interface, and get multiple
path implementations happening.
* Replaced usages of Path.append() with Path.addPath(), and removed append().
* Replaced usages of Path.addExisting() with Path.addPath(), and removed
addExisting().
* Replaced Path.size() with Path.isEmpty().
* Added the setX() methods back.
* Replaced usages of Path.toString() with new PathUtil.formatPath() method, and
removed Path.toString(). Probably missed a few usages.
* Replaced FileUtil.translatePath( Path ) with PathUtil.formatPath(), and
removed translatePath().
* Enabled the String -> Path converter again.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271893 13f79535-47bb-0310-9956-ffa450edef68
* By default, execute() checks the return code of the process against 0.
This can be changed using setReturnCode() and setIgnoreReturnCode().
* Default working directory is now the project's base directory.
* Tidied up tasks to reflect the new defaults.
AbstractTask:
* Made getBaseDirectory() and getService() protected.
Logging:
* Extracted AbstractLogger out of BasicLogger, and changed RoutingLogger to
extend AbstractLogger, rather than BasicLogger.
* RoutingLogger now uses a wrapped Logger to determine which message types
are enabled, so that it respects the logging level set on the command-line.
Kinda hacky, but better than writing out all the debug messages.
* Changed LoggingExecOutputHandler to use warn log level, rather than info.
Again, a hacky fix to get logging of external command output happening when
not running in verbose mode.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271890 13f79535-47bb-0310-9956-ffa450edef68
* Moved the general-purpose logging and validation code from Exec task to
Execute.
* Removed Execute's constructor, replaced with a TaskContext passed to
Execute.execute().
* If no ExecOutputHandler is provided, Execute routes the process' stdout
and stderr via TaskContext's log methods.
* Removed a bunch of debug messages from tasks, as Execute now takes care of this.
* Replaced a bunch of return code == 0 checks, with calls to
Execute.setReturnCode( 0 ).
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271888 13f79535-47bb-0310-9956-ffa450edef68
* Added LineFilter role, which represents a filter that handles lines of text.
* Added TokenSet role, which represents a set of token -> value mappings.
* Renamed FilterSetCollection -> LineFilterSet. This is now a compound
LineFilter that takes a set of nested LineFilters. This is pretty much
just a placeholder until the new filter streams are ported across from ant 1.
* Renamed Filter -> SingletonTokenSet. This is a TokenSet that contains a
single mapping. Moved to antlib.core.
* Added PropertyTokenSet, a TokenSet that uses the project properties as
its mappings. Added to antlib.core.
* Split FilterSet into TokenLineFilter, which is a LineFilter that replaces
tokens with their value, and FileTokenSet, which is a TokenSet loaded from
a properties file.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271869 13f79535-47bb-0310-9956-ffa450edef68
* Reverted TypeManager to reference roles by name, rather than type.
* DefaultTypeManager now uses the RoleManager to determine a role's type, to
use for doing instanceof checks.
* DefaultMasterConverter, InstantiatingServiceManager, and VfsManager no
longer look up a TypeFactory in their service() method.
* Added ROLE field to several interfaces.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271849 13f79535-47bb-0310-9956-ffa450edef68
I also think that usage of the log() methods except in really rare circumstances leads to poor programming idioms. Hopefully there will only be a handful of tasks that use it (like <log/>) and thus it is not universal enough to be in the TaskContext.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271821 13f79535-47bb-0310-9956-ffa450edef68
* Added FileObject.copy().
* Renamed <v-copy> task attributes file -> srcfile, tofile -> destfile, todir -> destdir.
* Moved provider instantiation out of DefaultFileSystemManager, and into
myrmidon-aware VfsManager. Providers are instantiated using the TypeManager.
The list of providers isn't configurable yet.
* Some support for %nn encoded URI (not quite complete).
* Zip file system now handles zip files from any file system, not just local
files. Still read-only at this stage. Uses a truely dodgy and very temporary
replication mechanism.
* Zip file system now handles relative paths in URI (e.g. zip:relpath.zip), that are
resolved against the base dir.
* Fixed bug in resolving names against the root file of a file system.
* Changed behaviour of FileName.resolveName( ".." ) for the root file of
a file system.
* Added more test cases.
* A bucketload of other minor changes.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271803 13f79535-47bb-0310-9956-ffa450edef68
(One implementation mimics Ant1 behaviour). These are added in the
"workspace" packages, since that's where PropertyUtil was. Not sure if this
is the right place.
* DefaultTaskContext now implements Context interface, used by
PropertyResolver. This avoids having the PropertyResolver dependent on
TaskContext, avoiding a potential circularity problem. (since TaskContext has
a "resolve" method of it's own).
* Removed PropertyUtil.
* Tests for PropertyResolver implementations.
Submitted by Darrell DeBoer [darrell@apache.org]
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271801 13f79535-47bb-0310-9956-ffa450edef68
from the interface, as these are no longer needed.
* Changed tasks to accept a FileNameMapper directly, rather than using Mapper.
* Removed the 'flatten' attribute from the <copy> task.
* Removed the 'ext' attribute from the <native2ascii> task.
* Removed Mapper and MapperType.
* Moved <flatten> mapper to antlib.
* Made ExtMapper available as <map-extension> and moved to antlib.
* Added <prefix> mapper, to apply a fixed prefix to names.
* Added <chain> mapper, to apply a chain of mappers to names.
* Added <mapped-fileset>, a fileset that transforms nested filesets using a mapper.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271715 13f79535-47bb-0310-9956-ffa450edef68
* Added <condition> file selector, which allows a set of nested conditions to
be used to select files.
* Added <file-test> condition, which evaluates a set of nested selectors against
a file.
* FileSelector doesn't extend DataType any more.
* Got rid of the @ant:data-type tags from the file selectors, cause they ain't.
* Renamed <condition> nested element in <filtered-path> -> <filter>.
* Renamed <is-empty> selector -> <is-empty-folder>
* Fixed NPE using <name> selector in a path.
* Fixed error messages.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271684 13f79535-47bb-0310-9956-ffa450edef68
* Made framework.Condition an interface.
* Converted old framework.Condition into <is-set> condition.
* Ported all Ant 1 conditions to the new Condition interface, and removed
the old Condition and ConditionBase classes.
* Moved <and>, <or>, <not> conditions to framework.conditions.
* Moved <condition> task and <os> condition to antlib.
* Moved <available> to antlib. This is no longer a task, just a condition.
Removed all file checking, which will be done by other condition
implementations.
* Removed conditions from <fail>, as it can be wrapped in an <if> instead.
* A target can now take both an "if" and an "unless" condition.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271683 13f79535-47bb-0310-9956-ffa450edef68
* Replaced all usages of Os.isFamily( String ) with Os.isFamily( OsFamily ).
* Replaced all usages of "os.name" system properties with calls to Os.isFamily().
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271667 13f79535-47bb-0310-9956-ffa450edef68