* 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
* A class may now be explicitly associated with a role, rather than being
implicit in the role name.
* Added RoleInfo to bundle up role meta-info.
* Reworked the methods of RoleManager.
* Added test-cases for DefaultRoleManager.
* Make tests compile again.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271498 13f79535-47bb-0310-9956-ffa450edef68
* CLIMain now uses the listener's short name, rather than classname, to
construct the listener. This is done with the help of the Embeddor.
* Added NoPrefixProjectListener, which emulates the -emacs mode of Ant 1.x.
* Added -p, --noprefix command-line option, to use the NoPrefixProjectListener.
* Changed the methods on ProjectListener to take event objects. Combined the
log() methods into a single method.
* Moved state tracking out of AbstractProjectListener, and into DefaultWorkspace
(where it doesn't need to be tracked). State info is now available via the
event objects passed to the listener methods.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271305 13f79535-47bb-0310-9956-ffa450edef68
* Got rid of <converters> element from antlib descriptor. Converters are
now defined in the <types> element.
* Moved (most of) the role-specific knowledge from Deployment back to DefaultDeployer.
* Split out ClassLoader management into DefaultClassLoaderManager. This is
living in the deployer package for now.
* Tidied-up the component set-up and clean-up in DefaultEmbeddor. Added
the ClassLoaderManager component.
* Added test for TypeDeployer.deployAll().
Changes to unit tests:
* Added AbstractMyrmidonTest, which takes care of locating test resources.
* Changed the VFS, type factory, and deployer tests to use AbstractMyrmidonTest.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271271 13f79535-47bb-0310-9956-ffa450edef68
classes that implement DataType. Generates a <data-type> and
a <task> definition for each DataType.
* Include ant-roles.xml in generated typelibs.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271096 13f79535-47bb-0310-9956-ffa450edef68
* Added a String -> Path converter.
* Added the appropriate declarations to ant1-ant-descriptor.xml.
* PathLocation is now only used internally by Path. This means a <path> may
not contain nested <pathlocation> elements any more. Nested <path> elements
can be used to do the same thing.
* Removed Path.systemClasspath and Path.concatSystemClassPath(). The goal
is to add specialised <systemclasspath>, <antruntime>, and <javaruntime>
data-types to control this explicitly. I left it unfinished, because the
as-yet-unwritten Java util stuff will determine how it should be done.
* Moved Path.addExtdirs() -> DefaultCompilerAdaptor. This was the only
place it was used.
* Cleaned out a few more Path createX() methods.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270786 13f79535-47bb-0310-9956-ffa450edef68
BlahEnum getByName(String name)
(may return null or throw an IllegalArgumentException if bad name)
String[] getNames()
This is a replacement for EnumeratedAttribute that is more friendly to people who want to use enums programatically.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270398 13f79535-47bb-0310-9956-ffa450edef68
Also add code to seltest type library so that it verifies that classes loaded from extension are available in the same ClassLoader as the tasks.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270015 13f79535-47bb-0310-9956-ffa450edef68
myrmidon-container.jar (all the container classes)
myrmidon-api.jar (the API used to write tasks and other types)
myrmidon-framework.jar (the framework that makes writing tasks easier)
myrmidon-launcher.jar (executable jar used to setup classloaders and run myrmidon)
The ClassLoader hierarchy is now
System CL <--- api/framework CL <--- container
<--- type library 1
<--- type library 2
<--- type library 3
<--- type library 1
<--- type library 1
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269874 13f79535-47bb-0310-9956-ffa450edef68