[root]/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 145 (100.0%) | 1472 (100.0%) | 10.1 |
donaldp | 95 (65.5%) | 787 (53.5%) | 8.2 |
adammurdoch | 44 (30.3%) | 659 (44.8%) | 14.9 |
darrell | 3 (2.1%) | 19 (1.3%) | 6.3 |
sbailliez | 3 (2.1%) | 7 (0.5%) | 2.3 |
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.
22 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).
45 lines of code changed in:
* Moved PropertyStore to interfaces.property. Left DefaultPropertyStore
where it was.
* Changed PropertyResolver.resolveProperties() to use a PropertyStore,
rather than a TaskContext.
* Changed PropertyStore methods to throw a TaskException.
* Changed contract of PropertyStore.getProperty() to throw exception if the
requested property is not set.
13 lines of code changed in:
Introduce the concept of a PropertyStore. The PropertyStore is where all the properties are stored (oh der!) and it is where things like immutability, scoping and so forth are controlled from.
65 lines of code changed in:
* Fixed a bunch of checkstyle violations (mostly
javadoc)
* Added basic javadoc target to build.
4 lines of code changed in:
final static --> static final to follow JLS recomendations
5 lines of code changed in:
* Added new task <ant-call> to core, which can execute a named target
in the current project, or any referenced project.
* <ant1.ant> now works by executing AntTask.
* Fixed minor bug in DefaultClassloaderManager which was causing NPEs
in URLClassLoader.
* DefaultTaskContext now removes properties when they are set to null.
(rather than throwing a NPE inside HashMap).
9 lines of code changed in:
Fix DefaultTaskContext.getProperties() to include inherited properties.
7 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.
4 lines of code changed in:
Added TaskContext.verbose(), and fixed up the usages of info() and warn().
40 lines of code changed in:
Modifications to Ant1 compatibility layer.
* Completed property hooks, so that the underlying Ant1 project
is not used for setting, getting or resolving properties.
* Made PropertyResolver.resolveProperties()take a TaskContext,
instead of Avalon Context. (We can always split out a generic
interface later, if need be.) Ant1 compatibility layer user
ClassicPropertyResolver, which needs a better name.
* Added modified BuildException, which incudes a Myrmidon-friendly
getCause() method, to allow Ant1 exceptions to be properly cascaded.
* DefaultTaskContext:
- Allow "+" in property names.
- Implemented DefaultTaskContext.getProperties()
- No longer implements avalon Context (not needed)
6 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.
49 lines of code changed in:
Some refactoring of framework.Execute:
* Moved the general-purpose logging and validation code from Exec task to
Execute.
* Removed Execute's constructor, replaced with a TaskContext passed to
Execute.execute().
* If no ExecOutputHandler is provided, Execute routes the process' stdout
and stderr via TaskContext's log methods.
* Removed a bunch of debug messages from tasks, as Execute now takes care of this.
* Replaced a bunch of return code == 0 checks, with calls to
Execute.setReturnCode( 0 ).
1 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:
Project Model:
* Removed "if" and "unless" conditions from targets.
* Moved parsing of "project->target" dependencies out of DefaultWorkspace,
into DefaultProjectBuilder.
* DefaultWorkspace now detects cycles in the target dependency graph.
* DefaultWorkspace now executes the implicit target for referenced projects.
* Changes to DefaultProjectBuilder error reporting.
* Added a few more test cases for DefaultProjectBuilder.
Unit Tests:
* Moved AbstractComponentTest.getLogger() up to AbstractMyrmidonTest.
* Removed AbstractComponentTest.setup(). Components are now created on demand.
* Use BasicLogger in unit tests.
115 lines of code changed in:
Lazy access of resolver as not in ServiceManager at construction
6 lines of code changed in:
Move PropertyResolver and friends into own package hierarchy
1 lines of code changed in:
No need for clas to be public
1 lines of code changed in:
(46 more)