<?xml version="1.0" encoding="UTF-8"?>
<!--
    (c) Copyright IBM Corporation 2013, 2017.
    (c) Copyright HCL Technologies Ltd. 2018. All Rights Reserved.
    This is licensed under the following license.
    The Eclipse Public 1.0 License (http://www.eclipse.org/legal/epl-v10.html)
    U.S. Government Users Restricted Rights:  Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
-->
<plugin xmlns="http://www.urbancode.com/PluginXMLSchema_v1"
           xmlns:server="http://www.urbancode.com/PluginServerXMLSchema_v1"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <header>
    <identifier id="com.urbancode.air.plugin.WMBCMP" name="WebSphere Message Broker - CMP" version="42"/>
    <description>Integration for WebSphere Message Broker to deploy Broker Archives and start and stop Message Flows
                 using the CMP API. This plugin is compatible with both version 9 and 10 of IBM Integration Bus, and
                 is also compatible with versions 7 and 8 of WebSphere Message Broker.</description>
    <tag>Middleware/Enterprise Service Bus/WebSphere Message Broker</tag>
  </header>
  <step-type name="Set Integration Node Properties">
    <description>Set Runtime Properties for the Integration Node (broker).</description>
    <properties>
      <property name="properties" required="true">
        <property-ui type="textAreaBox"
                     label="Properties"
                     description="A new line separated list of properties to set in the format
                        'type:name=value'. Possible component types to specify for 'type' are
                        configurableservice, httplistener, securitycache, cachemanager, or webadmin.
                        The name is specified in the format 'objectName/propertyName'. For
                        configurable services the name must be in the format 'service/objectName/propertyName'."/>

      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization.
                                  This option is only available in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node (broker). You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager.
                                  Specify this value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using.
                                  Specify this value if you are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication.
                                  Explicit user authentication only available with IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file."
                     hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="set_broker_props.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create Execution Group">
    <description>Create execution groups, but only if they do not exist.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Groups"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Comma or new line separated list of Execution Groups defined on the broker to create if they do
                                  not exist."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="create_exe_groups_if_needed.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Does Execution Group Exist">
    <description>Sets an output property named 'exists' with true or false based on the existence of the specified Execution Group.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Execution Group name to identify its existence."/>
      </property>
      <property name="failFast" >
        <property-ui type="checkBox"
                     label="Fail if Execution Group Not Found"
                     default-value="false"
                     description="Select this checkbox to fail the step if the Execution Group is not found.
                        The output property will still be set. "/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="does_exe_group_exist.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Restart Execution Groups">
    <description>Restart execution groups if they exist on the broker.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Groups"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Comma or new line separated list of Execution Groups defined on the broker to restart."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB, and
                                  the maximum amount of time to wait for the server to stop/start. Leave empty or use -1
                                  to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang.
                                  Increase if experiencing 'ConfigManagerProxyRequestTimoutException',
                                  or if the execution group was unable to stop by the given time interval."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="restart_execution_group.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Delete Execution Group">
    <description>Delete the specified execution group from the broker. This will also 
        remove any resources used by the execution group.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="The name of the execution group to be deleted."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB, and
                                  the maximum amount of time to wait for the server to stop/start. Leave empty or use -1
                                  to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang.
                                  Increase if experiencing 'ConfigManagerProxyRequestTimoutException',
                                  or if the execution group was unable to stop by the given time interval."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="delete_exe_group.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Set Execution Group Properties">
    <description>Set runtime properties for an execution group.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group defined on the broker."/>
      </property>
      <property name="properties" required="true">
        <property-ui type="textAreaBox"
                     label="Properties"
                     description="A new line separated list of properties to set in the format name=value"/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="set_execution_group_props.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Set Message Flows Properties">
    <description>Sets runtime properties on a list of message flows.</description>
    <properties>
      <property name="dirOffset">
        <property-ui type="textBox"
                     label="Directory Offset"
                     description="Path under the current working directory where you want the step to execute. Absolute
                                  paths are not allowed."/>
      </property>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group to Deploy to."/>
      </property>
      <property name="msgFlows">
        <property-ui type="textAreaBox"
                     label="Message Flows"
                     description="A new line separated list of message flows."/>
      </property>
      <property name="properties">
        <property-ui type="textAreaBox"
                     label="Properties"
                     description="A new line separated list of properties to set in the format name=value"/>
      </property>
      <property name="propertyFile">
        <property-ui type="textBox"
                     label="Property File"
                     description="Specify the name and path to a property file to use as a source of the properties
                                  instead of explicitly listing the properties in the Properties field and the flows in
                                  the Message Flows field. The property file would be the same format as the one used
                                  by the mqsiapplybaroverride command."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available in
                                  IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="set_flow_props.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
   <step-type name="Delete BAR File Contents">
    <description>Delete all contents that have been deployed using a BAR file name that matches the
                given regular expression. Useful for deploying into shared execution groups.</description>
    <properties>
      <property name="regex" required="true">
        <property-ui type="textBox"
                     label="RegEx"
                     description="Java compliant regular expression for matching the BAR file name of deployed flows."/>
      </property>
      <property name="deleteLibs">
        <property-ui type="checkBox"
                     label="Delete Libraries"
                     description="Check this box to delete any libraries that have been deployed
                        to the execution group using the BAR file."/>
      </property>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group to Deploy to."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="delete_flows_using_regex.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

   <step-type name="Delete Applications">
    <description>Delete an application or multiple applications deployed to an execution group 
                by name.</description>
    <properties>
      <property name="appNames" required="true">
        <property-ui type="textAreaBox"
                     label="Application Names"
                     description="A list of IIB application names split by newlines or commas."/>
      </property>
      <property name="failFast" >
        <property-ui type="checkBox"
                     label="Fail On Missing Application"
                     default-value="false"
                     description="Select this checkbox to fail immediately if any specified 
                        applications do not exist on the execution group. Otherwise, the step will 
                        only fail if none of the applications exist on the execution group."/>
      </property>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group where the applications exist."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." 
                     hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="delete_apps.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create Or Update Configurable Service">
    <description>Create a configurable service if it doesn't exist. If it does, update its properties.</description>
    <properties>
      <property name="servName" required="true">
        <property-ui type="textBox"
                     label="Service Name"
                     description="The name of the service to be created or updated"/>
      </property>
      <property name="servType" required="true">
        <property-ui type="textBox"
                     label="Service Type"
                     description="The type of the service. If there is a service matching Service Name that is not of
                                  this type, the step will fail."/>
      </property>
      <property name="props" required="true">
        <property-ui type="textAreaBox"
                     label="Properties"
                     description="A new line separated list of properties to set in the format name->value or name=value"/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="deleteMissing">
        <property-ui type="checkBox"
                     label="Delete Missing Properties"
                     default-value="false"
                     description="This option will attempt to delete any properties that exist on the
                                  configurable service that aren't referenced in the 'Properties' field."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="create_configurable_service.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Delete Configurable Service">
    <description>Delete a configurable service.</description>
    <properties>
      <property name="servName" required="true">
        <property-ui type="textBox"
                     label="Service Name"
                     description="The name of the service to be created or updated"/>
      </property>
      <property name="servType" required="true">
        <property-ui type="textBox"
                     label="Service Type"
                     description="The type of the service. If there is a service matching Service Name that is not of
                                  this type, the step will fail."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="delete_configurable_service.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Deploy">
    <description>Deploy a Broker Archive. This step will set the output property 'completionCode',
      representing the last completion code returned from the broker during deployment.</description>
    <properties>
      <property name="barFileNames" required="true">
        <property-ui type="textAreaBox"
                     label="Bar File Names"
                     description="Comma or new line separated list of Broker Archive files to deploy."/>
      </property>
      <property name="executionGroup" required="true">
        <property-ui type="textAreaBox"
                     label="Execution Groups"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Comma or new line separated list of Execution Groups to Deploy to."/>
      </property>
      <property name="deployType">
        <property-ui type="selectBox"
                     label="Deployment Type"
                     default-value="${p?:iib.deployType}"
                     description="Specify either an incremental or full deployment. You may 
                        specify the '${p?:iib.deployType}' option and set the 'iib.deployType' property 
                        to either 'incremental' or 'full' at any level in the property hierarchy."/>
        <value label="Full">full</value>
        <value label="Incremental">incremental</value>
        <value label="${p?:iib.deployType}">${p?:iib.deployType}</value>
      </property>
      <property name="startStopMsgFlows">
        <property-ui type="checkBox"
                     label="Start/Stop Message Flows"
                     description="Check to stop all Message Flows in the Execution Group before deployment and start all
                                  Message Flows after deployment."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="deploy.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Start Message Flows">
    <description>Start Message Flows that are stopped.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group."/>
      </property>
      <property name="messageFlows">
        <property-ui type="textAreaBox"
                     label="Message Flows"
                     description="Comma or new line separated list of Message Flow names to start."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="start_msg_flow.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Stop Message Flows">
    <description>Stop Message Flows that are running.</description>
    <properties>
      <property name="executionGroup" required="true">
        <property-ui type="textBox"
                     label="Execution Group"
                     default-value="${p?:resource/iib.executionGroup}"
                     description="Name of the Execution Group."/>
      </property>
      <property name="messageFlows">
        <property-ui type="textAreaBox"
                     label="Message Flows"
                     description="Comma or new line separated list of Message Flow names to start."/>
      </property>
      <property name="brokerHost">
        <property-ui type="textBox"
                     label="IP"
                     default-value="${p?:resource/iib.ip}"
                     description="The ip address of the target server for a remote connection. You must specify
                                  either an 'IP' and 'Port' to connect to a remote broker or an 'Integration Node Name'
                                  to connect to a local broker."/>
      </property>
      <property name="port">
        <property-ui type="textBox"
                     label="Port"
                     default-value="${p?:resource/iib.port}"
                     description="The port of the target server for a remote connection.You must specify either an 'IP'
                                  and 'Port' to connect to a remote broker or an 'Integration Node Name' to connect to
                                  a local broker."/>
      </property>
      <property name="useSSL">
        <property-ui type="checkBox"
                     label="Use SSL"
                     default-value="false"
                     description="Administration security authentication/authorization. This option is only available
                                  in IIB version 10."/>
      </property>
      <property name="integrationNodeName">
        <property-ui type="textBox"
                     label="Integration Node Name"
                     default-value="${p?:resource/iib.brokerName}"
                     description="Name of Integration Node. You must specify either an 'IP' and 'Port' to connect to a
                                  remote broker or an 'Integration Node Name' to connect to a local broker."/>
      </property>
      <property name="channel">
        <property-ui type="textBox"
                     label="Channel"
                     default-value="${p?:resource/iib.channel}"
                     description="The name of the channel to use. Must be defined on the queue manager. Specify this
                                  value if you are using below version 10 of IIB."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The WebSphere MQ Queue Manager which the broker is using. Specify this value if you
                                  are using below version 10 of IIB."/>
      </property>
      <property name="username">
        <property-ui type="textBox"
                     label="Username"
                     description="Username for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="password">
        <property-ui type="secureBox"
                     label="Password"
                     description="Password for secure authentication. Explicit user authentication only available with
                                  IIB 10."/>
      </property>
      <property name="debugFile">
        <property-ui type="textBox"
                     label="Trace File"
                     description="The file to use for trace logging. If not set trace logging will be disabled."/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="stop_msg_flow.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Override Bar Properties">
    <description>Overrides configuration properties inside a Broker Archive file. This step is not compatible with
                 WebSphere Message Broker version 7.</description>
    <properties>
      <property name="includes" required="true">
        <property-ui type="textAreaBox"
                     label="Bar File Includes"
                     description="New line separated list of broker archive files or patterns to include *.bar
                                  includes all bar files in the working directory."/>
      </property>
      <property name="excludes">
        <property-ui type="textAreaBox"
                     label="Bar File Excludes"
                     description="New line separated list of Broker Archives to exclude *.bar includes all bar files
                                  in the working directory."/>
      </property>
      <property name="properties" required="true">
        <property-ui type="textAreaBox"
                     label="Properties"
                     description="A new line separated list of properties to set in the format name=value, or a
                                  Property file. (You must specify either Properties or a Properties File, not both)"/>
      </property>
      <property name="version" required="true">
        <property-ui type="textBox"
                     label="IBM Integration Bus Version"
                     default-value="${p:resource/iib.version}"
                     description="Enter the version of the installed IBM Integration Bus. This determines which API will
                                  be required. For example: 10.0.0.1"/>
      </property>
      <property name="jarPath" required="true">
        <property-ui type="textBox"
                     label="Jar Path"
                     default-value="${p:resource/iib.jarPath}"
                     description="Specify either a directory to recursively search from which contains all required
                                  jars, or specify each individual jar path split by your file systems path separator.
                                  For a list of required jar files please view the plugin documentation."/>
      </property>
      <property name="onFail">
        <property-ui type="selectBox"
                     label="On Failure"
                     default-value="fastFail"
                     description="Choice of action when overrides fail on a particular bar file. (Fast Fail: Step will
                                  fail right away. Best Effort: Step will attempt to override properties on all bar
                                  files, and will fail at the end if any override failures occurred. Useful to pinpoint
                                  which bar files are invalid. Warn: Step will continue on if an override failure
                                  occurs, and print a warning declaring the bar file that failed.)"/>
            <value label="Fast Fail">fastFail</value>
            <value label="Best Effort">bestEffort</value>
            <value label="Warn">warn</value>
      </property>
      <property name="mqsiprofile">
        <property-ui type="textBox"
                     label="MQSIPROFILE Executable"
                     default-value="${p?:resource/iib.mqsiprofile}"
                     description="The absolute path to the mqsiprofile executable on your IIB server.
                                  Specifying this value will initialize your command environment. This
                                  value is required if your command environment is not initialized on
                                  startup through a script such as `.bashrc`."/>
      </property>
      <property name="env">
        <property-ui type="textAreaBox"
                     label="Environment Variables"
                     default-value="${p?:resource/iib.environment}"
                     description="A file or list containing property entries, with each entry delimited by newlines.
                                  Entries must be in the form 'VAR=VALUE' (i.e. java.library.path=/opt/mqm/java/lib64:
                                  /opt/mqm/java/lib). Implemented to support z/OS using an ENVFILE."/>
      </property>
      <property name="timeout">
        <property-ui type="textBox"
                     label="Timeout"
                     default-value="120000"
                     description="The maximum time in milliseconds to wait for a response from WebSphere IIB. Increase if experiencing Timeout Exceptions.
                                  Leave empty or set to -1 to wait indefinitely. Note: Setting the timeout as -1 may cause the step to hang."
                     hidden="true"/>
      </property>
      <property name="shell">
        <property-ui type="textBox"
                     label="Shell"
                     default-value="/bin/sh"
                     description="Path to your shell executable file." hidden="true"/>
      </property>
    </properties>
    <post-processing><![CDATA[
 if (properties.get("exitCode") != 0) {
 properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
 }
 else {
 properties.put("Status", "Success");
 }
 ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/commons-lang.jar:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="mqsi_profile_wrapper.groovy"/>
      <arg value="set_bar_props.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Create Integration Node">
    <description>Create an Integration Node (Broker). This command will create the WebSphere MQ queues required
                 by the broker if they don't already exist.</description>
    <properties>
      <property name="installDir" required="true">
        <property-ui type="textBox"
                     label="IIB Installation Directory"
                     default-value="${p:resource/iib.installDir}"
                     description="The installation directory of the IIB server. (e.g. /opt/ibm/server)"/>
      </property>
      <property name="integrationNode" required="true">
        <property-ui type="textBox"
                     label="Integration Node (Broker)"
                     description="The name of the integration node to create."/>
      </property>
      <property name="queueManager">
        <property-ui type="textBox"
                     label="Queue Manager"
                     default-value="${p?:resource/iib.queueManager}"
                     description="The name of your WebSphere MQ Queue Manager. If this is not specified a queue manager
                                  is created unless running z/OS, in which case this step will fail."/>
      </property>
      <property name="serviceUserId">
        <property-ui type="textBox"
                     label="Service User ID"
                     default-value="${p?:resource/iib.serviceUser}"
                     description="The user ID under which the broker runs. This is only required for IIB version 9."/>
      </property>
      <property name="servicePassword">
        <property-ui type="textBox"
                     label="Service Password"
                     default-value="${p?:resource/iib.servicePass}"
                     description="The password for the service user ID. This is only required for IIB version 9."/>
      </property>
      <property name="additionalArgs">
        <property-ui type="textAreaBox"
                     label="Additional Arguments"
                     description="Any additional arguments to pass to the 'mqsicreatebroker' script when running this
                                  step. Multiple arguments are split by new line. (e.g. '-i generalDefaultUserId')"/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="create_broker.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Delete Integration Node">
    <description>Delete an Integration Node (Broker).</description>
    <properties>
      <property name="installDir" required="true">
        <property-ui type="textBox"
                     label="IIB Installation Directory"
                     default-value="${p:resource/iib.installDir}"
                     description="The installation directory of the IIB server. (e.g. /opt/ibm/server)"/>
      </property>
      <property name="integrationNode" required="true">
        <property-ui type="textBox"
                     label="Integration Node (Broker)"
                     description="The name of the integration node to create."/>
      </property>
      <property name="deleteQueues">
        <property-ui type="checkBox"
                     label="Delete WebSphere MQ Queues"
                     description="Check this box to delete any current integration server administration security
                     WebSphere MQ queues along with the integration node."/>
      </property>
      <property name="deleteTrace">
        <property-ui type="checkBox"
                     label="Delete Trace Files"
                     description="Check this box to delete the node's trace files from its work directory."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="delete_broker.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Start Integration Node">
    <description>Start an Integration Node (Broker).</description>
    <properties>
      <property name="installDir" required="true">
        <property-ui type="textBox"
                     label="IIB Installation Directory"
                     default-value="${p:resource/iib.installDir}"
                     description="The installation directory of the IIB server. (e.g. /opt/ibm/server)"/>
      </property>
      <property name="integrationNode" required="true">
        <property-ui type="textBox"
                     label="Integration Node (Broker)"
                     description="The name of the integration node to create."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="start_broker.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Stop Integration Node">
    <description>Stop an Integration Node (Broker).</description>
    <properties>
      <property name="installDir" required="true">
        <property-ui type="textBox"
                     label="IIB Installation Directory"
                     default-value="${p:resource/iib.installDir}"
                     description="The installation directory of the IIB server. (e.g. /opt/ibm/server)"/>
      </property>
      <property name="integrationNode" required="true">
        <property-ui type="textBox"
                     label="Integration Node (Broker)"
                     description="The name of the integration node to create."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/jettison-1.1.jar:lib/commons-codec.jar:lib/CommonsUtil.jar"/>
      <arg file="stop_broker.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
</plugin>
