darrell in ant

* Fixed a bunch of checkstyle violations (mostly


* Added basic javadoc target to build.

  1. … 33 more files in changeset.
Better Ant1-style configuration in compatibility layer,

as JUnit task relies on child elements being created before,

but configured after, the parent.

Build "test" target now passes when run through Myrmidon.

* New ProjectBuilder which programmatically converts from Ant1 to Myrmidon

project, rather than using a stylesheet. (This is now the default builder for

".xml" files.)

* Removed xml-apis.jar and xalan.jar, and added jaxp.jar back in. Hopefully, this

will keep us out of avoid jar version hell.

* Added more stuff to the ${java.class.path} property available to ant1 tasks.

* Can now fully build Myrmidon using Ant1 compatibility layer. All test bar one

(Ant1CompatTestCase) pass when run using Myrmidon.

* Added <ant1.antcall> task, and test. <ant1.ant> and <ant1.antcall> now

share a common abstract base class.

* Fixed <ant1> test files so that they run under Ant1.4, for checking.

* Fixed build so that ant1_todo.atl only includes the correct files.

* i18n of Ant1Compatibility layer (except stuff stolen directly from Ant1 -

need to look at refactoring Ant1 to allow extension without cut&paste).

* Updated todo and regenerated docs.

* Javadoc

* Added test for Ant version, so that Ant1Compat tests now run automatically

when run under Ant1.5.

* Added nested <condition> element to IfTask, to allow any arbitrary condition

to be used in <if>. Tests updated for new functionality.

* Ant1 conversion stylesheet uses nested <is-set> condition on <if>,

to replicate Ant1 behaviour of 'if=' and 'unless=' on targets.

* ant1compat antlib generated as part of standard build.

* Minor build cleanup: ${custom-tasks-dir} -> ${build.custom-tasks} for


* Ant1CompatProject now uses ProjectHelper for property resolution, rather than

trying to duplicate Ant1 behaviour.

* Added tests for Ant1 Compatibility layer. These have been exclude from regular

build, as they fail when run under Ant1.4.1, because the JUnit task *always*

places ant.jar *first* in the JUnit classpath. Tests work under Ant1.5alpha,

since it adds ant.jar *last* by default. (Tests also function correctly by

invoking JUnit directly - or with Intellij JUnit integration).

* Ant1CompatProject now provides a hacked "java.class.path" property,

which includes the ant1compat.atl file. This is closer to what's expected

by Ant1 build files.

* antlib.xml typedefs everything it needs, in preparation for building with


* 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).

* Added 'property-resolver' role, with 'default'

and 'classic' implementations.

* Ant1CompatProject doesn't instantiate

ClassicPropertyResolver directly.

Make sure verbose messages aren't logged twice.

Modifications to Ant1 compatibility layer.

* Recontextualize Ant1 project for every Task.contextualize()

* Use Converter so that non-string properties are not ignored

* Javadoc

Converted Ant1 Compatibility layer README to xdoc,

and updated the docs.

    • ?
    • ?
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)

Modifications to Ant1 compatibility layer.

* Use modified version of, to provide all

available classes in Path.systemClasspath.

(Uses taken from Mutant proposal,

for obtaining complete classpath from a ClassLoader.)

* Removed <ant> and <antcall> from ant1compat.atl

descriptor, since they don't work.

* Modified build so that xdoclet.jar and

jdepend.jar aren't included in dist/lib.

Build now registers test failure, and halts *after*

all tests have been run.

Need to fork JUnit, because Myrmidon requires xml-apis,

which clashes with jaxp.jar from Ant1.

First cut of Ant1 compatibility layer.

* TransformingProjectBuilder

- Performs an XSL transform on all ".xml" build files.

- Identity transform is used for projects with "version" attribute.

- Added xalan.jar to lib - replaced jaxp.jar with xml-apis.jar

* Compatibility Layer

- Described more fully in src/ant1compat/README.txt

- Uses pre-compiled Ant1 jar files for Ant1 code-base.

Insulates from changes in the main tree, and simplifies build.

- "ant." prefix used for all ant1 tasks

    • ?
    • ?
  1. /core/trunk/proposal/myrmidon/src/ant1compat
    • ?
  2. … 9 more files in changeset.