|
|
@@ -1,96 +1,111 @@ |
|
|
|
<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> |
|
|
|
<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> |