Myrmidon

What is Myrmidon?

Myrmidon is one of the Ant 2 proposals currently in development. You can read more about the goals of Ant 2 here.

Myrmidon is a general-purpose task engine. 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.

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.

Differences to Ant 1.x

Some of the differences between Ant 1.x and Myrmidon:

  • Groups of tasks can be assembled into self-describing antlib task libraries. This makes it very easy to distribute and install tasks and data-types.
  • A project can import other projects, and reference their targets.
  • Changes to the property model:
    • Properties and data type references now share the same namespace.
    • Properties are mutable.
    • Properties are scoped into global, local, and parent contexts.
    • if and unless checks now test the property value against false, in addition to testing set/not-set.
  • Changes to task and data-type API:
    • An interface based API, through which a task interacts with the task engine, and the services it provides.
    • A well-defined object lifecycle.
    • Polymorphic types are supported when objects are configured.
    • Reference handling is handled automatically when objects are configured.
    • Aspects can be used to decorate tasks, to add facilities like logging, error handling, or user preferences.
  • A set of well-defined services and APIs have been introduced, to allow tasks to do their work without depending on other tasks:
    • Execute external commands.
    • Execute other tasks.
    • Manage ClassLoaders and Class-paths.
    • Virtual file system (in progress).
    • Execute Java applications (in progress).
    • ...

There are plenty more features planned. You can read about them here.


Copyright © 2000-2002, Apache Software Foundation