* 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
* Changed semantics of FileName.resolveName() with 'child' scope.
* Fixed a couple of problems in UriParser.normalise().
* Split up LocalFileNameParser into a Windows specifc parser and a generic
parser.
* More test cases.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271668 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
Important when you pass in System.out/System.err or want to do something
special to stream after processing.
Submitted By: Darrell DeBoer <darrell@apache.org>
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271649 13f79535-47bb-0310-9956-ffa450edef68
hierarchy. Adapted terminology from Catalina
as that terminology is more widely used.
Punt on antlib ClassLoader structure as that
is defined via library specific mechanisms
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271647 13f79535-47bb-0310-9956-ffa450edef68
It completely punts on descriptro format for the
time being - mainly as I already documented that
elsewhere and just need to convert it to xdocs
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271646 13f79535-47bb-0310-9956-ffa450edef68
* Added FileSelector interface.
* <v-fileset> now takes file selectors, instead of include and exclude patterns.
* Added a bunch of file selector implementations:
* <and>, <or>, <not> for combining selectors.
* <name>, <basename>, <url> for testing bits of the file name against
an Ant 1 style pattern, or a regular expression.
* <is-file>, <is-folder>, <exists> for testing file type.
* Added <flat-fileset>, which combines nested file sets and paths into a
single directory. This allows explicit path -> fileset conversion.
* Added <filtered-path>, which applies selectors to nested file sets and paths.
* Added <list-fileset> debug task.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271577 13f79535-47bb-0310-9956-ffa450edef68
* No longer implements Configurable, uses a set() method instead.
* The property value can be included as the text content of
the <property> element.
* Added test-cases.
* Added some alternative executeTarget() methods to
AbstractProjectTest, to expect a particular set of log messages,
or a particular failure.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271567 13f79535-47bb-0310-9956-ffa450edef68
* Moved read-only property and resolve methods from TaskContext to new Context
interface. TaskContext now extends the new Context interface.
* Changed the Configurer methods to use the new Context. Both implementations
use the supplied Context to do property resolution.
* Renamed TaskContext.getPropertys() -> getProperties().
* Moved PropertyUtil from configurer to workspace package, as that is now
the only place it is used.
* Changed PropertyUtil to work with the new Context.
RoleManager:
* A default implementation for a role can now be specified. Currently
can only do this programatically.
DefaultMasterConverter:
* Removed MasterConverter interface. It is now identified by the Converter
role.
* Now caches the converter instances.
* Changed the converter search algorithm to traverse the *source* class
hierarchy, including all interfaces. Chooses the most specialised
conversion, and fails if there is more than one such choice.
DefaultConfigurer:
* Attempts to convert references, if the type does not match the expected type.
* Changed handling of nested elements, for named adders/setters:
* If the method type can be mapped to a role, and that role has a default
implementation, then use that default implementation.
* Otherwise, if the method type is an interface, fail.
* Otherwise, create an instance using no-args constructor.
* Changed handling of nested elements, for typed adders/setters:
* If the method type can be mapped to a role, and the element name is
a type of that role, then use that role to create the instance.
* Otherwise, use the type factory for the generic data-type role.
* Attempt to convert the instance if it is not of the expected type.
* Added a bunch of test cases for new functionality.
* Renamed all the ConfigTest classes to have descriptive names.
Misc:
* Renamed package framework.factorys -> framework.factories.
* Made tests work when fork = false.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271539 13f79535-47bb-0310-9956-ffa450edef68