link
Avalon
Avalon Central
Home PlanetProductsCentral
Plugins

A plugin is a special type of project that generates a one of dynamically loadable ant tasks that are managed by Magic's plugin task.

Example plugin definition.

  <plugin basedir="../../runtime/meta/tools">
    <info>
      <group>avalon/meta</group>
      <name>avalon-meta-tools</name>
      <version>1.4.0</version>
    </info>
    <dependencies>
      <include key="avalon-meta-impl"/>
      <include key="qdox"/>
    </dependencies>
    <tasks>
      <taskdef name="meta" class="org.apache.avalon.meta.info.ant.MetaTask"/>
    </tasks>
    <listeners>
      <listener class="org.apache.avalon.meta.info.ant.MetaBuildListener"/>
    </listeners>
  </plugin>

The above plugin defintion demonstrates the two additional features of a plugin over a regual project defintion. Firstly, a plugin can declare the set of task it defines, and secondly, a plugin can declare build listeners. Magic's plugin task will automatically load plugins declared on project defintions.

The following project defintion declares a plugin dependency to the above plugin.

  <project basedir="../../runtime/test/dynamics">
    <info>
      <group>avalon/test</group>
      <name>avalon-test-dynamics</name>
    </info>
    <dependencies>
      <include key="avalon-framework-impl"/>
    </dependencies>
    <plugins>
      <include key="avalon-meta-tools"/>
    </plugins>
  </project>