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
* Completed property hooks, so that the underlying Ant1 project
is not used for setting, getting or resolving properties.
* Made PropertyResolver.resolveProperties()take a TaskContext,
instead of Avalon Context. (We can always split out a generic
interface later, if need be.) Ant1 compatibility layer user
ClassicPropertyResolver, which needs a better name.
* Added modified BuildException, which incudes a Myrmidon-friendly
getCause() method, to allow Ant1 exceptions to be properly cascaded.
* DefaultTaskContext:
- Allow "+" in property names.
- Implemented DefaultTaskContext.getProperties()
- No longer implements avalon Context (not needed)
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271924 13f79535-47bb-0310-9956-ffa450edef68
* Handle the case where a class has both a setFoo() and addFoo() method.
* Ignore addContent( String ) if there is a non-String addContent() method.
* Ignore add( String ) if there is a non-String add() method.
* Added test cases for these.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271898 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
* TransformingProjectBuilder
- Performs an XSL transform on all ".xml" build files.
- Identity transform is used for projects with "version" attribute.
- Added xalan.jar to lib - replaced jaxp.jar with xml-apis.jar
* Compatibility Layer
- Described more fully in src/ant1compat/README.txt
- Uses pre-compiled Ant1 jar files for Ant1 code-base.
Insulates from changes in the main tree, and simplifies build.
- "ant." prefix used for all ant1 tasks
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271884 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
* 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