[root]/proposal/myrmidon/src/java/org/apache/myrmidon/framework/factories
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 19 (100.0%) | 110 (100.0%) | 5.7 |
adammurdoch | 12 (63.2%) | 107 (97.3%) | 8.9 |
donaldp | 7 (36.8%) | 3 (2.7%) | 0.4 |
zappity zap
0 lines of code changed in:
Changed container config from Parameters to Context, to allow Objects to
be used in the config:
* All services that used to implement Parameterizable now implement Contextualizable.
* Changed 'myrmidon.home' to a File, and the paths to File[].
* DefaultEmbeddor now deploys Antlibs from all directories in 'myrmidon.lib.path',
rather than just a single dir. Can't specify alternative service
implementations (temporarily broken).
* Added 'myrmidon.antlib.path', which DefaultWorkspace uses to search for <import>-ed
antlibs.
* Replaced --task-lib-dir with --antlib-path, which appends directories to
'myrmidon.antlib.path'
* Added --ext-path, which appends directories to 'myrmidon.ext.path'.
* DefaultClassLoaderManager now uses the container config to locate the shared
classloader, rather than using the context classloader.
8 lines of code changed in:
VFS Additions:
* Added FileSelector, which allows files to be chosen when doing recursive
operations. Added a couple of implementations. Added a selector parameter
to FileObject.delete() and copy().
* Added FileObject.replicateFile(), which converts a FileObject into a local File.
* Moved replication code out of the Zip provider, into a shared FileReplicator
component. The implemenation is pretty brain-dead, but at very least should
properly clean up temporary files in ant_vfs_cache. Also, local files will
no longer be replicated, but used directly.
* Added FileName.getRelativeName(), and NameScope.DESCENDENT_OR_SELF.
* Now handles providers which are LogEnabled and Disposable.
* Made the local file provider pluggable.
* Providers are now responsible for thier own caching.
* FTP and Zip providers clean up properly. Fixed FTP directory delete.
2 lines of code changed in:
final static --> static final to follow JLS recomendations
3 lines of code changed in:
* Use the shared classloader as the parent of antlib classloaders, rather
than using the container classloader.
* DefaultWorkspace and ExecManagerFactory figure out myrmidon.home using
their parameters, rather than using system properties.
* Split embeddor/workspace/project handling code out of CLIMain into a new
EmbeddedAnt helper class. CLIMain is now responsible for setting up the
logger, and command-line option handling. EmbeddedAnt is responsible for
starting the embeddor, building the project, and executing targets (and
cleaning-up). Should make it considerably simpler to embed myrmidon.
17 lines of code changed in:
Removed unnecessary try block.
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.
19 lines of code changed in:
VFS Tidy-ups:
* Added FileObject.copy().
* Renamed <v-copy> task attributes file -> srcfile, tofile -> destfile, todir -> destdir.
* Moved provider instantiation out of DefaultFileSystemManager, and into
myrmidon-aware VfsManager. Providers are instantiated using the TypeManager.
The list of providers isn't configurable yet.
* Some support for %nn encoded URI (not quite complete).
* Zip file system now handles zip files from any file system, not just local
files. Still read-only at this stage. Uses a truely dodgy and very temporary
replication mechanism.
* Zip file system now handles relative paths in URI (e.g. zip:relpath.zip), that are
resolved against the base dir.
* Fixed bug in resolving names against the root file of a file system.
* Changed behaviour of FileName.resolveName( ".." ) for the root file of
a file system.
* Added more test cases.
* A bucketload of other minor changes.
28 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.
32 lines of code changed in: