[root]/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 96 (100.0%) | 912 (100.0%) | 9.5 |
donaldp | 79 (82.3%) | 759 (83.2%) | 9.6 |
adammurdoch | 14 (14.6%) | 142 (15.6%) | 10.1 |
sbailliez | 2 (2.1%) | 9 (1.0%) | 4.5 |
darrell | 1 (1.0%) | 2 (0.2%) | 2.0 |
zappity zap
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
other services).
35 lines of code changed in:
* Fixed a bunch of checkstyle violations (mostly
javadoc)
* Added basic javadoc target to build.
2 lines of code changed in:
final static --> static final to follow JLS recomendations
3 lines of code changed in:
Ran IDEAs new audit features across codebase to pick up a few anomalies
1 lines of code changed in:
TypeManager changes:
* 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.
1 lines of code changed in:
Configurer.configure -->
Configurer.configureElement + Configurer.configureAttribute
1 lines of code changed in:
* AbstractTask no longer extends AbstractLogEnabled.
* DefaultExecutor no longer log enables Tasks.
* Added TaskContext.log( LogLevel, ... ) methods.
* Moved LogLevel to myrmidon.api package.
0 lines of code changed in:
* Some fixes to the command-line launcher:
* 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.
63 lines of code changed in:
restyle via IDEA
1 lines of code changed in:
Error message tidy-ups.
40 lines of code changed in:
Replaced usage of Avalon Context with Myrmidon specific Context:
* 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.
2 lines of code changed in:
Rename myrmidons ServiceManager stuff to AntServiceManager
Refactored the codebase to use Avalons ServiceManager rather than ComponentManager. The reason for this is that the ComponentManager required that contained objects implement the Component interface while the ServiceManager constructs do not have this requirement.
This makes it much easier to extract parts of Myrmidon without any dependency on Ant/Avalon
17 lines of code changed in:
Use Adaptor so that TaskContext appears as an Avalon Context
3 lines of code changed in:
Add version tags
19 lines of code changed in:
Style touchups
11 lines of code changed in:
Allow typelibs to define custom roles:
* Add TypeDeployer interface, which allows control over the deployment of
types from a typelib.
* Add RoleManager.addNameRoleMapping().
* TypeManager methods now take a role Class object, rather than role name.
* Replace implicit role and type deployment in DefaultRoleManager.initialize()
and DefaultDeployer.initialize() with explicit createDeployer( ClassLoader )
method.
* DefaultDeployer now keeps track of the ClassLoader created for each typelib.
* Moved all ClassLoader creation to DefaultDeployer, for the time being.
* ConverterDef and AbstractTypeDef now use Deployer, rather than
deploying manually.
* Fixed DefaultMasterConverter for the case where destination is an interface,
and there is no appropriate converter registered.
1 lines of code changed in:
*** empty log message ***
2 lines of code changed in:
Remove unused variable
Removing a Audit violation
5 lines of code changed in:
Reorder qualifiers for JLS compliance
Removing a Audit violation
2 lines of code changed in:
(31 more)