<?xml version="1.0" encoding="UTF-8"?>
<!--
- Licensed Materials - Property of IBM* and/or HCL**
- UrbanCode Deploy
- (c) Copyright IBM Corporation 2002, 2017. All Rights Reserved.
- (c) Copyright HCL Technologies Ltd. 2018. All Rights Reserved.
-
- U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by
- GSA ADP Schedule Contract with IBM Corp.
-
- * Trademark of International Business Machines
- ** Trademark of HCL Technologies Limited
-->
<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.WebSphere" version="117" name="WAS - Deploy"/>
    <description>
WebSphere Application Server is an application server built using J2EE, XML, and Web Services.
This plug-in includes steps for deploying applications to WebSphere Application Server.
    </description>
    <tag>Application Server/Java/WebSphere/Deployment</tag>
    <server:required-server-version>6.1.1.2</server:required-server-version>
    <server:dependencies>
        <server:dependency plugin-id="com.urbancode.plugin.VFS" min-version="30"/>
    </server:dependencies>
  </header>
  <!-- ==================================== -->
  <!--  Install Application                 -->
  <!-- ==================================== -->
  <step-type name="Install Application">
    <description>Install an application to a WebSphere server or cluster. If you are installing an application at the cell scope, then the Options String must contain a -MapModulesToServers argument to indicate which servers/clusters are affected.</description>
    <properties>
      <property name="context" required="false">
        <server:property-ui type="textBox" label="Context Root" description="The context root for this application." default-value="/"/>
      </property>
      <property name="location" required="true">
        <server:property-ui type="textBox" label="Application Source" description="The location of the application to install."/>
      </property>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to install. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="editDesc" required="false">
        <server:property-ui type="textBox" label="Edition Description" description="The description of the edition of the application, which is used for a WebSphere reference. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="path">
        <server:property-ui type="textBox" label="Application Path" description="The path where the application will be installed on the server."/>
      </property>
      <property name="argString">
        <server:property-ui type="textAreaBox" label="Options String" description="The string of options to concatenate to the installation command. If blank, the -usedefaultbindings option is used."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="install_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Add Target To Module                 -->
  <!-- ==================================== -->
  <step-type name="Add Target To Module">
    <description>Map a target server or cluster to a module of an enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application being installed. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to map the target to. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="moduleURI" required="true">
        <server:property-ui type="textBox" label="Module URI" description="The URI of the module. For example: PlantsByWebSphere.war,WEB-INF/web.xml"/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_target_to_module.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Map Resource References to EJB for Application                -->
  <!-- ==================================== -->
  <step-type name="Map Resource References to EJB for Application">
    <description>Update the resource reference mappings for an enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to install. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to map resource references for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="resourceReferences" required="true">
        <server:property-ui type="textAreaBox" label="Resource References" description="The resource references to update. Specify a list, separated by newline characters, in the following format: moduleName->bean->uri->resourceReference->resourceType->targetJNDIName. Get this information for your application by using the following command: wsadmin print AdminApp.taskInfo('EarFileLocation', 'MapResRefToEJB')"/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="update_resource_references.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Map Users to Roles for Application                -->
  <!-- ==================================== -->
  <step-type name="Map Users And Groups to Roles for Application">
    <description>Map users to roles for an enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to install. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to map users for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="roleMappings" required="true">
        <server:property-ui type="textAreaBox" label="Role Mappings" description="The role mappings to update. Specify a list, separated by newline characters, in the following format: roleName->Allow Access To everyone(yes|no)->Allow Access To authenticated users(yes|no)->user1|user2->group1|group2. Get this information for your application by using the following command: wsadmin print AdminApp.taskInfo('EarFileLocation', 'MapRolesToUsers')"/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="map_roles_to_users.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Clear Target Mappings For Application                 -->
  <!-- ==================================== -->
  <step-type name="Clear Target Mappings For Application">
    <description>Clear all target mappings for an enterprise application and associated modules.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to install. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to clear mappings for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="remove_target_mappings.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Run Batch Script                 -->
  <!-- ==================================== -->
  <step-type name="Execute Batch Script">
    <description>Run a batch script generated from plug-in steps.</description>
    <properties>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to run." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="save_and_run.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Install Application or Update                 -->
  <!-- ==================================== -->
  <step-type name="Install Or Update Application">
    <description>Install or update an application on a WebSphere server or cluster. If you are installing or updating an application at the cell scope, then the Options String must contain a -MapModulesToServers argument to indicate which servers/clusters are affected.</description>
    <properties>
      <property name="context" required="false">
        <server:property-ui type="textBox" label="Context Root" description="The context root for this application." default-value="/"/>
      </property>
      <property name="location" required="true">
        <server:property-ui type="textBox" label="Application Source" description="The location of the application to install."/>
      </property>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to install. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to install or update. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="editDesc" required="false">
        <server:property-ui type="textBox" label="Edition Description" description="The description of the edition of the application, which is used for a WebSphere reference. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="path">
        <server:property-ui type="textBox" label="Application Path" description="The path where the application will be installed on the server."/>
      </property>
      <property name="argString">
        <server:property-ui type="textAreaBox" label="Options String" description="The string of options to concatenate to the installation command. If blank, the -usedefaultbindings option is used."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="partialUpdate">
        <server:property-ui type="checkBox" label="Partial Update" description="Select if updating an application and the application source specifies only a subset of the application files."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="install_update_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Export Application                  -->
  <!-- ==================================== -->
  <step-type name="Export Application">
    <description>Export an application from the WebSphere server.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to export. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to export. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="filePath" required="true">
        <server:property-ui type="textBox" label="File Path" description="The absolute path of the exported file."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="export_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Update Application                  -->
  <!-- ==================================== -->
  <step-type name="Update Application">
    <description>Update an application on a WebSphere server or cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to update.This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to update. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="contentType" required="true">
        <server:property-ui type="selectBox" label="Content Type" description="The content type of the update."/>
        <value label="Application">app</value>
        <value label="File">file</value>
        <value label="Module File">modulefile</value>
        <value label="Partial Application">partialapp</value>
      </property>
      <property name="operation" required="true">
        <server:property-ui type="selectBox" label="Operation" description="The operation to complete during the update. You must select Update to complete an application update or a partial application update."/>
        <value label="Update">update</value>
        <value label="Add">add</value>
        <value label="Delete">delete</value>
        <value label="Add or Update">addupdate</value>
      </property>
      <property name="contents" required="true">
        <server:property-ui type="textBox" label="Content Path" description="The location of the content to use to update the application."/>
      </property>
      <property name="contentsuri">
        <server:property-ui type="textBox" label="Content URI" description="If content type is file, specify the location of the file to update, relative to the EAR root."/>
      </property>
      <property name="argString" required="false">
        <server:property-ui type="textAreaBox" label="Options String" description="The string of options to concatenate to the update command."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="update_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Uninstall Application               -->
  <!-- ==================================== -->
  <step-type name="Uninstall Application">
    <description>Uninstall an application from a WebSphere server or cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to uninstall. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to uninstall. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="uninstall_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Start Application               -->
  <!-- ==================================== -->
  <step-type name="Start Application">
    <description>Start an application on a WebSphere server or cluster. If you are starting an application at the cell scope, the module list of the installed application is checked to determine which servers/clusters are started.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to start. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to start. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="start_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Stop Application               -->
  <!-- ==================================== -->
  <step-type name="Stop Application">
    <description>Stop an application on a WebSphere server or cluster. If you are stopping an application at the cell scope, the module list of the installed application is checked to determine which servers/clusters are stopped.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to stop. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to stop. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="stop_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Restart Application               -->
  <!-- ==================================== -->
  <step-type name="Restart Application">
    <description>Restart an application on a WebSphere server or cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to restart This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to restart. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="restart_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Start Server               -->
  <!-- ==================================== -->
  <step-type name="Start Server">
    <description>Start a WebSphere server or cluster.</description>
    <properties>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="soapTimeout">
        <server:property-ui type="textBox"
                     label="SOAP Connection Timeout (s)"
                     description="The timeout for SOAP connections. Default is 180 seconds"/>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="start_server.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Stop Server               -->
  <!-- ==================================== -->
  <step-type name="Stop Server">
    <description>Stop a WebSphere server or cluster.</description>
    <properties>
      <property name="immediate">
        <server:property-ui type="checkBox" label="Immediate Stop" default-value="false" description="Call the stopImmediate operation instead of the stop operation. This is supported only when stopping clusters."/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="stop_server.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Restart Server               -->
  <!-- ==================================== -->
  <step-type name="Restart Server">
    <description>Restart a WebSphere server or cluster.</description>
    <properties>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="restart_server.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Wait For Application To Be ready    -->
  <!-- ==================================== -->
  <step-type name="Wait for Application">
    <description>Wait for an application to be ready on the WebSphere server or cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to wait for."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to wait for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="timeout" required="true">
        <server:property-ui type="textBox" label="Timeout(Seconds)" default-value="300" description="The time, in seconds, to wait for the application to be in the ready state before the step fails."/>
      </property>
      <property name="interval" required="true">
        <server:property-ui type="textBox" label="Inverval(Seconds)" default-value="10" description="The time, in seconds, to wait between status checks."/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="wait_for_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Execute Jython or jacl script       -->
  <!-- ==================================== -->
  <step-type name="Execute wsadmin Script">
    <description>Run a Jython or JACL script with the wsadmin tool.</description>
    <properties>
      <property name="scriptBody">
        <server:property-ui type="textAreaBox" label="Script Body" description="The body of the script to run with the wsadmin tool. If a script path is specified, this field is ignored." default-value=""/>
      </property>
      <property name="scriptPath">
        <server:property-ui type="textBox" label="Script Path" description="The script to run with the wsadmin tool. If specified, the Script Body field is ignored." default-value="temp.py"/>
      </property>
      <property name="lang" required="true">
        <server:property-ui type="selectBox" label="Language" description="The scripting language."/>
        <value label="Jython">jython</value>
        <value label="JACL">jacl</value>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="execute_wsadmin_script.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Check Status       -->
  <!-- ==================================== -->
  <step-type name="Check Status">
    <description>Check the status of a WebSphere server or cluster.</description>
    <properties>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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");
            var count = 0;
            scanner.register(".*Object in running state.*", function() {
                count ++;
                if (count == 2) {
                    properties.put("Status", "Success");
                }
            });
            scanner.scan();
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_status.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Create Unmanaged Node               -->
  <!-- ==================================== -->
  <step-type name="Create Unmanaged Node">
    <description>Create a new unmanaged node in the configuration. An unmanaged node is a node that does not have a node agent or a Deployment Manager. Unmanaged nodes can contain Web servers, such as IBM HTTP Server.</description>
    <properties>
      <property name="nodeName" required="true">
        <server:property-ui type="textBox" label="Node Name" description="The name that represents the node in the configuration repository." default-value=""/>
      </property>
      <property name="hostName" required = "true">
        <server:property-ui type="textBox" label="Host Name" description="The host name of the system that is associated with the node." default-value=""/>
      </property>
      <property name="operatingSystem" required = "true">
        <server:property-ui type="selectBox" label="Operating System" description="The operating system in use on the system associated with this node." default-value="LINUX"/>
        <value label="LINUX">linux</value>
        <value label="WINDOWS">windows</value>
        <value label="OS400">os400</value>
        <value label="AIX">aix</value>
        <value label="HPUX">hpux</value>
        <value label="SOLARIS">solaris</value>
        <value label="OS390">os390</value>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="create_unmanaged_node.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

    <!-- ==================================== -->
  <!--  Create IHS WebServer                -->
  <!-- ==================================== -->
  <step-type name="Create IHS Web Server">
    <description>Create an IBM HTTP Server definition with a template, and configure the web server definition properties.  Web server definitions generate and propagate
      the plugin-config.xml file for each web server. For IBM HTTP Server only, you can use web server definitions to administer and configure IBM HTTP Server web
      servers with the administrative console. These functions include: Start, Stop, View logs, View and Edit configuration files.</description>
    <properties>
      <property name="nodeName" required="true">
        <server:property-ui type="textBox" label="Node Name" description="The name of the node." default-value=""/>
      </property>
      <property name="name" required = "true">
        <server:property-ui type="textBox" label="Name" description="The name of the server." default-value=""/>
      </property>
      <property name="webPort" required = "true">
        <server:property-ui type="textBox" label="Web Port" description="The port number of the web server." default-value="80"/>
      </property>
      <property name="webInstallRoot" required="true">
        <server:property-ui type="textBox" label="Web Install Root Directory" description="The installation root directory for the web server." default-value=""/>
      </property>
      <property name="pluginInstallRoot" required = "true">
        <server:property-ui type="textBox" label="Plugin Install Root Directory" description="The root directory where the plug-in for the web server is installed." default-value=""/>
      </property>
      <property name="configurationFile" required = "true">
        <server:property-ui type="textBox" label="Configuration File" description="The file path for the IBM HTTP Server.  This option is required only for viewing and editing the IBM HTTP
          Server Configuration file." default-value=""/>
      </property>
      <property name="serviceName" required="true">
        <server:property-ui type="textBox" label="Windows Service Name" description="The Windows service name to use for IBM HTTP Server." default-value=""/>
      </property>
      <property name="errorLogFile" required = "true">
        <server:property-ui type="textBox" label="Error Log File" description="The path for the IBM HTTP Server error log (error.log file)." default-value=""/>
      </property>
      <property name="accessLogFile" required = "true">
        <server:property-ui type="textBox" label="Access Log File" description="The path for the IBM HTTP Server access log (access.log file)." default-value=""/>
      </property>
      <property name="webProtocol" required="true">
        <server:property-ui type="selectBox" label="Web Protocol" description="Specify the protocol for the IBM HTTP Server administration server running with an unmanaged or remote Web server." default-value="HTTP"/>
        <value label="HTTP">HTTP</value>
        <value label="HTTPS">HTTPS</value>
      </property>
      <property name="webAppMapping" required = "true">
        <server:property-ui type="textBox" label="Web App Mapping" description="Specify the configuration information for web application mapping." default-value=""/>
      </property>
      <property name="adminPort" required = "false">
        <server:property-ui type="textBox" label="Admin Port" description="The port of the IBM HTTP Server administrative server. The administrative server is installed on the same computer
           as the IBM HTTP Server and handles administrative requests to the web server." default-value=""/>
      </property>
      <property name="adminProtocol" required="false">
        <server:property-ui type="selectBox" label="AdminProtocol" description="Select the administrative protocol type." default-value="HTTP"/>
        <value label="HTTP">HTTP</value>
        <value label="HTTPS">HTTPS</value>
      </property>
      <property name="adminUserID" required = "false">
        <server:property-ui type="textBox" label="Admin UserID" description="Specify the user ID, if authentication is activated on the administration server in the admin.conf configuration file.
           This value must match the authentication information in the admin.conf file." default-value=""/>
      </property>
      <property name="adminPasswd" required = "false">
        <server:property-ui type="secureBox" label="Admin Password" description="Specify the password for the user ID. The password is generated by the htpasswd utility and stored in the admin.password file." default-value=""/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createIHSWebServer.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Check Node Status                   -->
  <!-- ==================================== -->
  <step-type name="Check Node Status">
    <description>Check the status of nodes in a cell.</description>
    <properties>
      <property name="nodenames">
        <server:property-ui type="textAreaBox" label="Node Names" description="A list of node names to check, separated by newline characters. Leave blank to check status on all nodes in a cell." default-value=""/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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");
            properties.put("offlineNodes", "false");

            offlineNodes = new java.util.ArrayList();
            scanner.register("(?i)OfflineNodeName:", function(lineNumber, line) {
               properties.put("offlineNodes", "true");
               var nodeName = line.replace("OfflineNodeName: ", "");
               offlineNodes.add(nodeName);
            });
            scanner.scan();

            if (offlineNodes != null && !offlineNodes.isEmpty()) {
              properties.put("offlineNodeNames", offlineNodes.toString());
            }
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_node_status.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Check Status       -->
  <!-- ==================================== -->
  <step-type name="Wait for server or cluster">
    <description>Wait for a server or cluster to start.</description>
    <properties>
      <property name="timeout" required="true">
        <server:property-ui type="textBox" label="Timeout(Seconds)" default-value="300" description="The time, in seconds, to wait for the server or cluster to start before the step fails."/>
      </property>
      <property name="interval" required="true">
        <server:property-ui type="textBox" label="Inverval(Seconds)" default-value="10" description="The time, in seconds, to wait between status checks."/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="wait_for_server.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Wait for server or cluster to stop  -->
  <!-- ==================================== -->
  <step-type name="Wait for server or cluster to stop">
    <description>Wait for a server or cluster to stop.</description>
    <properties>
      <property name="timeout" required="true">
        <server:property-ui type="textBox" label="Timeout(Seconds)" default-value="300" description="The time, in seconds, to wait for the server or cluster to stop before the step fails."/>
      </property>
      <property name="interval" required="true">
        <server:property-ui type="textBox" label="Inverval(Seconds)" default-value="10" description="The time, in seconds, to wait between status checks."/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="wait_for_server_to_stop.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Check App is stopped       -->
  <!-- ==================================== -->
  <step-type name="Check Application is not running">
    <description>Check that an application is not running.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name"/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to check. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="appType" required="true">
        <server:property-ui type="textBox" label="Application Type" description="The type of application to check in WebSphere. Specify J2EEApplication or Application." default-value="Application"/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </property>
    </properties>
    <post-processing><![CDATA[
            properties.put("Status", "Failure");
            properties.put("installed", "unknown");
            properties.put("running", "unknown");
            scanner.register("Application .* is already installed", function() {
                properties.put("installed", "true");
            });

            scanner.register("Application is not currently installed!", function() {
                properties.put("Status", "Failure");
                properties.put("installed", "false");
                properties.put("running", "false");
            });

            scanner.register("Application is fully stopped on target", function() {
                properties.put("Status", "Success");
                properties.put("running", "false");
            });

            scanner.register("Application is not fully stopped on target", function() {
                properties.put("running", "true");
            });
            scanner.scan();
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_app_is_stopped.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Check App is running       -->
  <!-- ==================================== -->
  <step-type name="Check Application is running">
    <description>Check that an application is running.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name"/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to be checked. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="appType" required="true">
        <server:property-ui type="textBox" label="Application Type" description="The type of application to check in WebSphere. Specify J2EEApplication or Application." default-value="Application"/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </property>
    </properties>
    <post-processing><![CDATA[
            properties.put("Status", "Failure");
            properties.put("installed", "unknown");
            properties.put("running", "unknown");
            scanner.register("Application .* is already installed", function() {
                properties.put("installed", "true");
            });

            scanner.register("Application is not currently installed!", function() {
                properties.put("Status", "Failure");
                properties.put("installed", "false");
                properties.put("running", "false");
            });

            scanner.register("Application is fully running on target", function() {
                properties.put("Status", "Success");
                properties.put("running", "true");
            });

            scanner.register("Application is not fully running on target", function() {
                properties.put("running", "false");
            });
            scanner.scan();
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_app_is_running.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ============================================= -->
  <!-- Generate Plugin                               -->
  <!-- ============================================= -->
  <step-type name="Generate Plugin">
    <description>Generate a WebSphere plug-in for web servers.</description>
    <properties>
      <property name="appServerRootDir" required="true">
        <server:property-ui type="textBox" label="Application Server Root Directory" description="The root directory of the application server."/>
      </property>
      <property name="configRepoRootDir" required="true">
        <server:property-ui type="textBox" label="Configuration Repo Root Directory" description="The root directory of the configuration repository for the plug-in."/>
      </property>
      <property name="fileName" required="true">
        <server:property-ui type="textBox" label="Output file name" description="The name of the output file to generate."/>
      </property>
      <property name="forServer">
        <server:property-ui type="checkBox" label="Server Scope" description="Select to generate a plug-in for a web server that is defined by the server property instead of the cell scope." default-value="false"/>
      </property>
      <property name="propagate">
        <server:property-ui type="checkBox" label="Propagate" default-value="false"/>
      </property>
      <property name="propagateKeyRing">
        <server:property-ui type="checkBox" label="Propagate Key Ring" default-value="false"/>
      </property>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="generate_plugin.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
     <!-- ============================================= -->
        <!-- Synchronize nodes                             -->
        <!-- ============================================= -->

  <step-type name="Synchronize nodes">
    <description>Synchronize all nodes in a cell.</description>
    <properties>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="isSyncAllNodes">
        <server:property-ui type="checkBox" label="Synchronize All Nodes" default-value="true" description="Select to synchronize every node. Clear to synchronize only the node specified in the Node Name property."/>
      </property>
      <property name="isFullSync">
        <server:property-ui type="checkBox" label="Full Synchronize" default-value="false" description="Select to run a full synchronization. Clear to run a normal synchronization."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="Name of the script file to create or append to." default-value="${p:request.id}.py" hidden="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="syncNodes.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
        <!-- ============================================= -->
        <!-- Modify Application ClassLoaders                             -->
        <!-- ============================================= -->

  <step-type name="Modify Application ClassLoaders">
    <description>Modify the class loader settings for an application and associated web modules.</description>
    <properties>
      <property name="appName">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to update the class loader settings for."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to modify. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="appClassLoader"><!-- textbox to allow properties -->
        <server:property-ui type="textBox" label="Application ClassLoader" default-value="PARENT_FIRST" description="The class loader mode to use for the overall application. Specify PARENT_FIRST or PARENT_LAST."/>
      </property>
      <property name="warClassLoader"><!-- textbox to allow properties -->
        <server:property-ui type="textBox" label="Web Module ClassLoader" default-value="PARENT_FIRST" description="The class loader mode to use for the web modules in the application. Specify PARENT_FIRST or PARENT_LAST."/>
      </property>
      <property name="warClassLoaderPolicy">
        <server:property-ui type="textBox" label="WAR Classloader Policy" default-value="MULTIPLE" description="The policy that the classloader is to use to load the WAR modules of the application.  Specify SINGLE or MULTIPLE."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="modifyClassloader.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create DataSource For Cluster DEPRECATED">
    <description>DEPRECATED. Create a data source on a cluster. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the cluster where the JDBC provider resides."/>
      </property>
      <property name="jdbcproviderName" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Name" description="The name of the JDBC provider to create the data source on."/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="DataSource Name" description="The name of the data Source to create."/>
      </property>
      <property name="dataStoreClassName" required="true">
        <server:property-ui type="textBox" label="DataStore Helper ClassName" description="The class name of the datastore helper."/>
      </property>
      <property name="jndiName" required="true">
        <server:property-ui type="textBox" label="JNDI Name" description="The JNDI name for the data source."/>
      </property>
      <property name="dbName">
        <server:property-ui type="textBox" label="DB Name(Legacy)" description="The database name for the data source. This is for legacy support. Use the Resource Properties field."/>
      </property>
      <property name="driverType">
        <server:property-ui type="textBox" label="Driver Type" description="The Driver Type for this DataSource. This is for legacy support. Please use the Resource Properties text area."/>
      </property>
      <property name="serverName">
        <server:property-ui type="textBox" label="Server Name" description="The Server Name for this DataSource to connect to. This is for legacy support. Please use the Resource Properties text area."/>
      </property>
      <property name="portNumber">
        <server:property-ui type="textBox" label="Port Number" description="The Port Number for this DataSource to connect to. This is for legacy support. Please use the Resource Properties text area."/>
      </property>
      <property name="authAlias" required="true">
        <server:property-ui type="textBox" label="Auth Alias" description="The Alias to create or use for this DataSource."/>
      </property>
      <property name="aliasUsername" required="true">
        <server:property-ui type="textBox" label="Alias User Name" description="The User name to use for the Auth Alias if not already created."/>
      </property>
      <property name="aliasPassword" required="true">
        <server:property-ui type="secureBox" label="Alias Password" description="The Password to use for the Auth Alias if not already created."/>
      </property>
      <property name="desc" required="true">
        <server:property-ui type="textBox" label="Description" description="The Description of the DataSource to create."/>
      </property>
      <property name="resourceProperties" required="true">
        <server:property-ui type="textAreaBox" label="Resource Properties" description="The resource properties to configure this data source with. Newline separated list of properties in the form name|type|value"/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createDataSource.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Create DataSource DEPRECATED">
    <description>DEPRECATED. Create a DataSource on a given JDBCProvider. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="jdbcProviderLocation" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Location" description="The containment path to the JDBCProvider. i.e. /Cell:cellName/ServerCluster:clusterName/JDBCProvider:providerName/. Note, it must end with a JDBCProvider type and a /"/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="DataSource Name" description="The name of the DataSource to create."/>
      </property>
      <property name="dataStoreClassName" required="true">
        <server:property-ui type="textBox" label="DataStore Helper ClassName" description="The ClassName of the dataStoreHelper."/>
      </property>
      <property name="jndiName" required="true">
        <server:property-ui type="textBox" label="JNDI Name" description="The JNDI Name for this DataSource."/>
      </property>
      <property name="authAlias" required="true">
        <server:property-ui type="textBox" label="Auth Alias" description="The Alias to create or use for this DataSource."/>
      </property>
      <property name="aliasUsername" required="true">
        <server:property-ui type="textBox" label="Alias User Name" description="The User name to use for the Auth Alias if not already created."/>
      </property>
      <property name="aliasPassword" required="true">
        <server:property-ui type="secureBox" label="Alias Password" description="The Password to use for the Auth Alias if not already created."/>
      </property>
      <property name="desc" required="true">
        <server:property-ui type="textBox" label="Description" description="The Description of the DataSource to create."/>
      </property>
      <property name="dbName">
        <server:property-ui type="textBox" label="DB Name(Legacy)" description="The DB Name for this DataSource. This is for legacy support. Please use the Resource Properties text area."/>
      </property>
      <property name="resourceProperties" required="true">
        <server:property-ui type="textAreaBox" label="Resource Properties" description="The resource properties to configure this data source with. Newline separated list of properties in the form name|type|value"/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createDataSource.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <step-type name="Check If Config Object Exists DEPRECATED">
    <description>DEPRECATED. Check if a config object exists in the WebSphere Configuration by Containment Path. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="containmentPath" required="true">
        <server:property-ui type="textBox" label="Object Containment Path" description="The containment path to the object to check for. i.e. /Cell:cellName/ServerCluster:clusterName/JDBCProvider:providerName/. Note, it must end with a JDBCProvider type and a /"/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="checkObjectExists.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create SIBJMSQueue DEPRECATED">
    <description>DEPRECATED. Create a SIBJMSQueue on a given scope. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="scope" required="true">
        <server:property-ui type="textBox" label="Scope" description="The containment path to the parent on which to create this SIBJMSQueue. i.e. /Cell:cellName/ServerCluster:clusterName/. Note, it must end with a /"/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="SIBJMSQueue Name" description="The name of the Queue to create."/>
      </property>
      <property name="jndiName" required="true">
        <server:property-ui type="textBox" label="JNDI Name" description="The JNDI name of the Queue to create."/>
      </property>
      <property name="queueName" required="true">
        <server:property-ui type="textBox" label="Queue Name" description="The name of the service integration bus destination to which this queue maps."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createSIBJMSQueue.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Check Application is Installed">
    <description>Check that an application is installed.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to check for."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to check. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <property-ui type="textAreaBox" label="Additional Command Line Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        properties.put("Status", "Success");
        if (properties.get("exitCode") != 0) {
            scanner.register(".*not currently installed.*", function() {
                properties.put("installed", "false");
            });
            scanner.scan();
            if (!properties.get("installed")) {
                properties.put("Status", "Failure");
            }
        }
        else {
            scanner.register(".*already installed.*", function() {
                properties.put("installed", "true");
            });
            scanner.scan();
            if (!properties.get("installed")) {
                properties.put("Status", "Failure");
            }
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_app_is_installed.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create SIBJMSTopic DEPRECATED">
    <description>DEPRECATED. Create a SIBJMSTopic on a given scope. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="scope" required="true">
        <server:property-ui type="textBox" label="Scope" description="The containment path to the parent on which to create this SIBJMSTopic. i.e. /Cell:cellName/ServerCluster:clusterName/. Note, it must end with a /"/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="SIBJMSTopic Name" description="The name of the SIBJMSTopic to create."/>
      </property>
      <property name="jndiName" required="true">
        <server:property-ui type="textBox" label="JNDI Name" description="The JNDI name of the Topic 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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createSIBJMSTopic.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create SIBJMSConnectionFactory DEPRECATED">
    <description>DEPRECATED. Create a SIBJMSConnectionFactory on a given scope. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="scope" required="true">
        <server:property-ui type="textBox" label="Scope" description="The containment path to the parent on which to create this SIBJMSConnectionFactory. i.e. /Cell:cellName/ServerCluster:clusterName/. Note, it must end with a /"/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="SIBJMSConnectionFactory Name" description="The name of the SIBJMSConnectionFactory to create."/>
      </property>
      <property name="jndiName" required="true">
        <server:property-ui type="textBox" label="JNDI Name" description="The JNDI name of the Connection Factory to create."/>
      </property>
      <property name="busName" required="true">
        <server:property-ui type="textBox" label="Bus Name" description="The name of the SIBus to association this Connection Factory with."/>
      </property>
      <property name="type" required="true">
        <server:property-ui type="textBox" label="Type" description="The type of the Connection Factory to create. Use Queue or Topic."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createSIBJMSConnectionFactory.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Update Simple Attribute on Object DEPRECATED">
    <description>DEPRECATED. Update simple attribute on a config object. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="object" required="true">
        <server:property-ui type="textBox" label="Object Containment Path" description="The containment path to the object on which to update attribute. i.e. /Cell:cellName/ServerCluster:clusterName/. Note, it must end with a /"/>
      </property>
      <property name="attName" required="true">
        <server:property-ui type="textBox" label="Attribute Name" description="The attribute name to update the value of."/>
      </property>
      <property name="attValue" required="true">
        <server:property-ui type="textBox" label="Value" description="The value to set the attribute to."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="updateAttribute.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Update J2EEResourceProperty on Object DEPRECATED">
    <description>DEPRECATED. Create or Update J2EEResourceProperty on a config object. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="object" required="true">
        <server:property-ui type="textBox" label="Object Containment Path" description="The containment path to the object on which to update attribute. i.e. /Cell:cellName/ServerCluster:clusterName/. Note, it must end with a /"/>
      </property>
      <property name="propName" required="true">
        <server:property-ui type="textBox" label="Property Name" description="The property name to update the value of."/>
      </property>
      <property name="propValue" required="true">
        <server:property-ui type="textBox" label="Value" description="The value to set the property to."/>
      </property>
      <property name="propType" required="true">
        <server:property-ui type="textBox" label="Type" description="The type of the property. i.e. java.lang.String."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="updateJ2EEResourceProperty.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create JDBCProvider DEPRECATED">
    <description>DEPRECATED. Create a JDBCProvider with specified scope. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="scope" required="true">
        <server:property-ui type="textBox" label="Scope" description="The scope at which to create teh JDBCProvider. Format: type=name. Type can be Cell, Node, Server, Application, or Cluster, and name is the name of the specific instance of the cell, node, server, application, or cluster that you are using."/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Name" description="The name of the JDBCPRovider to create."/>
      </property>
      <property name="dbType" required="true">
        <server:property-ui type="textBox" label="DB Type" description="The DB Type of the JDBCPRovider to create."/>
      </property>
      <property name="provType" required="true">
        <server:property-ui type="textBox" label="Provider Type" description="The Type of the JDBCPRovider to create."/>
      </property>
      <property name="implType" required="true">
        <server:property-ui type="textBox" label="Implementation Type" description="The Implementation Type of the JDBCPRovider to create."/>
      </property>
      <property name="desc" required="true">
        <server:property-ui type="textBox" label="Description" description="The Description of the JDBCPRovider to create."/>
      </property>
      <property name="classPath" required="true">
        <server:property-ui type="textBox" label="Class Path" description="The Classpath of the JDBCPRovider to create."/>
      </property>
      <property name="nativePath" required="true">
        <server:property-ui type="textBox" label="Native Path" description="The Native of the JDBCPRovider 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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createJDBCProvider.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create JDBCProvider For Cluster DEPRECATED">
    <description>DEPRECATED. Create a JDBCProvider on a cluster. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the Cluster that the JDBCProvider lives on."/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Name" description="The name of the JDBCPRovider to create."/>
      </property>
      <property name="dbType" required="true">
        <server:property-ui type="textBox" label="DB Type" description="The DB Type of the JDBCPRovider to create."/>
      </property>
      <property name="provType" required="true">
        <server:property-ui type="textBox" label="Provider Type" description="The Type of the JDBCPRovider to create."/>
      </property>
      <property name="implType" required="true">
        <server:property-ui type="textBox" label="Implementation Type" description="The Implementation Type of the JDBCPRovider to create."/>
      </property>
      <property name="desc" required="true">
        <server:property-ui type="textBox" label="Description" description="The Description of the JDBCPRovider to create."/>
      </property>
      <property name="classPath" required="true">
        <server:property-ui type="textBox" label="Class Path" description="The Classpath of the JDBCPRovider to create."/>
      </property>
      <property name="nativePath" required="true">
        <server:property-ui type="textBox" label="Native Path" description="The Native of the JDBCPRovider 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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createJDBCProvider.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Import DataSource Properties into Cluster DEPRECATED">
    <description>DEPRECATED. Import the data source properties into a Cluster. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the Cluster that the JDBCProvider lives on."/>
      </property>
      <property name="jdbcProviderName" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Name" description="The name of the JDBCPRovider that the data source lives on."/>
      </property>
      <property name="datasourceName" required="true">
        <server:property-ui type="textBox" label="DataSource Name" description="The name of the data source to import properties into."/>
      </property>
      <property name="connectionTimeout" required="true">
        <server:property-ui type="textBox" label="Connection Timeout" description="The Connection Timeout to use."/>
      </property>
      <property name="statementCacheSize" required="true">
        <server:property-ui type="textBox" label="Statement Cache Size" description="The Statement Cache Size to use."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="importDataSourceProps.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Export DataSource Properties from Cluster DEPRECATED">
    <description>DEPRECATED. Export the data source properties from a Cluster. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the Cluster that the JDBCProvider lives on."/>
      </property>
      <property name="jdbcProviderName" required="true">
        <server:property-ui type="textBox" label="JDBCProvider Name" description="The name of the JDBCPRovider that the data source lives on."/>
      </property>
      <property name="datasourceName" required="true">
        <server:property-ui type="textBox" label="Data Source Name" description="The name of the data source to get properties from."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="exportDataSourceProps.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Import JVMHeapSizes for Cluster DEPRECATED">
    <description>DEPRECATED. Import the JVM Heap Size values for all servers in a cluster. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the Cluster whose heap size is to be updated."/>
      </property>
      <property name="initialHeapSize" required="true">
        <server:property-ui type="textBox" label="Initial Heap Size" description="The initial heap size to use for all servers in this cluster."/>
      </property>
      <property name="maximumHeapSize" required="true">
        <server:property-ui type="textBox" label="Maximum Heap Size" description="The initial heap size to use for all servers in this cluster."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="importHeapSizes.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Export JVMHeapSizes from Server DEPRECATED">
    <description>DEPRECATED. Export the JVM Heap Size values from a server. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="serverName" required="true">
        <server:property-ui type="textBox" label="Server Name" description="The name of the Server whose heap size to export."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="exportHeapSizes.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Check Maximum Heap Size DEPRECATED">
    <description>DEPRECATED. Check that maximum heap size. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="serverName" required="true">
        <server:property-ui type="textBox" label="Server Name" description="The name of the Server whose heap size to check."/>
      </property>
      <property name="minimum" required="true">
        <server:property-ui type="textBox" label="Minimum Size(MB)" description="The minimum expected heapsize."/>
      </property>
      <property name="maximum" required="true">
        <server:property-ui type="textBox" label="Maximum Size(MB)" description="The maximum expected heapsize."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="checkMaximumHeapSize.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Check Initial Heap Size DEPRECATED">
    <description>DEPRECATED. Check that initial heap size. This step is deprecated. Use the WebSphere Application Server - Configure plug-in to work with configurations in WebSphere.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="serverName" required="true">
        <server:property-ui type="textBox" label="Server Name" description="The name of the Server whose heap size to check."/>
      </property>
      <property name="minimum" required="true">
        <server:property-ui type="textBox" label="Minimum Size(MB)" description="The minimum expected heapsize."/>
      </property>
      <property name="maximum" required="true">
        <server:property-ui type="textBox" label="Maximum Size(MB)" description="The maximum expected heapsize."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="checkInitialHeapSize.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create Cluster Member">
    <description>Create a cluster member.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the cluster to create."/>
      </property>
      <property name="memberName" required="true">
        <server:property-ui type="textBox" label="Member Name" description="The name of the cluster member to create."/>
      </property>
      <property name="nodeName" required="true">
        <server:property-ui type="textBox" label="Node Name" description="The name of the node to create the cluster member on."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createClusterMember.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <step-type name="Create Cluster">
    <description>Create a cluster.</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" label="Host" default-value="${p?:resource/websphere.host}" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" label="Port" description="The port to connect to." hidden="true" default-value="${p?:resource/websphere.port}"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the cluster 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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="createCluster.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Teminate Server               -->
  <!-- ==================================== -->
  <step-type name="Terminate Server or Cluster">
    <description>Stop a WebSphere server or cluster. For advanced users only. Use this step only after a Stop Server or Stop Cluster step has failed to stop the server or cluster. Sets the output property only if any of the node agents are inactive ${p:stepName/checkNodeAgent}</description>
    <properties>
      <property name="deleteTempFileOnFailure">
        <server:property-ui type="checkBox" label="Delete Script File On Failure" description="Select to delete the temporary script file if the step fails." default-value="true"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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");
            scanner.register("Node Agent is not active", function(lineNumber, line) {
                properties.put("checkNodeAgent", "Please check if some node agents are stopped");
            });
            scanner.scan();
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="terminate_server.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Install OSGI Bundle                 -->
  <!-- ==================================== -->
  <step-type name="Install OSGI Bundle">
    <description>Install an OSGI bundle to WebSphere Application Server.</description>
    <properties>
      <property name="bundle" required="true">
        <server:property-ui type="textBox" label="Bundle File" description="The location of the OSGI bundle to install."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
            scanner.register("already exists in the repository", function() {
                properties.put("Status", "Success");
            });
            scanner.scan();
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_osgi_bundle.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Remove OSGI Bundle                 -->
  <!-- ==================================== -->
  <step-type name="Remove OSGI Bundle">
    <description>Remove an OSGI bundle from WebSphere Application Server.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="Bundle Symbolic Name" description="The symbolic name of the OSGI bundle to remove."/>
      </property>
      <property name="version" required="true">
        <server:property-ui type="textBox" label="Bundle Version" description="The version of the OSGI bundle to remove."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="remove_osgi_bundle.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Create BLA                 -->
  <!-- ==================================== -->
  <step-type name="Create BLA">
    <description>Create a business-level application.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to create."/>
      </property>
      <property name="description">
        <server:property-ui type="textAreaBox" label="Description" description=""/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="create_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Create Shared Library                 -->
  <!-- ==================================== -->
  <step-type name="Create Shared Library">
    <description>Create a shared library at the cell level.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="Shared Library Name" description="The name of the shared library to create."/>
      </property>
      <property name="description">
        <server:property-ui type="textAreaBox" label="Description" description=""/>
      </property>
      <property name="classpath" required="true">
        <server:property-ui type="textAreaBox" label="Classpath" description="The class path for the shared library."/>
      </property>
      <property name="nativepath">
        <server:property-ui type="textAreaBox" label="Nativepath" description="The native path for the shared library."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="create_shared_library.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Add Shared Library To Enterprise Application                 -->
  <!-- ==================================== -->
  <step-type name="Add Shared Library to Application">
    <description>Add a shared library to an application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to add the shared library to."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to add the shared library to. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="sharedLibName" required="true">
        <server:property-ui type="textAreaBox" label="Shared Library Name(s)" description="A list of names, separated by newline characters, of shared libraries to add."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_shared_lib_to_enterprise_app.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Add Shared Library To Module                 -->
  <!-- ==================================== -->
  <step-type name="Add Shared Library to Module">
    <description>Add a shared library to a module.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to add the shared library to."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to add the shared library to. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="moduleURI" required="true">
        <server:property-ui type="textBox" label="Module URI" description="The URI of the module to add the shared library to. For example: PlantsByWebSphere.war"/>
      </property>
      <property name="sharedLibName" required="true">
        <server:property-ui type="textAreaBox" label="Shared Library Name(s)" description="A list of names, separated by newline characters, of shared libraries to add."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_shared_lib_to_module.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Delete BLA                 -->
  <!-- ==================================== -->
  <step-type name="Delete BLA">
    <description>Delete a business-level application.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to delete."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="delete_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Check BLA Exists                 -->
  <!-- ==================================== -->
  <step-type name="Check If BLA Exists">
    <description>Check if a business-level application exists in a cell.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to check for."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_if_bla_exists.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Check CU Exists                 -->
  <!-- ==================================== -->
  <step-type name="Check If Composition Unit Exists">
    <description>Check if a composition unit exists in a business-level application.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to check."/>
      </property>
      <property name="cuName" required="true">
        <server:property-ui type="textBox" label="Composition Unit Name" description="The name of the composition unit to check for."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="check_if_cu_exists.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Import Asset                 -->
  <!-- ==================================== -->
  <step-type name="Import Asset">
    <description>Import an asset from an enterprise bundle archive (EBA) file</description>
    <properties>
      <property name="file" required="true">
        <server:property-ui type="textBox" label="EBA File" description="The location of the EBA file to import."/>
      </property>
      <property name="storageType" required="true">
        <server:property-ui type="selectBox" label="Storage Type" description="The storage type for the imported asset."/>
        <value label="FULL">FULL</value>
        <value label="METADATA">METADATA</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </property>
    </properties>
    <post-processing><![CDATA[
        if (properties.get("exitCode") != 0) {
            properties.put(new java.lang.String("Status"), new java.lang.String("Failure"));
            scanner.register("The Application-SymbolicName .* of the EBA is already being used", function() {
                properties.put("Status", "Success");
            });
            scanner.scan();
        }
        else {
            properties.put("Status", "Success");
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="import_asset.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Delete Compisition Unit                 -->
  <!-- ==================================== -->
  <step-type name="Delete Composition Unit">
    <description>Delete a composition unit from a business-level application.</description>
    <properties>
      <property name="cuname" required="true">
        <server:property-ui type="textBox" label="Composition Unit Name" description="The name of the composition unit to delete."/>
      </property>
      <property name="blaname" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to delete the composition unit from."/>
      </property>
      <property name="force" required="true">
        <server:property-ui type="checkBox" label="Force" description="Select to remove all dependency relationships that other assets declare on this asset. If not selected, the asset can be deleted only if no other assets declare a dependency on this asset. By default, Force is not selected." default-value="false"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="delete_comp_unit.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Delete Asset                 -->
  <!-- ==================================== -->
  <step-type name="Delete Asset">
    <description>Delete an asset from an enterprise bundle archive (EBA) file.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="Asset Name" description="The name of the asset to delete."/>
      </property>
      <property name="version">
        <server:property-ui type="textBox" label="Asset Version" description="The version of the asset to delete. Required only if more than one version of the asset exits in WebSphere Application Server."/>
      </property>
      <property name="force" required="true">
        <server:property-ui type="checkBox" label="Force" description="Select to remove all dependency relationships that other assets declare on this asset. If not selected, the asset can be deleted only if no other assets declare a dependency on this asset. By default, Force is not selected." default-value="false"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="delete_asset.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Add Asset to BLA                 -->
  <!-- ==================================== -->
  <step-type name="Add Asset to BLA">
    <description>Add an asset to a business-level application.</description>
    <properties>
      <property name="blaName" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to add the asset to."/>
      </property>
      <property name="assetName" required="true">
        <server:property-ui type="textBox" label="Asset Name" description="The name of the asset to add to the business-level application."/>
      </property>
      <property name="description">
        <server:property-ui type="textBox" label="Description" description="Description of the composition unit."/>
      </property>
      <property name="compUnitName" required="true">
        <server:property-ui type="textBox" label="Composition Unit Name" description="Name of the composition unit."/>
      </property>
      <property name="startingWeight" required="true">
        <server:property-ui type="textBox" label="Starting Weight" default-value="1"/>
      </property>
      <property name="restartBehaviour" required="true">
        <server:property-ui type="textBox" label="Restart Behavior On Update" default-value="DEFAULT" description="Specify whether to restart the composition unit after it is updated. Allowed values are ALL, NONE, or DEFAULT."/>
      </property>
      <property name="virtualHostMappings">
        <server:property-ui type="textAreaBox" label="Virtual Host Mappings" description="Specify a list of mappings from web modules to virtual hosts, separated by newline characters. Use the following format: modulename->virtualhost"/>
      </property>
      <property name="contextRootMappings">
        <server:property-ui type="textAreaBox" label="Context Root Mappings" description="Specify a list of mappings from web modules to context roots, separated by newline characters. Use the following format: modulename->contextroot"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_asset_to_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Add Target to Composition Unit                 -->
  <!-- ==================================== -->
  <step-type name="Add Target to Composition Unit">
    <description>Add a target to composition unit.</description>
    <properties>
      <property name="blaName" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to change the target mapping for."/>
      </property>
      <property name="compUnitName" required="true">
        <server:property-ui type="textBox" label="Composition Unit Name" description="The name of the composition unit."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_target_to_comp_unit.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Add BLA to BLA                 -->
  <!-- ==================================== -->
  <step-type name="Add BLA to BLA">
    <description>Add and associate a business-level application to another business-level application.</description>
    <properties>
      <property name="parent" required="true">
        <server:property-ui type="textBox" label="Parent BLA Name" description="The name of the parent business-level application. The other business-level application is added to this parent application."/>
      </property>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="Child BLA Name" description="The name of the child business-level application. This child application is added to the other business-level application."/>
      </property>
      <property name="description">
        <server:property-ui type="textBox" label="Description" description="Description of the composition unit."/>
      </property>
      <property name="compUnitName" required="true">
        <server:property-ui type="textBox" label="Composition Unit Name" description="Name of the composition unit."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_bla_to_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Start BLA                 -->
  <!-- ==================================== -->
  <step-type name="Start BLA">
    <description>Start a business-level application.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to start."/>
      </property>
      <property name="version">
        <server:property-ui type="textBox" label="Edition" description="The edition of the business-level application to start, if more than one edition exists."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="start_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Stop BLA                 -->
  <!-- ==================================== -->
  <step-type name="Stop BLA">
    <description>Stop a business-level application.</description>
    <properties>
      <property name="name" required="true">
        <server:property-ui type="textBox" label="BLA Name" description="The name of the business-level application to stop."/>
      </property>
      <property name="version">
        <server:property-ui type="textBox" label="Edition" description="The edition of the business-level application to stop, if more than one edition exists."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended as the last arguments on the command line before the script declaration."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="stop_bla.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Activate Application Edition                 -->
  <!-- ==================================== -->
  <step-type name="Activate Application Edition">
    <description>Activate an edition of a WebSphere enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to activate."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to activate. This edition is used for a WebSphere reference. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="activate_edition.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Cancel Application Edition Validation                -->
  <!-- ==================================== -->
  <step-type name="Cancel Application Edition Validation">
    <description>Cancel the validation of an edtion of a WebSphere enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to cancel validation of."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to cancel validation of. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="cancel_validation.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Deactivate Application Edition                -->
  <!-- ==================================== -->
  <step-type name="Deactivate Application Edition">
    <description>Deactivate an edition of a WebSphere enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to deactivate."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to deactivate. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="deactivate_edition.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Rollout Edition Atomically              -->
  <!-- ==================================== -->
  <step-type name="Rollout Edition Atomically">
    <description>Atomically roll out an edition of a WebSphere enterprise application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to roll out."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to roll out. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="resetStrategy" required="true">
        <server:property-ui type="textBox" label="Reset Strategy" description="Reset strategy to use for rolling out the application. Specify hard or soft. Hard stops or restarts the application server, while soft stops or restarts the application instance, while leaving the application server running." default-value="soft"/>
      </property>
      <property name="drainageInterval" required="true">
        <server:property-ui type="textBox" label="Drainage Interval" description="Specifies the number of seconds to wait before stopping an application edition instance during the rollout so that sessions can complete." default-value="30"/>
      </property>
      <property name="quiesceInterval" required="false">
        <server:property-ui type="textBox" label="Quiesce Interval" description="Specifies the number of seconds to wait before cluster members and servers quiesce. If not set, server and cluster quiesce when active dialogs and sessions complete."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="rollout_edition_atomic.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Rollout Edition In Groups              -->
  <!-- ==================================== -->
  <step-type name="Rollout Edition In Groups">
    <description>Roll out an edition of a WebSphere enterprise application in groups.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to roll out."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to roll out. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="groupSize" required="true">
        <server:property-ui type="textBox" label="Group Size" description="The size of the group for rolling out."/>
      </property>
      <property name="resetStrategy" required="true">
        <server:property-ui type="textBox" label="Reset Strategy" description="Reset strategy to use for rolling out the application. Specify hard or soft. Hard stops or restarts the application server, while soft stops or restarts the application instance, while leaving the application server running." default-value="soft"/>
      </property>
      <property name="drainageInterval" required="true">
        <server:property-ui type="textBox" label="Drainage Interval" description="Specifies the number of seconds to wait before stopping an application edition instance during the rollout so that sessions can complete." default-value="30"/>
      </property>
      <property name="quiesceInterval" required="false">
        <server:property-ui type="textBox" label="Quiesce Interval" description="Specifies the number of seconds to wait before cluster members and servers quiesce. If not set, server and cluster quiesce when active dialogs and sessions complete."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="rollout_edition_by_group.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Validate Edition Using Dynamic Cluster              -->
  <!-- ==================================== -->
  <step-type name="Validate Edition Using Dynamic Cluster">
    <description>Validate an edition using a dynamic cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to validate."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to validate. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="maxSize" required="true">
        <server:property-ui type="textBox" label="Maximum Size" description="The maximum size of the dynamic cluster."/>
      </property>
      <property name="minSize" required="true">
        <server:property-ui type="textBox" label="Minimum Size" description="The minimum size of the dynamic cluster."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="validate_edition_with_dynamic_cluster.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Validate Edition Using Static Cluster              -->
  <!-- ==================================== -->
  <step-type name="Validate Edition Using Static Cluster">
    <description>Validate an edition using a static cluster.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to validate."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to validate. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="clusterSize" required="true">
        <server:property-ui type="textBox" label="Cluster Size" description="The size of the static cluster."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="validate_edition_with_static_cluster.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Update App On Cluster              -->
  <!-- ==================================== -->
  <step-type name="Update Application On Cluster">
    <description>Call the AdminTask.updateAppOnCluster command to start a rolling update of an application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to update."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to update. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="timeout" required="true">
        <server:property-ui type="textBox" label="Timeout" description="The timeout in seconds."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="update_app_on_cluster.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Disable AutoSync              -->
  <!-- ==================================== -->
  <step-type name="Disable AutoSync">
    <description>Disable automatic synchronization on nodes.</description>
    <properties>
      <property name="nodenames">
        <server:property-ui type="textAreaBox" label="Node Names" description="A list of node names to disable automatic synchronization on, separated by newline characters. Leave blank for all nodes in cell." default-value=""/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="disable_auto_sync.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Enable AutoSync              -->
  <!-- ==================================== -->
  <step-type name="Enable AutoSync">
    <description>Enable automatic synchronization on nodes.</description>
    <properties>
      <property name="nodenames">
        <server:property-ui type="textAreaBox" label="Node Names" description="A list of node names to enable automatic synchronization on, separated by newline characters. Leave blank for all nodes in cell." default-value=""/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="enable_auto_sync.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Display Application Deployment Options              -->
  <!-- ==================================== -->
  <step-type name="Display Application Deployment Options">
    <description>Echo the options used to install a currently installed application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the application to display the options for. This name is used for a WebSphere reference."/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to display the options for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="get_app_dep_opts.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Update soap.client.props File    -->
  <!-- ==================================== -->
  <step-type name="Update soap.client.props File">
    <description>Update the properties in WebSphere's soap.client.props file.</description>
    <properties>
      <property name="profilePath" required="true">
        <server:property-ui type="textBox" label="Profile Path" default-value="${p?:resource/websphere.profilePath}" description="The directory location of the WebSphere profile to use. For example: /opt/IBM/WebSphere/Profiles/DefaultDmgr01" hidden="true"/>
      </property>
      <property name="securityEnabled">
        <server:property-ui type="selectBox" label="Security Enabled" default-value="ignore" description="Select to enable authentication through the variables configured in the soap.client.props file." hidden="false"/>
        <value label="Do Not Update">ignore</value>
        <value label="False [default]">false</value>
        <value label="True">true</value>
      </property>
      <property name="authenticationTarget">
        <server:property-ui type="selectBox" label="Authentication Target" default-value="ignore" description="The method of authorization. BasicAuth and KRB5 are the only supported selections on a pure JMX SOAP Connector Client. Use the additional arguments property if you need to add a different property." hidden="false"/>
        <value label="Do Not Update">ignore</value>
        <value label="BasicAuth [default]">BasicAuth</value>
        <value label="KRB5">KRB5</value>
      </property>
      <property name="loginUserid">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node. Set to update the com.ibm.SOAP.loginUserid property." hidden="false"/>
      </property>
      <property name="loginPassword">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node.  Set to update the com.ibm.SOAP.loginPassword property." hidden="false"/>
      </property>
      <property name="encodePassword">
        <server:property-ui type="checkBox" label="Encode Password" default-value="true" description="Select to encode the password in the soap.client.props file." hidden="false"/>
      </property>
      <property name="additionalProps">
        <server:property-ui type="textAreaBox" label="Additional Properties to Set" default-value="${p?:resource/websphere.additionalProps}" description="New line separated list of additional properties to set, where the variable name and value are delimited by an equals character. For example: com.ibm.SOAP.authenticationTarget=BasicAuth. Variables will be replaced, not added, and unencrypted." hidden="false"/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="editSoapClientProps.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
        <!-- ============================================= -->
        <!-- WebSphere Topology Discovery                             -->
        <!-- ============================================= -->

  <step-type name="WebSphere Topology Discovery">
    <description>This step discovers all the nodes, servers, and clusters in a cell and creates resources for each under a root resource, applies the correct roles, and sets the role properties. This step can be called directly or from an Update from Live Configuration wrapper step.</description>
    <properties>
      <property name="profilePath">
        <server:property-ui type="textBox" label="Profile Path" default-value="${p?:resource/websphere.profilePath}" description="The directory location of the profile for Rational Application Framework to use. For example: /opt/IBM/WebSphere/Profiles/DefaultDmgr01" hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="wasuser">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="waspassword">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="resourcePath">
        <server:property-ui type="textBox" default-value="${p?:resource.path}" label="Resource" description="The resource to configure." 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/securedata.jar:lib/uDeployRestClient.jar:lib/jettison-1.1.jar"/>
      <arg file="wasConfig.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>

    <server:role>WebSphereCell</server:role>
    <server:type>AUTO_CONFIGURE</server:type>
  </step-type>

        <!-- ============================================= -->
        <!-- WebSphere Discovery                           -->
        <!-- ============================================= -->

  <step-type name="WebSphere Discovery">
    <description>This step discovers if Websphere is on an agent by checking common installation paths. If WebSphere is installed, the step assigns the WebSphereCell role to the resource and sets the command path property.</description>
    <properties>
      <property name="resourcePath">
        <server:property-ui type="textBox" default-value="${p:resource.path}" label="Resource" description="The resource to configure." hidden="true"/>
      </property>
      <property name="pathOverride">
        <server:property-ui type="textBox" label="Path Override" default-value="${p?:agent/wsadmin.path}" description="Override the path to the wsadmin tool."/>
      </property>
      <property name="profilePathResource">
        <server:property-ui type="textBox" label="Profile Path Resource" default-value="${p?:resource/websphere.profilePath}" description="Specify an additional path to search for the wsadmin tool for creating profile resources. By default, the path from the property websphere.profilePath defined on the resource is searched."/>
      </property>
      <property name="profilePathAgent">
        <server:property-ui type="textBox" label="Profile Path Agent" default-value="${p?:agent/websphere.profilePath}" description="Specify an additional path to search for the wsadmin tool for creating profile resources. By default, the path from the property websphere.profilePath defined on the agent is searched."/>

      </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/uDeployRestClient.jar:lib/jettison-1.1.jar"/>
      <arg file="wasDiscovery.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>

    <server:type>AUTO_DISCOVERY</server:type>
  </step-type>
  <!-- ==================================== -->
  <!--  Set Application Defaults            -->
  <!-- ==================================== -->
  <step-type name="Set Application Defaults">
    <description>Generate default IBM WebSphere Bindings for the specified EAR file.</description>
    <properties>
      <property name="ear" required="true">
        <server:property-ui type="textBox" label="EAR File" description="The path of the ear for which you wish to generate bindings." default-value=""/>
      </property>
      <property name="outputEar" required="true">
        <server:property-ui type="textBox" label="Output EAR to Generate" description="The path of the bound EAR."/>
      </property>
      <property name="defaultDataSource" required="false">
        <server:property-ui type="textBox" label="Default Data Source" description="A default data source JNDI name to be used for all EJB 1.x CMPs."/>
      </property>
      <property name="dbUser" required="false">
        <server:property-ui type="textBox" label="DB User" description="The user associated with the default data source."/>
      </property>
      <property name="dbPassword" required="false">
        <server:property-ui type="secureBox" label="DB Password" description="The password associated with the default data source."/>
      </property>
      <property name="defaultConnectionFactory" required="false">
        <server:property-ui type="textBox" label="Default Connection Factory" description="The default connection factory to be used for all EJB 2.x CMPs."/>
      </property>
      <property name="resAuth" required="false">
        <server:property-ui type="textBox" label="Resource Authorization" description="The resource authorization on the connection factory for EJB 2.x CMPs."/>
      </property>
      <property name="ejbJndiPrefix" required="false">
        <server:property-ui type="textBox" label="EJB JNDI Prefix" description="A prefix that is prepended to any generated EJB JNDI names. The default is 'ejb'."/>
      </property>
      <property name="virtualHost" required="false">
        <server:property-ui type="textBox" label="Virtual Host" description="The virtual host for all wars in the application."/>
      </property>
      <property name="forceBindings" required="false">
        <server:property-ui type="textBox" label="Force Bindings" default-value="false" description="When false, any pre-existing bindings will not be altered. When true, new bindings are completely generated. The default is false."/>
      </property>
      <property name="strategy" required="false">
        <server:property-ui type="textBox" label="Strategy" description="Path to a custom strategy file that further affects the bindings. See the properties/dfltbndngs.dtd of your WebSphere installation for more details."/>
      </property>
      <property name="failonerror" required="false">
        <server:property-ui type="textBox" label="Fail On Error" default-value="true" description="When true, the build will fail if any exception is thrown. The default is true."/>
      </property>
      <property name="exportFile" required="false">
        <server:property-ui type="textBox" label="Export File" description="Path to a file that will be generated containing the bindings information. This file is in the custom strategy format."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the ws_ant tool. For example: /opt/IBM/WebSphere/AppServer/bin/" 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/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="set_app_defaults.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>
  <!-- ==================================== -->
  <!--  Update Context Root For Web Modules -->
  <!-- ==================================== -->
  <step-type name="Update Context Root For Web Modules">
    <description>Update the context root for the specified web module(s) of the installed application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the installed application." default-value=""/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to update context roots for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="webModList" required="true">
        <server:property-ui type="textAreaBox" label="Context Root For Web Module" description="The web modules and context roots to update. Specify a list, separated by newline characters, in the following format: moduleName->uri->contextRoot. For example: PlantsByWebSphere Web Application->PlantsByWebSphere.war,WEB-INF/web.xml->/PlantsByWebSphere" default-value=""/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="update_webmodule.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
      <arg value="-CtxRootForWebMod"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Update Virtual Host For Web Modules -->
  <!-- ==================================== -->
  <step-type name="Update Virtual Host For Web Modules">
    <description>Update the virtual host for the specified web module(s) of the installed application.</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of the installed application." default-value=""/>
      </property>
      <property name="appEdition" required="false">
        <server:property-ui type="textBox" label="Application Edition" description="The edition of the application to update context roots for. This is supported only for WebSphere Virtual Enterprise and WebSphere Application Server 8.5 and later."/>
      </property>
      <property name="webModList" required="true">
        <server:property-ui type="textAreaBox" label="Virtual Host For Web Module" description="The web modules and virtual hosts to update. Specify a list, separated by newline characters, in the following format: moduleName->uri->virtualHost. For example: PlantsByWebSphere Web Application->PlantsByWebSphere.war,WEB-INF/web.xml->default_host" default-value=""/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="cell">
        <server:property-ui type="textBox" label="Cell Name" default-value="${p?:resource/websphere.cell}" description="The name of the cell to administer." hidden="true"/>
      </property>
      <property name="node">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer." hidden="true"/>
      </property>
      <property name="server">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer." hidden="true"/>
      </property>
      <property name="cluster">
        <server:property-ui type="textBox" label="Cluster Name" default-value="${p?:resource/websphere.cluster}" description="The name of the cluster to administer." hidden="true"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="update_webmodule.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
      <arg value="-MapWebModToVH"/>
    </command>
  </step-type>

  <!-- ============== -->
  <!--  Delete Server -->
  <!-- ============== -->
  <step-type name="Delete Server">
    <description>Delete the WebSphere server running on the specified node.</description>
    <properties>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to delete."/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node the server resides on."/>
      </property>
      <property name="batch">
        <server:property-ui type="checkBox" label="Batch Script" description="Select to use this command as part of a batch script. When selected, this command is added to a batch script that is saved and can be run later."/>
      </property>
      <property name="scriptFile">
        <server:property-ui type="textBox" label="Script File" description="The name of the script file to create or append to." default-value="${p:request.id}.py"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </property>
      <property name="additionalArgs">
        <server:property-ui type="textAreaBox" label="Additional CommandLine Arguments" description="A list, separated by newline characters, of additional arguments to pass to the wsadmin tool. These arguments are appended at the end of the command line."/>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="deleteServer.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Apply Configuration Properties      -->
  <!-- ==================================== -->
  <step-type name="Apply Configuration Properties">
    <description>Apply the properties in the specified properties file to the WebSphere configuration. </description>
    <properties>
      <property name="propertiesFileName" required="true">
        <server:property-ui type="textBox" label="Properties File Name" description="The name of the properties file to apply." default-value=""/>
      </property>
      <property name="variablesMapFileName" required="false">
        <server:property-ui type="textBox" label="Variables Map File Name" description="The name of the variables map file. This file contains values for variables that the system uses from the properties file."/>
      </property>
      <property name="variablesMap" required="false">
        <server:property-ui type="textAreaBox" label="Variables Map" description="The values of the variables to use with the properties file." default-value=""/>
      </property>
      <property name="reportFileName" required="false">
        <server:property-ui type="textBox" label="Report File Name" description="The name of a report file that contains the output for the applyConfigProperties command."/>
      </property>
      <property name="reportFilterMechanism" required="false">
        <server:property-ui type="textBox" label="Report Filter Mechanism" description="The type of report filter mechanism. Specify All to display all report information. Specify Errors to display error information. Specify Errors_And_Changes to display error and change information."/>
      </property>
      <property name="validate" required="false">
        <server:property-ui type="textBox" label="Validate" default-value="true" description="Specifies whether to validate the properties file before applying the changes."/>
      </property>
      <property name="zipFileName" required="false">
        <server:property-ui type="textBox" label="Zip File Name" description="The name of the compressed file that contains the policy sets that you want applied to the cell."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="adminConfigProperties.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
      <arg value="apply"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Delete Configuration Properties     -->
  <!-- ==================================== -->
  <step-type name="Delete Configuration Properties">
    <description>Delete the properties in the specified properties file from the WebSphere configuration. </description>
    <properties>
      <property name="propertiesFileName" required="true">
        <server:property-ui type="textBox" label="Properties File Name" description="The name of the properties file containing the resources to delete." default-value=""/>
      </property>
      <property name="variablesMapFileName" required="false">
        <server:property-ui type="textBox" label="Variables Map File Name" description="The name of the variables map file. This file contains values for variables that the system uses from the properties file."/>
      </property>
      <property name="variablesMap" required="false">
        <server:property-ui type="textAreaBox" label="Variables Map" description="The values of the variables to use with the properties file." default-value=""/>
      </property>
      <property name="reportFileName" required="false">
        <server:property-ui type="textBox" label="Report File Name" description="The name of a report file that contains the output for the deleteConfigProperties command."/>
      </property>
      <property name="reportFilterMechanism" required="false">
        <server:property-ui type="textBox" label="Report Filter Mechanism" description="The type of report filter mechanism. Specify All to display all report information. Specify Errors to display error information. Specify Errors_And_Changes to display error and change information."/>
      </property>
      <property name="validate" required="false">
        <server:property-ui type="textBox" label="Validate" default-value="true" description="Specifies whether to validate the properties file before deleting the resources."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="adminConfigProperties.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
      <arg value="delete"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Validate Configuration Properties      -->
  <!-- ==================================== -->
  <step-type name="Validate Configuration Properties">
    <description>Validate the WebSphere configuration properties in the specified properties file. </description>
    <properties>
      <property name="propertiesFileName" required="true">
        <server:property-ui type="textBox" label="Properties File Name" description="The name of the properties file to validate." default-value=""/>
      </property>
      <property name="variablesMapFileName" required="false">
        <server:property-ui type="textBox" label="Variables Map File Name" description="The name of the variables map file. This file contains values for variables that the system uses from the properties file."/>
      </property>
      <property name="variablesMap" required="false">
        <server:property-ui type="textAreaBox" label="Variables Map" description="The values of the variables to use with the properties file." default-value=""/>
      </property>
      <property name="reportFileName" required="false">
        <server:property-ui type="textBox" label="Report File Name" description="The name of a report file that contains the output for the applyConfigProperties command."/>
      </property>
      <property name="reportFilterMechanism" required="false">
        <server:property-ui type="textBox" label="Report Filter Mechanism" description="The type of report filter mechanism. Specify All to display all report information. Specify Errors to display error information. Specify Errors_And_Changes to display error and change information."/>
      </property>
      <property name="zipFileName" required="false">
        <server:property-ui type="textBox" label="Zip File Name" description="The name of the compressed file that contains the policy sets that you want applied to the cell."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="adminConfigProperties.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
      <arg value="validate"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--  Enable Intelligent Management Mode  -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Enable">
    <description>Enable the Websphere application server Intelligent management. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="retryInterval" required="false">
        <server:property-ui type="textBox" label="Retry Interval" description="Specifies the time interval (in seconds) between connection attempts"/>
      </property>
      <property name="maxRetries" required="false">
        <server:property-ui type="textBox" label="Maximum Retries" description="Specifies the maximum number of retries for enabling the Intelligent Management service(zero, positive integer or 'infinite')"/>
      </property>
      <property name="cell" required="false">
        <server:property-ui type="textBox" label="Cell Name" default-value="" description="The name of the cell to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="enable_intelligent_mgmt.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!-- Disable Intelligent Management Mode  -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Disable">
    <description>Disable the Websphere application server Intelligent management. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="disable_intelligent_mgmt.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          List Trace Rules            -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - List Trace Rules">
    <description>List Trace Rules for a web server. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="list_trace_rules.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          Add Remote Cell             -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Add Remote Cell">
    <description>Adds a remote cell to the list of cells for a web server. This operation enables a web server to extend the Intelligent Management service to multiple cells. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="remoteCellHost" required="true">
        <server:property-ui type="textBox" label="Remote Cell Host" description="Specifies the host name for the remote cell" />
      </property>
      <property name="remoteCellPort" required="true">
        <server:property-ui type="textBox" label="Remote Cell Port" description="Specifies the port for the remote cell" />
      </property>
      <property name="importCertificates" required="true">
        <server:property-ui type="selectBox" label="Import Certificates" description="Specifies whether to import certificates. Valid values are true or false" />
        <value label="true">true</value>
        <value label="false">false</value>
      </property>
      <property name="remoteCellUserId" required="false">
        <server:property-ui type="textBox" label="Remote Cell User ID" description="Specifies the user ID for the remote cell. Only required if security is enabled" />
      </property>
      <property name="remoteCellPassword" required="false">
        <server:property-ui type="secureBox" label="Remote Cell Password" description="Specifies the password for the remote cell. Only required if security is enabled" />
      </property>
      <property name="enableRemoteCellConnectors" required="false">
        <server:property-ui type="selectBox" label="Enable Remote Cell Connectors" description="Enables Intelligent Management remote cell connectors. Valid values are true or false" />
        <value label="none">none</value>
        <value label="true">true</value>
        <value label="false">false</value>
      </property>
      <property name="remoteCellId" required="false">
        <server:property-ui type="textBox" label="Remote Cell ID" description="Specifies a unique cell identifier" />
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_remote_cell.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          Delete Remote Cell          -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Delete Remote Cell">
    <description>Removes a remote cell from the list of cells for this web server</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="remoteCellHost" required="true">
        <server:property-ui type="textBox" label="Remote Cell Host" description="Specifies the host name for the remote cell" />
      </property>
      <property name="remoteCellPort" required="true">
        <server:property-ui type="textBox" label="Remote Cell Port" description="Specifies the port for the remote cell" />
      </property>
      <property name="deleteCertificates" required="true">
        <server:property-ui type="selectBox" label="Enable Remote Cell Connectors" default-value="true" description="Enables Intelligent Management remote cell connectors. Valid values are true or false" />
        <value label="true">true</value>
        <value label="false">false</value>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="delete_remote_cell.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          List Remote Cells           -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - List Remote Cells">
    <description>Lists the remote cells for a web server which are available for Intelligent Management service</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="list_remote_cells.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ======================================== -->
  <!--    Modify Intelligent Management Mode    -->
  <!-- ======================================== -->
  <step-type name="Intelligent Management - Modify">
    <description>Modifies Intelligent Management properties for a web server. Use this operation to configure your Intelligent Management service</description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="retryInterval" required="false">
        <server:property-ui type="textBox" label="Retry Interval" description="Specifies the time interval (in seconds) between connection attempts"/>
      </property>
      <property name="maxRetries" required="false">
        <server:property-ui type="textBox" label="Maximum Retries" description="Specifies the maximum number of retries for enabling the Intelligent Management service(zero, positive integer or 'infinite')"/>
      </property>
      <property name="cell" required="false">
        <server:property-ui type="textBox" label="Cell Name" default-value="" description="The name of the cell to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="modify_intelligent_mgmt.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          Modify Remote Cell          -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Modify Remote Cell">
    <description>Modifies a remote cell for a web server. Use this operation to change remote cell properties. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="remoteCellHost" required="true">
        <server:property-ui type="textBox" label="Remote Cell Host" description="Specifies the host name for the remote cell" />
      </property>
      <property name="remoteCellPort" required="true">
        <server:property-ui type="textBox" label="Remote Cell Port" description="Specifies the port for the remote cell" />
      </property>
      <property name="enableRemoteCellConnectors" required="false">
        <server:property-ui type="selectBox" label="Enable Remote Cell Connectors" description="Enables Intelligent Management remote cell connectors. Valid values are true or false" />
        <value label="none">none</value>
        <value label="true">true</value>
        <value label="false">false</value>
      </property>
      <property name="remoteCellId" required="false">
        <server:property-ui type="textBox" label="Remote Cell ID" description="Specifies a unique cell identifier" />
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="modify_remote_cell.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          Refresh Local Cell          -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Refresh Local Cell">
    <description>Use this operation to refresh the local cell connectors for your web server. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="refresh_local_cell.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--          Refresh Remote Cell          -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Refresh Remote Cell">
    <description>Use this operation to refresh the remote cell connectors for your web server. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="remoteCellHost" required="true">
        <server:property-ui type="textBox" label="Remote Cell Host" description="Specifies the host name for the remote cell" />
      </property>
      <property name="remoteCellPort" required="true">
        <server:property-ui type="textBox" label="Remote Cell Port" description="Specifies the port for the remote cell" />
      </property>
      <property name="remoteCellUserId" required="false">
        <server:property-ui type="textBox" label="Remote Cell User ID" description="Specifies the user ID for the remote cell. Only required if security is enabled" />
      </property>
      <property name="remoteCellPassword" required="false">
        <server:property-ui type="secureBox" label="Remote Cell Password" description="Specifies the password for the remote cell. Only required if security is enabled" />
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="refresh_remote_cell.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--      Add Conditional Trace Rule      -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Add Conditional Trace Rule">
    <description>Sets the conditional trace specification for a web server. Use this operation to configure conditional tracing from the web server plug-in. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="traceCondition" required="false">
        <server:property-ui type="textAreaBox" label="Trace Condition" description="Specifies the trace condition. Use '\' escape character for quotes" />
      </property>
      <property name="traceSpecification" required="false">
        <server:property-ui type="textAreaBox" label="Trace Specification" description="Indicates the trace specification" />
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="add_conditional_trace_rule.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--        Set Default Trace Rule        -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Set Default Trace Rule">
    <description>Sets the default trace rule for a web server. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="traceSpecification" required="false">
        <server:property-ui type="textAreaBox" label="Trace Specification" description="Indicates the trace specification. Use comma seperator between specifications Ex:control.mapper:ERROR" />
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="set_default_trace_rule.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ==================================== -->
  <!--     Remove Conditional Trace Rule    -->
  <!-- ==================================== -->
  <step-type name="Intelligent Management - Remove Conditional Trace Rule">
    <description>Removes a conditional trace rule from your web server. Use this operation to manage the conditional trace rules in your environment. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="remove_conditional_trace_rule.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ================================================ -->
  <!--      Generate Intelligent Management Plugin      -->
  <!-- ================================================ -->
  <step-type name="Intelligent Management - Generate Plugin">
    <description>Generates a plug-in that is required by the web server. The plug-in configuration file stores all your Intelligent Management settings. </description>
    <properties>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="webSphereInstallPath" required="true">
        <server:property-ui type="textBox" label="WebSphere Application Server Install Path" default-value="${p?:resource/websphere.installPath}" description="The full path to the installation directory of WebSphere Application Server For example: /opt/IBM/WebSphere/AppServer/"/>
      </property>
      <property name="dmgrRoot" required="true">
        <server:property-ui type="textBox" label="Deployment Manager Directory" description="Specifies the deployment manager profile directory." default-value="${p?:resource/websphere.profilePath}"/>
      </property>
      <property name="node" required="true">
        <server:property-ui type="textBox" label="Node Name" default-value="${p?:resource/websphere.node}" description="The name of the node to administer."/>
      </property>
      <property name="server" required="true">
        <server:property-ui type="textBox" label="Server Name" default-value="${p?:resource/websphere.server}" description="The name of the server to administer."/>
      </property>
      <property name="cell" required="true">
        <server:property-ui type="textBox" label="Cell Name" description="The name of the cell to administer." default-value="${p?:resource/websphere.cell}"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="generate_intelligent_mgmt_plugin.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ============================ -->
  <!--      List Cluster Nodes      -->
  <!-- ============================ -->
  <step-type name="List Cluster Nodes">
    <description>Return the list of nodes the cluster is running on and set it as an output property in the format ${p:stepName/nodeList} </description>
    <properties>
      <property name="clusterName" required="true">
        <server:property-ui type="textBox" label="Cluster Name" description="The name of the WebSphere cluster"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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");
            var nodeList = new java.util.ArrayList();
            scanner.register("Node:", function(lineNumber, line) {
                var temp = line.replace("Node:","");
                nodeList.add(temp);
            });
            scanner.scan();
            if(nodeList != null && !nodeList.isEmpty()) {
                properties.put("nodeList", nodeList.toString());
            }
        }
     ]]></post-processing>
    <command program="${GROOVY_HOME}/bin/groovy">
      <arg value="-cp"/>
      <arg path="classes:lib/securedata.jar:lib/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="list_nodes_on_cluster.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ========================================== -->
  <!--        Extract Configuration Properties    -->
  <!-- ========================================== -->
  <step-type name="Extract Configuration Properties">
    <description>Extracts configuration data in the form of a properties file </description>
    <properties>
      <property name="propertiesFileName" required="true">
        <server:property-ui type="textBox" label="Properties File Name" description="The name of the file to store the properties extracted from configuration"/>
      </property>
      <property name="configDataKey" required="false">
        <server:property-ui type="textBox" label="Config Data Key" description="Specifies the configuration object in the format Ex: Node, Server, VirtualHost, etc,."/>
      </property>
      <property name="configDataValue" required="false">
        <server:property-ui type="textBox" label="Config Data Value" description="Specifies the corresponding configuration object instance"/>
      </property>
      <property name="optionsKey" required="false">
        <server:property-ui type="textBox" label="Options Key" description="Specifies additional configuration options, such as GenerateTemplates, PortablePropertiesFile, etc,.."/>
      </property>
      <property name="optionsValue" required="false">
        <server:property-ui type="selectBox" label="Options Value" description="Specifies additional configuration options value."/>
        <value label="none">none</value>
        <value label="true">true</value>
        <value label="false">false</value>
      </property>
      <property name="filterMechanism" required="false">
        <server:property-ui type="selectBox" label="Filter Mechanism" description="Specifies filter information for extracting configuration properties."/>
        <value label="none">none</value>
        <value label="ALL">ALL</value>
        <value label="NO_SUBTYPES">NO_SUBTYPES</value>
        <value label="SELECTED_SUBTYPES">SELECTED_SUBTYPES</value>
      </property>
      <property name="selectedSubTypesKey" required="false">
        <server:property-ui type="textBox" label="Selected Sub Types Key" description="Specifies the configuration properties to include or exclude when the command extracts the properties. Specify this parameter if you set the filterMechanism parameter to NO_SUBTYPES or SELECTED_SUBTYPES."/>
      </property>
      <property name="selectedSubTypesValue" required="false">
        <server:property-ui type="textBox" label="Selected Sub Types Value" description="The value to include or exclude when NO_SUBTYPES or SELECTED_SUBTYPES is set as filterMechanism "/>
      </property>
      <property name="zipFileName" required="false">
        <server:property-ui type="textBox" label="Zip File Name" description="Specifies the name of the compressed file into which you want to extract policy sets."/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="extract_config_props.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ================================================= -->
  <!--      Disable Automatic Start of an Application    -->
  <!-- ================================================= -->
  <step-type name="Disable Auto Start of an Application">
    <description>Disable automatic start/loading of the application</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of an Application"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="disable_auto_app_start.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

  <!-- ================================================= -->
  <!--      Enable Automatic Start of an Application     -->
  <!-- ================================================= -->
  <step-type name="Enable Auto Start of an Application">
    <description>Enable automatic start/loading of the application</description>
    <properties>
      <property name="appName" required="true">
        <server:property-ui type="textBox" label="Application Name" description="The name of an Application"/>
      </property>
      <property name="commandPath">
        <server:property-ui type="textBox" label="Command Path" default-value="${p?:resource/websphere.commandPath}" description="The full path to the directory that contains the wsadmin tool. For example: /opt/IBM/WebSphere/AppServer/bin/" hidden="true"/>
      </property>
      <property name="user">
        <server:property-ui type="textBox" label="User Name" default-value="${p?:resource/websphere.user}" description="The user name for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="password">
        <server:property-ui type="secureBox" label="Password" default-value="${p?:resource/websphere.password}" description="The password for connecting to the WebSphere node." hidden="true"/>
      </property>
      <property name="host">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.host}" label="Host" description="The host name of the server to connect to." hidden="true"/>
      </property>
      <property name="port">
        <server:property-ui type="textBox" default-value="${p?:resource/websphere.port}" label="Port" description="The port to connect to." hidden="true"/>
      </property>
      <property name="connType" required="true">
        <server:property-ui type="selectBox" label="Connection Type" default-value="${p?:resource/websphere.connType}" description="The type of connection to use with the wsadmin tool." hidden="true"/>
        <value label="SOAP">SOAP</value>
        <value label="RMI">RMI</value>
        <value label="NONE">NONE</value>
      </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/CommonsUtil.jar:lib/commons-codec.jar:lib/jettison-1.1.jar"/>
      <arg file="enable_auto_app_start.groovy"/>
      <arg file="${PLUGIN_INPUT_PROPS}"/>
      <arg file="${PLUGIN_OUTPUT_PROPS}"/>
    </command>
  </step-type>

        <!-- ============================================= -->
        <!-- WebSphere Cell Role                             -->
        <!-- ============================================= -->

  <server:property-group name="WebSphereCell" type="ResourceRole" default-name-property="websphere.cell">
    <server:description>Role for resources that represents a WebSphere Cell</server:description>
    <server:allowed-parent-roles/>
    <server:property name="websphere.cell" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.installPath">
      <server:property-ui type="textBox" label="WebSphere Install Path" description="The path to the directory where WebSphere is installed."/>
    </server:property>
    <server:property name="websphere.profilePath">
      <server:property-ui description="The path to the directory where the profile for the cell resides." label="WebSphere Profile Path" type="textBox"/>
    </server:property>
    <server:property name="websphere.commandPath">
      <server:property-ui type="textBox" label="WSAdmin Command Path" description="The path to the directory where the wsadmin tool resides."/>
    </server:property>
    <server:property name="websphere.user">
      <server:property-ui type="textBox" label="WebSphere User" description="The WebSphere user to use."/>
    </server:property>
    <server:property name="websphere.password">
      <server:property-ui type="secureBox" label="WebSphere Password" description="The WebSphere password to use."/>
    </server:property>
    <server:property name="websphere.host">
      <server:property-ui type="textBox" label="WebSphere Host" description="The host to connect to with the wsadmin tool." default-value="localhost"/>
    </server:property>
    <server:property name="websphere.port">
      <server:property-ui type="textBox" label="WebSphere Port" description="The port to connect to with the wsadmin tool." default-value="8880"/>
    </server:property>
    <server:property name="websphere.connType">
      <server:property-ui type="textBox" label="WebSphere Connection Type" description="The connection type to use with the wsadmin tool. Acceptable values are: SOAP, RMI, and NONE" default-value="SOAP"/>
    </server:property>
    <server:property name="websphere.cell.enablebidi" required="false">
      <server:property-ui type="checkBox" label="Enable Bi Di" description="Enable bidi for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.cell.cellregistered" required="false">
      <server:property-ui type="checkBox" label="Cell Registered" description="The cell registered for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.cell.shortname" required="false">
      <server:property-ui type="textBox" label="Short Name" description="The short name for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.cell.biditextdirection" required="false">
      <server:property-ui type="textBox" label="Bi Di Text Direction" description="The bidi text direction for this WebSphere cell. Acceptable values are: LTR, RTL, CONTEXTUAL." default-value="LTR"/>
    </server:property>
    <server:property name="websphere.cell.celldiscoveryprotocol" required="false">
      <server:property-ui type="textBox" label="Cell Discovery Protocol" description="The cell discovery protocol for this WebSphere cell. Acceptable values are: UDP, TCP, MULTICAST." default-value="TCP"/>
    </server:property>
    <server:property name="websphere.cell.celltype" required="false">
      <server:property-ui type="textBox" label="Cell Type" description="The cell type for this WebSphere cell. Acceptable values are: DISTRIBUTED, STANDALONE." default-value="DISTRIBUTED"/>
    </server:property>
    <server:property name="websphere.cell.discoveryaddressendpointname" required="false">
      <server:property-ui type="textBox" label="Discovery Address Endpoint Name" description="The discovery address endpoint name for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.cell.multicastdiscoveryaddressendpointname" required="false">
      <server:property-ui type="textBox" label="Multicast Discovery Address Endpoint Name" description="The multicast discovery address endpoint name for this WebSphere cell."/>
    </server:property>
    <server:property name="websphere.cell.configurationtypes" required="false">
      <server:property-ui type="textAreaBox" label="WebSphere Configuration Types" description="A list, separated by commas or newline characters, of the configuration types to be available for Configuration Discovery and Apply steps."/>
    </server:property>
    <server:property name="websphere.cell.configurationfile" required="false">
      <server:property-ui type="textBox" label="WebSphere Configuration File" description="The configuration file that stores the configuration data for the cell."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>Securities</server:default-child-folder>
      <server:default-child-folder>Application Placement Controller</server:default-child-folder>
      <server:default-child-folder>Core Group Bridge Settings</server:default-child-folder>
      <server:default-child-folder>Variable Maps</server:default-child-folder>
      <server:default-child-folder>CORBA Object Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Service Classes</server:default-child-folder>
      <server:default-child-folder>Libraries</server:default-child-folder>
      <server:default-child-folder>JMS Providers</server:default-child-folder>
      <server:default-child-folder>URL Providers</server:default-child-folder>
      <server:default-child-folder>Managed Nodes</server:default-child-folder>
      <server:default-child-folder>SIBuses</server:default-child-folder>
      <server:default-child-folder>Work Manager Providers</server:default-child-folder>
      <server:default-child-folder>Security Domains</server:default-child-folder>
      <server:default-child-folder>Indirect Lookup Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Health Classes</server:default-child-folder>
      <server:default-child-folder>String Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Discoverable Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Resource Environment Providers</server:default-child-folder>
      <server:default-child-folder>Preference Sets</server:default-child-folder>
      <server:default-child-folder>Custom Process Defs</server:default-child-folder>
      <server:default-child-folder>Core Groups</server:default-child-folder>
      <server:default-child-folder>Job Classes</server:default-child-folder>
      <server:default-child-folder>Middleware Apps</server:default-child-folder>
      <server:default-child-folder>Mail Providers</server:default-child-folder>
      <server:default-child-folder>Cache Providers</server:default-child-folder>
      <server:default-child-folder>Elasticity Classes</server:default-child-folder>
      <server:default-child-folder>Nodes</server:default-child-folder>
      <server:default-child-folder>Authorization Groups</server:default-child-folder>
      <server:default-child-folder>Foreign Cells</server:default-child-folder>
      <server:default-child-folder>Data Replication Domains</server:default-child-folder>
      <server:default-child-folder>Java Virtual Machine Presets</server:default-child-folder>
      <server:default-child-folder>Object Pool Providers</server:default-child-folder>
      <server:default-child-folder>Timer Manager Providers</server:default-child-folder>
      <server:default-child-folder>Middleware Descriptors</server:default-child-folder>
      <server:default-child-folder>Typed Properties</server:default-child-folder>
      <server:default-child-folder>Node Groups</server:default-child-folder>
      <server:default-child-folder>Virtual Hosts</server:default-child-folder>
      <server:default-child-folder>Dynamic Clusters</server:default-child-folder>
      <server:default-child-folder>Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Scheduler Providers</server:default-child-folder>
      <server:default-child-folder>Extended Repository Services</server:default-child-folder>
      <server:default-child-folder>ServerClusters</server:default-child-folder>
      <server:default-child-folder>JDBC Providers</server:default-child-folder>
      <server:default-child-folder>Ejb Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Event Infrastructure Providers</server:default-child-folder>
      <server:default-child-folder>Grid Class Rules</server:default-child-folder>
      <server:default-child-folder>Properties</server:default-child-folder>
      <server:default-child-folder>Elasticity Custom Process Defs</server:default-child-folder>
      <server:default-child-folder>Session Securities</server:default-child-folder>
      <server:default-child-folder>Monitored Directory Deployments</server:default-child-folder>
      <server:default-child-folder>Audits</server:default-child-folder>
      <server:default-child-folder>Policies</server:default-child-folder>
      <server:default-child-folder>Authorization Table Exts</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>

        <!-- ============================================= -->
        <!-- WebSphere Node Role                             -->
        <!-- ============================================= -->
  <server:property-group name="WebSphereNode" type="ResourceRole" default-name-property="websphere.node">
    <server:description>Role for resources that represents a WebSphere node</server:description>
    <server:allowed-parent-roles>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCell</server:allowed-role-name>
        <server:folder-name>Nodes</server:folder-name>
      </server:allowed-parent-role>
    </server:allowed-parent-roles>
    <server:property name="websphere.node.shortname" required="false">
      <server:property-ui type="textBox" label="Short Name" description="The short name for this WebSphere node."/>
    </server:property>
    <server:property name="websphere.node" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere node."/>
    </server:property>
    <server:property name="websphere.node.maxfilepermissionforapps" required="false">
      <server:property-ui type="textBox" label="Max File Permission For Apps" description="The maximum file permissions for applications for this WebSphere node."/>
    </server:property>
    <server:property name="websphere.node.discoveryprotocol" required="false">
      <server:property-ui type="textBox" label="Discovery Protocol" description="The discovery protocol for this WebSphere node. Acceptable values are: UDP, TCP, MULTICAST." default-value="TCP"/>
    </server:property>
    <server:property name="websphere.node.hostname" required="false">
      <server:property-ui type="textBox" label="Host Name" description="The host name for this WebSphere node."/>
    </server:property>
    <server:property name="websphere.node.profilename" required="false">
      <server:property-ui type="textBox" label="Profile Name" description="The profile name for this WebSphere node."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>Variable Maps</server:default-child-folder>
      <server:default-child-folder>CORBA Object Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Servers</server:default-child-folder>
      <server:default-child-folder>Server Indices</server:default-child-folder>
      <server:default-child-folder>Libraries</server:default-child-folder>
      <server:default-child-folder>JMS Providers</server:default-child-folder>
      <server:default-child-folder>URL Providers</server:default-child-folder>
      <server:default-child-folder>Work Manager Providers</server:default-child-folder>
      <server:default-child-folder>Indirect Lookup Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>String Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Discoverable Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Resource Environment Providers</server:default-child-folder>
      <server:default-child-folder>Mail Providers</server:default-child-folder>
      <server:default-child-folder>Cache Providers</server:default-child-folder>
      <server:default-child-folder>Java Virtual Machine Presets</server:default-child-folder>
      <server:default-child-folder>Object Pool Providers</server:default-child-folder>
      <server:default-child-folder>Timer Manager Providers</server:default-child-folder>
      <server:default-child-folder>Typed Properties</server:default-child-folder>
      <server:default-child-folder>Virtual Hosts</server:default-child-folder>
      <server:default-child-folder>Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Scheduler Providers</server:default-child-folder>
      <server:default-child-folder>JDBC Providers</server:default-child-folder>
      <server:default-child-folder>Ejb Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Event Infrastructure Providers</server:default-child-folder>
      <server:default-child-folder>Properties</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>

        <!-- ============================================= -->
        <!-- WebSphere Server Role                             -->
        <!-- ============================================= -->
  <server:property-group name="WebSphereServer" type="ResourceRole" default-name-property="websphere.server">
    <server:description>Role for resources that represents a WebSphere server</server:description>
    <server:allowed-parent-roles>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereDynamicCluster</server:allowed-role-name>
        <server:folder-name>Servers</server:folder-name>
      </server:allowed-parent-role>
<!--
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCluster</server:allowed-role-name>
        <server:folder-name>Servers</server:folder-name>
      </server:allowed-parent-role>
-->
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCluster</server:allowed-role-name>
        <server:folder-name>Server Template</server:folder-name>
      </server:allowed-parent-role>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereNode</server:allowed-role-name>
        <server:folder-name>Servers</server:folder-name>
      </server:allowed-parent-role>
    </server:allowed-parent-roles>
    <server:property name="websphere.server.adjustport" required="false">
      <server:property-ui type="textBox" label="Adjust Port" description="The adjust port for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.changegroupafterstartup" required="false">
      <server:property-ui type="textBox" label="Change Group After Startup" description="The Change Group After Startup property for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.modelid" required="false">
      <server:property-ui type="textBox" label="Model Id" description="The model ID for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.shortname" required="false">
      <server:property-ui type="textBox" label="Short Name" description="The short name for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.servertype" required="false">
      <server:property-ui type="textBox" label="Server Type" description="The server type for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.developmentmode" required="false">
      <server:property-ui type="checkBox" label="Development Mode" description="The development mode for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.provisioncomponents" required="false">
      <server:property-ui type="checkBox" label="Provision Components" description="The Provision Components property for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.parallelstartenabled" required="false">
      <server:property-ui type="checkBox" label="Parallel Start Enabled" description="The Parallel Start Enabled property for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.clustername" required="false">
      <server:property-ui type="textBox" label="Cluster Name" description="The cluster name for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.changeuserafterstartup" required="false">
      <server:property-ui type="textBox" label="Change User After Startup" description="The Change User After Startup property for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere server."/>
    </server:property>
    <server:property name="websphere.server.servercount" required="false">
      <server:property-ui type="textBox" label="Server Count" description="The number of servers to create per node within the cluster."/>
    </server:property>
    <server:property name="websphere.server.servernameformats" required="false">
      <server:property-ui type="textAreaBox" label="Server Name Formats" description="A list of server name formats, separated by newline characters. Use the following form: nodename->pattern. Patterns can contain %c, %n and %i where %c represents the clustername,
         %n represents the nodename, and %i is the index. The values for the pattern can be specified in any order."/>
    </server:property>
    <server:property name="websphere.server.nodelist" required="false">
      <server:property-ui type="textBox" label="Node List" description="A comma-separated list of node names to add to the cluster. The nodes must already exist"/>
    </server:property>
    <server:property name="websphere.server.endpointportmappings" required="false">
      <server:property-ui type="textAreaBox" label="EndPoint Port Mappings"
                          description="A list, separated by newline characters, of endpoint name to base port mappings for each node."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>Variable Maps</server:default-child-folder>
      <server:default-child-folder>CORBA Object Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Process Defs</server:default-child-folder>
      <server:default-child-folder>Named Process Defs</server:default-child-folder>
      <server:default-child-folder>Named Java Process Defs</server:default-child-folder>
      <server:default-child-folder>Java Process Defs</server:default-child-folder>
      <server:default-child-folder>Libraries</server:default-child-folder>
      <server:default-child-folder>JMS Providers</server:default-child-folder>
      <server:default-child-folder>URL Providers</server:default-child-folder>
      <server:default-child-folder>Cell Managers</server:default-child-folder>
      <server:default-child-folder>Cell Managers</server:default-child-folder>
      <server:default-child-folder>Work Manager Providers</server:default-child-folder>
      <server:default-child-folder>Indirect Lookup Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>String Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Resource Environment Providers</server:default-child-folder>
      <server:default-child-folder>Preference Sets</server:default-child-folder>
      <server:default-child-folder>Mail Providers</server:default-child-folder>
      <server:default-child-folder>Cache Providers</server:default-child-folder>
      <server:default-child-folder>Deployed Middleware Apps</server:default-child-folder>
      <server:default-child-folder>Rulesets</server:default-child-folder>
      <server:default-child-folder>Object Pool Providers</server:default-child-folder>
      <server:default-child-folder>Timer Manager Providers</server:default-child-folder>
      <server:default-child-folder>Scheduler Providers</server:default-child-folder>
      <server:default-child-folder>Rule Groups</server:default-child-folder>
      <server:default-child-folder>JDBC Providers</server:default-child-folder>
      <server:default-child-folder>Ejb Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Event Infrastructure Providers</server:default-child-folder>
      <server:default-child-folder>State Manageables</server:default-child-folder>
      <server:default-child-folder>Statistics Providers</server:default-child-folder>
      <server:default-child-folder>Security Servers</server:default-child-folder>
      <server:default-child-folder>Node Agents</server:default-child-folder>
      <server:default-child-folder>EJB Containers</server:default-child-folder>
      <server:default-child-folder>Job Managers</server:default-child-folder>
      <server:default-child-folder>JMS Servers</server:default-child-folder>
      <server:default-child-folder>Agents</server:default-child-folder>
      <server:default-child-folder>Server Components</server:default-child-folder>
      <server:default-child-folder>Web Containers</server:default-child-folder>
      <server:default-child-folder>Foreign Servers</server:default-child-folder>
      <server:default-child-folder>Portlet Containers</server:default-child-folder>
      <server:default-child-folder>System Message Servers</server:default-child-folder>
      <server:default-child-folder>Externally Managed HTTP Servers</server:default-child-folder>
      <server:default-child-folder>Workload Management Servers</server:default-child-folder>
      <server:default-child-folder>External File Services</server:default-child-folder>
      <server:default-child-folder>Application Servers</server:default-child-folder>
      <server:default-child-folder>Application Containers</server:default-child-folder>
      <server:default-child-folder>Web Servers</server:default-child-folder>
      <server:default-child-folder>Name Servers</server:default-child-folder>
      <server:default-child-folder>SIP Containers</server:default-child-folder>
      <server:default-child-folder>Cell Managers</server:default-child-folder>
      <server:default-child-folder>Proxies</server:default-child-folder>
      <server:default-child-folder>On Demand Routers</server:default-child-folder>
      <server:default-child-folder>Proxy Servers</server:default-child-folder>
      <server:default-child-folder>Services</server:default-child-folder>
      <server:default-child-folder>Stream Redirects</server:default-child-folder>
      <server:default-child-folder>Audits</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>

        <!-- ============================================= -->
        <!-- WebSphere Cluster Role                             -->
        <!-- ============================================= -->
  <server:property-group name="WebSphereCluster" type="ResourceRole" default-name-property="websphere.cluster">
    <server:description>Role for resources that represents a WebSphere server cluster.</server:description>
    <server:allowed-parent-roles>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCell</server:allowed-role-name>
        <server:folder-name>ServerClusters</server:folder-name>
      </server:allowed-parent-role>
    </server:allowed-parent-roles>
    <server:property name="websphere.servercluster.preferlocal" required="false">
      <server:property-ui type="checkBox" label="Prefer Local" description="The Prefer Local property for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.serveriotimeoutretry" required="false">
      <server:property-ui type="textBox" label="Server I O Timeout Retry" description="The Server I/O Timeout Retry property for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.nodegroupname" required="false">
      <server:property-ui type="textBox" label="Node Group Name" description="The node group name for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.shortname" required="false">
      <server:property-ui type="textBox" label="Short Name" description="The short name for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.servertype" required="false">
      <server:property-ui type="textBox" label="Server Type" description="The server type for this WebSphere server cluster. Acceptable values are: PROXY_SERVER, APPLICATION_SERVER, ONDEMAND_ROUTER." default-value="APPLICATION_SERVER"/>
    </server:property>
    <server:property name="websphere.servercluster.clusteraddress" required="false">
      <server:property-ui type="textBox" label="Cluster Address" description="The cluster address for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.prefetchdwlmtable" required="false">
      <server:property-ui type="checkBox" label="Prefetch D W L M Table" description="The Prefetch D W L M Table property for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.description" required="false">
      <server:property-ui type="textBox" label="Description" description="The description for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.enableha" required="false">
      <server:property-ui type="checkBox" label="Enable H A" description="The Enable H A property for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.enableclusteraddressing" required="false">
      <server:property-ui type="checkBox" label="Enable Cluster Addressing" description="The Enable Cluster Addressing property for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.servercluster.jsfprovider" required="false">
      <server:property-ui type="textBox" label="Jsf Provider" description="The JSF provider for this WebSphere server cluster."/>
    </server:property>
    <server:property name="websphere.cluster" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere server cluster."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>CORBA Object Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Libraries</server:default-child-folder>
      <server:default-child-folder>Variable Maps</server:default-child-folder>
      <server:default-child-folder>Statistics Providers</server:default-child-folder>
      <server:default-child-folder>JMS Providers</server:default-child-folder>
      <server:default-child-folder>URL Providers</server:default-child-folder>
      <server:default-child-folder>J2C Resource Adapters</server:default-child-folder>
      <server:default-child-folder>PME Cluster Extensions</server:default-child-folder>
      <server:default-child-folder>Work Manager Providers</server:default-child-folder>
      <server:default-child-folder>SIB Messaging Engines</server:default-child-folder>
      <server:default-child-folder>CEA Settings</server:default-child-folder>
      <server:default-child-folder>Indirect Lookup Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>State Manageables</server:default-child-folder>
      <server:default-child-folder>String Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>SIBWS Endpoint Listeners</server:default-child-folder>
      <server:default-child-folder>Resource Environment Providers</server:default-child-folder>
      <server:default-child-folder>Preference Sets</server:default-child-folder>
      <server:default-child-folder>SIP Proxy Settings</server:default-child-folder>
      <server:default-child-folder>Remote Cell Overrides</server:default-child-folder>
      <server:default-child-folder>Proxy Settings</server:default-child-folder>
      <server:default-child-folder>Cluster Address Properties</server:default-child-folder>
      <server:default-child-folder>Mail Providers</server:default-child-folder>
      <server:default-child-folder>Cache Providers</server:default-child-folder>
      <server:default-child-folder>Proxy Virtual Host Configs</server:default-child-folder>
      <server:default-child-folder>Rulesets</server:default-child-folder>
      <server:default-child-folder>Dynamic Wt Ctrlrs</server:default-child-folder>
      <server:default-child-folder>Generic Server Clusters</server:default-child-folder>
      <server:default-child-folder>Object Pool Providers</server:default-child-folder>
      <server:default-child-folder>Timer Manager Providers</server:default-child-folder>
      <server:default-child-folder>Cluster Members</server:default-child-folder>
      <server:default-child-folder>Scheduler Providers</server:default-child-folder>
      <server:default-child-folder>Secure Cluster Address End Points</server:default-child-folder>
      <server:default-child-folder>URI Groups</server:default-child-folder>
      <server:default-child-folder>Rule Groups</server:default-child-folder>
      <server:default-child-folder>Backup Clusters</server:default-child-folder>
      <server:default-child-folder>JDBC Providers</server:default-child-folder>
      <server:default-child-folder>Ejb Name Space Bindings</server:default-child-folder>
      <server:default-child-folder>Cluster Address End Points</server:default-child-folder>
      <server:default-child-folder>Server Template</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>

        <!-- ============================================= -->
        <!-- Portal Server Role                             -->
        <!-- ============================================= -->
  <server:property-group name="PortalServer" type="ResourceRole">
    <server:description>
        Role for resources that represent a Portal Server.
    </server:description>
    <server:property name="websphere.server">
        <server:property-ui type="textBox" label="Server Name" description="The name of the WebSphere Application Server that this resource represents."/>
    </server:property>
    <server:property name="portal.host">
        <server:property-ui type="textBox" label="Server Host" description="The host where Portal Server resides."/>
    </server:property>
    <server:property name="portal.home">
        <server:property-ui description="The path to the directory where the Portal Server is installed." label="Portal installation directory" type="textBox"/>
    </server:property>
    <server:property name="portal.profile.home">
        <server:property-ui description="The path to the directory where the Portal Server profile resides." label="Portal profile directory" type="textBox"/>
    </server:property>
    <server:property name="portal.admin.user">
        <server:property-ui type="textBox" label="Portal administrator user name" description="The Portal Server administrator user to use."/>
    </server:property>
    <server:property name="portal.admin.password">
        <server:property-ui type="secureBox" label="Portal administrator password" description="The Portal Server administrator password to use."/>
    </server:property>
    <server:property name="portal.config.port">
        <server:property-ui type="textBox" label="Portal configuration Port" description="The Portal Server transport port number used to access the host." default-value="80"/>
    </server:property>
    <server:property name="websphere.password">
        <server:property-ui type="secureBox" label="Websphere administrator password" description="The Websphere administrator password to use."/>
    </server:property>
  </server:property-group>

        <!-- ============================================= -->
        <!-- WebSphere DynamicCluster                             -->
        <!-- ============================================= -->
  <server:property-group name="WebSphereDynamicCluster" type="ResourceRole" default-name-property="websphere.dynamiccluster.name">
    <server:description>Role for resources that represents a WebSphere dynamic cluster.</server:description>
    <server:allowed-parent-roles>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCell</server:allowed-role-name>
        <server:folder-name>Dynamic Clusters</server:folder-name>
      </server:allowed-parent-role>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereNodeGroup</server:allowed-role-name>
        <server:folder-name>Dynamic Clusters</server:folder-name>
      </server:allowed-parent-role>
    </server:allowed-parent-roles>
    <server:property name="websphere.dynamiccluster.minnodes" required="false">
      <server:property-ui type="textBox" label="Min Nodes" default-value="-2" description="The Min Nodes property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.name" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.membershippolicy" required="false">
      <server:property-ui type="textBox" label="Membership Policy" description="The membership policy for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.mininstances" required="false">
      <server:property-ui type="textBox" label="Min Instances" default-value="0" description="The Min Instances property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.isolationgroup" required="false">
      <server:property-ui type="textBox" label="Isolation Group" description="The isolation group for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.maxinstances" required="false">
      <server:property-ui type="textBox" label="Max Instances" default-value="0" description="The Max Instances property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.strictisolationenabled" required="false">
      <server:property-ui type="textBox" label="Strict Isolation Enabled" description="The Strict Isolation Enabled property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.servertype" required="false">
      <server:property-ui type="textBox" label="Server Type" description="The server type for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.serverinactivitytime" required="false">
      <server:property-ui type="textBox" label="Server Inactivity Time" default-value="0" description="The Server Inactivity Time property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.operationalmode" required="false">
      <server:property-ui type="textBox" label="Operational Mode" description="The operational mode for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.maxnodes" required="false">
      <server:property-ui type="textBox" label="Max Nodes" default-value="-2" description="The Max Nodes property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:property name="websphere.dynamiccluster.numverticalinstances" required="false">
      <server:property-ui type="textBox" label="Num Vertical Instances" default-value="0" description="The Num Vertical Instances property for this WebSphere dynamic cluster."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>Cluster Members</server:default-child-folder>
      <server:default-child-folder>Discoverable Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Typed Properties</server:default-child-folder>
      <server:default-child-folder>Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Properties</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>

        <!-- ============================================= -->
        <!-- WebSphere Node Group                             -->
        <!-- ============================================= -->
  <server:property-group name="WebSphereNodeGroup" type="ResourceRole" default-name-property="websphere.nodegroup.name">
    <server:description>Role for resources that represents a WebSphere node group.</server:description>
    <server:allowed-parent-roles>
      <server:allowed-parent-role>
        <server:allowed-role-name>WebSphereCell</server:allowed-role-name>
        <server:folder-name>Node Groups</server:folder-name>
      </server:allowed-parent-role>
    </server:allowed-parent-roles>
    <server:property name="websphere.nodegroup.shortname" required="false">
      <server:property-ui type="textBox" label="Short Name" description="The short name for this WebSphere node group."/>
    </server:property>
    <server:property name="websphere.nodegroup.name" required="true">
      <server:property-ui type="textBox" label="Name" description="The name for this WebSphere node group."/>
    </server:property>
    <server:property name="websphere.nodegroup.description" required="false">
      <server:property-ui type="textBox" label="Description" description="The description for this WebSphere node group."/>
    </server:property>
    <server:default-child-folders>
      <server:default-child-folder>Discoverable Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Typed Properties</server:default-child-folder>
      <server:default-child-folder>Dynamic Clusters</server:default-child-folder>
      <server:default-child-folder>Descriptive Properties</server:default-child-folder>
      <server:default-child-folder>Properties</server:default-child-folder>
      <server:default-child-folder>Node Group Members</server:default-child-folder>
    </server:default-child-folders>
  </server:property-group>
</plugin>
