## org.apache.tools.ant.taskdefs.optional.j2ee
Class AbstractHotDeploymentTool

    java.lang.Object
      org.apache.tools.ant.taskdefs.optional.j2ee.AbstractHotDeploymentTool

All Implemented Interfaces:
  HotDeploymentTool

Direct Known Subclasses:
  GenericHotDeploymentTool, WebLogicHotDeploymentTool

    public abstract class AbstractHotDeploymentTool

extends java.lang.Object
implements HotDeploymentTool

Abstract class to support vendor-specific hot deployment tools. This class will validate boilerplate attributes. Subclassing this class for a vendor specific tool involves the following.

1. Implement the `isActionValid()`method to insure the action supplied as the "action" attribute of ServerDeploy is valid.``
2. Implement the `validateAttributes()` method to insure all required attributes are supplied, and are in the correct format.
3. Add a `add<TOOL>` method to the ServerDeploy class. This method will be called when Ant encounters a `add<TOOL>` task nested in the `serverdeploy` task.
4. Define the `deploy` method. This method should perform whatever task it takes to hot-deploy the component. IE: spawn a JVM and run class, exec a native executable, run Java code...

   See Also:
     `HotDeploymentTool`, `ServerDeploy`

   Field Summary

   Fields inherited from interface org.apache.tools.ant.taskdefs.optional.j2ee.HotDeploymentTool
   `ACTION_DELETE, ACTION_DEPLOY, ACTION_LIST, ACTION_UNDEPLOY, ACTION_UPDATE`

   Constructor Summary
   `AbstractHotDeploymentTool()`

   Method Summary
   `Path` `createClasspath()` Add a classpath as a nested element.
   `abstract void` `deploy()` Perform the actual deployment.
   `Path` `getClasspath()` gets the classpath field.
   `java.lang.String` `getPassword()` Returns the password field.
   `java.lang.String` `getServer()` Returns the server field.
   `protected ServerDeploy` `getTask()` Returns the task field, a ServerDeploy object.
   `java.lang.String` `getUserName()` Returns the userName field.
   `protected abstract boolean` `isActionValid()` Determines if the "action" attribute defines a valid action.
   `void` `setClasspath(Path classpath)` The classpath to be passed to the JVM running the tool; optional depending upon the tool.
   `void` `setPassword(java.lang.String password)` The password of the user; optional.
   `void` `setServer(java.lang.String server)` The address or URL for the server where the component will be deployed.
   `void` `setTask(ServerDeploy task)` Sets the parent task.
   `void` `setUserName(java.lang.String userName)` The user with privileges to deploy applications to the server; optional.
   `void` `validateAttributes()` Validates the passed in attributes.

   Methods inherited from class java.lang.Object
   `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

   Constructor Detail

   ### AbstractHotDeploymentTool

       public AbstractHotDeploymentTool()

   Method Detail

   ### createClasspath

       public Path createClasspath()

     Add a classpath as a nested element.

     Returns:
       A Path object representing the classpath to be used.

   ### isActionValid

       protected abstract boolean isActionValid()

     Determines if the "action" attribute defines a valid action.

     Subclasses should determine if the action passed in is supported by the vendor's deployment tool.

     Actions may by "deploy", "delete", etc... It all depends on the tool.

     Returns:
       true if the "action" attribute is valid, false if not.

   ### validateAttributes

       public void validateAttributes()
                               throws BuildException

     Validates the passed in attributes. Subclasses should chain to this super-method to insure validation of boilerplate attributes.

     Only the "action" attribute is required in the base class. Subclasses should check attributes accordingly.

     Specified by:
       `validateAttributes` in interface `HotDeploymentTool`
     Throws:
       `BuildException` - if the attributes are invalid or incomplete.

   ### deploy

       public abstract void deploy()
                            throws BuildException

     Perform the actual deployment. It's up to the subclasses to implement the actual behavior.

     Specified by:
       `deploy` in interface `HotDeploymentTool`
     Throws:
       `BuildException` - if the attributes are invalid or incomplete.

   ### setTask

       public void setTask(ServerDeploy task)

     Sets the parent task.

     Specified by:
       `setTask` in interface `HotDeploymentTool`
     Parameters:
       `task` - a ServerDeploy object representing the parent task.

   ### getTask

       protected ServerDeploy getTask()

     Returns the task field, a ServerDeploy object.

     Returns:
       An ServerDeploy representing the parent task.

   ### getClasspath

       public Path getClasspath()

     gets the classpath field.

     Returns:
       A Path representing the "classpath" attribute.

   ### setClasspath

       public void setClasspath(Path classpath)

     The classpath to be passed to the JVM running the tool; optional depending upon the tool. The classpath may also be supplied as a nested element.

     Parameters:
       `classpath` - A Path object representing the "classpath" attribute.

   ### getUserName

       public java.lang.String getUserName()

     Returns the userName field.

     Returns:
       A String representing the "userName" attribute.

   ### setUserName

       public void setUserName(java.lang.String userName)

     The user with privileges to deploy applications to the server; optional.

     Parameters:
       `userName` - A String representing the "userName" attribute.

   ### getPassword

       public java.lang.String getPassword()

     Returns the password field.

     Returns:
       A String representing the "password" attribute.

   ### setPassword

       public void setPassword(java.lang.String password)

     The password of the user; optional.

     Parameters:
       `password` - A String representing the "password" attribute.

   ### getServer

       public java.lang.String getServer()

     Returns the server field.

     Returns:
       A String representing the "server" attribute.

   ### setServer

       public void setServer(java.lang.String server)

     The address or URL for the server where the component will be deployed.

     Parameters:
       `server` - A String representing the "server" attribute.