* 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
* Removed "if" and "unless" conditions from targets.
* Moved parsing of "project->target" dependencies out of DefaultWorkspace,
into DefaultProjectBuilder.
* DefaultWorkspace now detects cycles in the target dependency graph.
* DefaultWorkspace now executes the implicit target for referenced projects.
* Changes to DefaultProjectBuilder error reporting.
* Added a few more test cases for DefaultProjectBuilder.
Unit Tests:
* Moved AbstractComponentTest.getLogger() up to AbstractMyrmidonTest.
* Removed AbstractComponentTest.setup(). Components are now created on demand.
* Use BasicLogger in unit tests.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271835 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
specifying/testing name validity.
* NameValidator is used by DefaultProjectBuilder for project and target
names, and by DefaultTaskContext for Property names.
* Added ProjectException, thrown by ProjectBuilder.build().
* Tidy-up error messages for project building errors.
* Added a bunch of tests
Submitted by Darrell DeBoer [darrell@apache.org]
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271810 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
* Was not exiting with non-zero exit code when the build failed.
* Fix the error reporting so that the entire exception chain is reported.
* Only print out stack traces when in verbose or debug mode.
* Wrap all exceptions thrown during task initialisation and execution with
a general 'task failed' exception.
* Another <property> testcase.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271802 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
* 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