[root]/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/role
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 19 (100.0%) | 137 (100.0%) | 7.2 |
adammurdoch | 7 (36.8%) | 83 (60.6%) | 11.8 |
donaldp | 10 (52.6%) | 34 (24.8%) | 3.4 |
darrell | 2 (10.5%) | 20 (14.6%) | 10.0 |
zappity zap
0 lines of code changed in:
* Fixed a bunch of checkstyle violations (mostly
javadoc)
* Added basic javadoc target to build.
20 lines of code changed in:
Extracted out a superclass from the exceptions in myrmidon.interfaces.*, to
make it a little easier to add new exceptions to the interfaces packages.
11 lines of code changed in:
Decouple exceptions from CascadingException
22 lines of code changed in:
restyle via IDEA
2 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.
27 lines of code changed in:
Changes to RoleManager:
* 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.
35 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
0 lines of code changed in:
Javadoc fixes.
1 lines of code changed in:
Make all roles exposed as the classname via runtime lookup
1 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.
9 lines of code changed in:
Fix up license banner.
1 lines of code changed in:
donaldp@apache.org --> peter@apache.org
yea - now no one will call me Donald!!!
1 lines of code changed in:
Moved interfaces outside of main trunk.
7 lines of code changed in: