The plugin.xml File

The functionality that a plugin provides is defined in the plugin.xml file. The structure of this file consists of the following:

  • elements used by all plugins: the document type declaration, and the <plugin> root element that identifies the XML schema type, PluginXMLSchema_v1.xsd
  • a header element that provides the identity, version, and description of the plugin
  • the step definitions; each step is delimited by a <step-type> element that defines the functionality and properties available to that step

Example

The following shows an example of a typical plugin.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="PluginXMLSchema_v1" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <header>
    <identifier id="plugin_id" version="version_number" name="Plugin Name"/>
    <description/>
    <tag>Plugin_type/Plugin_subtype/Plugin_name</tag>
  </header>
  <step-type name="Step_Name">
    <description/>
    <properties>
      <property name="property_name" required="true">
        <property-ui type="textBox" label="Driver Jar" 
            description="The full path to the jdbc driver jar to use." 
            default-value="${p:resource/sqlJdbc/jdbcJar}"/>
      </property>
    </properties>
    <post-processing>
      <![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put("Status", "Failure");
        }
        else {
            properties.put("Status", "Success");
        }
    ]]>
  </post-processing>
  <command program="${path_to_tool">
      <arg value="parameters_passed_to_tool"/>
      <arg path="${p:jdbcJar}"/>
      <arg file="command_to_run"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
  </command>
 </step-type>
</plugin>

The following sections describe the elements of the plugin.xml file and their appropriate attributes.