|
- <document>
-
- <properties>
- <author email="adammurdoch@apache.org">Adam Murdoch</author>
- <title>Introduction</title>
- </properties>
-
- <body>
-
- <section name="What is Myrmidon?">
-
- <p>
- Myrmidon is one of the Ant 2 proposals currently in development. You can
- read more about the goals of Ant 2
- <a href="http://jakarta.apache.org/ant/ant2/">here</a>.
- </p>
-
- <p>
- Myrmidon is a general-purpose <i>task engine</i>. It contains the basic
- building blocks for assembling any sort of task-based tool. Ant 2
- is an example of such a tool, which could be assembled using the Myrmidon task
- engine, and a library of build related tasks.
- </p>
-
- <p>
- Currently, Myrmidon is a prototype of what a task engine might look. It
- includes a small set of tasks and data types. We are currently porting
- many of the Ant 1.x tasks to the Myrmidon task engine.
- </p>
-
- <p>
- </p>
-
- </section>
-
- <section name="Differences to Ant 1.x">
-
- <p>Some of the differences between Ant 1.x and Myrmidon:</p>
-
- <ul>
-
- <li>
- Groups of tasks can be assembled into self-describing <i>antlib</i> task
- libraries. This makes it very easy to distribute and install tasks and data-types.
- </li>
-
- <li>
- A project can import other projects, and reference their targets.
- </li>
-
- <li>
- Changes to the property model:
- <ul>
- <li>Properties and data type references now share the same namespace.</li>
- <li>Properties are mutable.</li>
- <li>Properties are scoped into global, local, and parent contexts.</li>
- <li><code>if</code> and <code>unless</code> checks now test the property
- value against <code>false</code>, in addition to testing set/not-set.</li>
- </ul>
- </li>
-
- <li>
- Changes to task and data-type API:
- <ul>
- <li>An interface based API, through which a task interacts with the
- task engine, and the services it provides.</li>
- <li>A well-defined object lifecycle.</li>
- <li>Polymorphic types are supported when objects are configured.</li>
- <li>Reference handling is handled automatically when objects are configured.</li>
- <li>Aspects can be used to decorate tasks, to add facilities like logging,
- error handling, or user preferences.</li>
- </ul>
- </li>
-
- <li>
- A set of well-defined services and APIs have been introduced, to allow
- tasks to do their work without depending on other tasks:
- <ul>
- <li>Execute external commands.</li>
- <li>Execute other tasks.</li>
- <li>Manage ClassLoaders and Class-paths.</li>
- <li>Virtual file system (in progress).</li>
- <li>Execute Java applications (in progress).</li>
- <li>...</li>
- </ul>
- </li>
-
- </ul>
-
- <p>There are plenty more features planned. You can read about them <a href="todo.html">here</a>.</p>
-
- </section>
-
- </body>
-
- </document>
|