[root]/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 54 (100.0%) | 388 (100.0%) | 7.1 |
donaldp | 46 (85.2%) | 286 (73.7%) | 6.2 |
adammurdoch | 6 (11.1%) | 98 (25.3%) | 16.3 |
sbailliez | 2 (3.7%) | 4 (1.0%) | 2.0 |
zappity zap
0 lines of code changed in:
Move AbstractMasterConverter from
org.apache.myrmidon.components.converter
to
org.apache.aut.converter
1 lines of code changed in:
Separate and document the myrmidon agnostic part of MasterConverter into an abstract class. This will make it easier to reuse in other projects.
5 lines of code changed in:
More accurate javadoc
4 lines of code changed in:
Merge DefaultConverterRegistry into DefaultMasterConverter
52 lines of code changed in:
No need to extend AbstractLoggable as never used Logger
0 lines of code changed in:
Move creation to new method so easy to overide in the future.
15 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.
4 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.
89 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
13 lines of code changed in:
Moved Converter architecture into aut hierarchy as it is completely decoupled from rest of ant
2 lines of code changed in:
Generalized the converter architecture by making the "context" a raw object that can be cast for the needs of a specific project
Thus converters are now independent of ant and avalon
1 lines of code changed in:
Fix Javadoc comment.
1 lines of code changed in:
Add version tags
2 lines of code changed in:
Style touchups
3 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.
4 lines of code changed in:
- Fix order of modifiers
- Fix duplicate/unecessary imports
- Fix single if/else and loop without block
4 lines of code changed in:
Fix up name of error message in resource file
1 lines of code changed in:
Made sure that the MasterConverter verified that the slave converters return the correct type. If not then it will raise an exception.
15 lines of code changed in:
(10 more)