0 lines of code changed in:
* Rolled back change to PropertyResolver.resolveProperties(), so that it
uses a TaskContext again. Added some regression tests.
* Changed Embeddor.createWorkspace() to use a Map, rather than a Parameters,
to supply initial workspace properties. Initial properties can be Objects,
rather than only Strings. Got rid of the Object -> String convertion from
<ant> and <antcall>.
* Generalised ExecutionFrame, so that it can represent any execution scope
(root, workspace, project, task, inherited, etc), rather than just task scope:
- Replaced getTaskContext() with getPropertyStore().
- Replaced getTypeManager() with getServiceManager().
* Executor is now responsible for creating TaskContext.
* Changed DefaultExecutor to use the configurer provided by the execution frame.
* Added ExecutionContainer, a lifecycle interface which is used to supply the
root execution frame to a service which executes tasks (directly or indirectly).
* Changed interaction between DefaultEmbeddor and workspaces. Embeddor is now
responsible for creating the base property store for workspaces. ExecutionContainer
is used to pass this to workspaces. Parameterizable is now used to pass
container params to workspaces (which matches how it is used with all the
30 lines of code changed in:
* Moved PropertyStore to interfaces.property. Left DefaultPropertyStore
where it was.
* Changed PropertyResolver.resolveProperties() to use a PropertyStore,
rather than a TaskContext.
* Changed PropertyStore methods to throw a TaskException.
* Changed contract of PropertyStore.getProperty() to throw exception if the
requested property is not set.
34 lines of code changed in:
Introduce the concept of a PropertyStore. The PropertyStore is where all the properties are stored (oh der!) and it is where things like immutability, scoping and so forth are controlled from.
5 lines of code changed in:
Move the primitive, reusable and non-myrmidon specific converters into the aut hierarchy
1 lines of code changed in:
* Changed DefaultPropertyResolver to use the converter to convert from Object -> String.
* 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.
26 lines of code changed in:
Modifications to Ant1 compatibility layer.
* 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.
- Allow "+" in property names.
- Implemented DefaultTaskContext.getProperties()
- No longer implements avalon Context (not needed)
3 lines of code changed in:
* Migrated all tests into packages other than the one they are testing. The reason for this is that all the tests are BlackBox, using public APIs and there is no reason to have the testcases in the same package as the actual code. Thus all test code is in a sub-package from the code it actually tests.
ie Test code for package foo is located in package foo.test
* Migrated all the test data into the same hierarchy so that there is only one place where you have to look for test data.
This required that resource retrieval be hackled a little because no longer in same package as tested code/
12 lines of code changed in: