[root]/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 149 (100.0%) | 2052 (100.0%) | 13.7 |
donaldp | 99 (66.4%) | 1026 (50.0%) | 10.3 |
adammurdoch | 41 (27.5%) | 990 (48.2%) | 24.1 |
darrell | 7 (4.7%) | 34 (1.7%) | 4.8 |
sbailliez | 2 (1.3%) | 2 (0.1%) | 1.0 |
zappity zap
0 lines of code changed in:
ClassLoader hierarchy changes:
* Use multi-parent ClassLoaders for antlibs and extensions, so that each
extension jar is loaded by a single ClassLoader in the hierarchy. Allows
classes from extensions to be shared across dependent antlibs and extensions.
* Changed contract of ClassLoaderManager.createClassLoader( File[] ), so that
it creates a new ClassLoader each time it is called.
* Changed ExtensionManager, so that it no longer extends PackageRepository.
* Added a few test cases for DefaultClassLoaderManager.
* Moved responsibility for checking myrmidon.home and building the various paths,
from DefaultEmbeddor and DefaultExtensionManager to EmbeddedAnt. Use the
platform path separator for the paths, rather than the | char.
* Use EmbeddedAnt in AbstractProjectTest, rather than using an Embeddor directly.
* AbstractComponentTest was not parameterising or initialising the test
components.
1 lines of code changed in:
* Fixed a bunch of checkstyle violations (mostly
javadoc)
* Added basic javadoc target to build.
34 lines of code changed in:
final static --> static final to follow JLS recomendations
11 lines of code changed in:
More refactoring of framework.Execute:
* By default, execute() checks the return code of the process against 0.
This can be changed using setReturnCode() and setIgnoreReturnCode().
* Default working directory is now the project's base directory.
* Tidied up tasks to reflect the new defaults.
AbstractTask:
* Made getBaseDirectory() and getService() protected.
Logging:
* Extracted AbstractLogger out of BasicLogger, and changed RoutingLogger to
extend AbstractLogger, rather than BasicLogger.
* RoutingLogger now uses a wrapped Logger to determine which message types
are enabled, so that it respects the logging level set on the command-line.
Kinda hacky, but better than writing out all the debug messages.
* Changed LoggingExecOutputHandler to use warn log level, rather than info.
Again, a hacky fix to get logging of external command output happening when
not running in verbose mode.
15 lines of code changed in:
Added final to catch clause
1 lines of code changed in:
Ran IDEAs new audit features across codebase to pick up a few anomalies
2 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.
11 lines of code changed in:
Move ClassLoaderManager and DefaultClassLoaderManager into their own packages.
1 lines of code changed in:
restyle via IDEA
3 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.
1 lines of code changed in:
Removed AntServiceManager:
* Renamed DefaultAntServiceManager to InstantiatingServiceManager. This
implementation now sets-up the service factories and service instances
(log enable, service, parameterise, initialise).
* Rearranged the service heirarchy, so that services deployed from a
service descriptor are visible in the root context (passed to workspaces
and project builders).
* Service factories are registered using the role name, not the role class name.
* Added unit tests for InstantiatingServiceManager.
Changes to DefaultConfigurer error messages:
* All exceptions thrown by DefaultConfigurer indicate which configuration
element the error happened in.
* Updated DefaultConfigurer test cases, to check nested error messages
where appropriate.
6 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.
32 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
27 lines of code changed in:
Moved Converter architecture into aut hierarchy as it is completely decoupled from rest of ant
1 lines of code changed in:
Moved complex operations outside of loop evaluation
4 lines of code changed in:
Ran style-formatter over codebase
4 lines of code changed in:
* Deployer now deploys services from META-INF/ant-services.xml
* Embeddor now creates a ServiceManager component.
80 lines of code changed in:
Changes to DefaultDeployer:
* Parses services descriptors (META-INF/ant-services.xml). Does not do anything
with them yet.
* Enforces that the version attribute in type, role, and service descriptors
is present, and compatible with the current version.
* Moved descriptor construction from DefaultDeployer into separate
DescriptorBuilder classes, one for each type of descriptor.
* Detection of whether a descriptor is present in a file, was not portable across
XML parser implementations.
169 lines of code changed in:
Changes to DefaultDeployer:
* 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.
177 lines of code changed in:
(40 more)