Package 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 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

  Constructors
  Constructor
  Description
  `AbstractHotDeploymentTool()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Path`
  `createClasspath()`
  Add a classpath as a nested element.
  `Path`
  `getClasspath()`
  gets the classpath field.
  `String`
  `getPassword()`
  Returns the password field.
  `String`
  `getServer()`
  Returns the server field.
  `protected ServerDeploy`
  `getTask()`
  Returns the task field, a ServerDeploy object.
  `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(String password)`
  The password of the user; optional.
  `void`
  `setServer(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(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`

  ### Methods inherited from interface org.apache.tools.ant.taskdefs.optional.j2ee.HotDeploymentTool

  `deploy`

- ## Constructor Details

  - ### AbstractHotDeploymentTool

    public AbstractHotDeploymentTool()

- ## Method Details

  - ### 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.

  - ### 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 String getUserName()
    Returns the userName field.
    Returns:
      A String representing the "userName" attribute.

  - ### setUserName

    public void setUserName(String userName)
    The user with privileges to deploy applications to the server; optional.
    Parameters:
      `userName` - A String representing the "userName" attribute.

  - ### getPassword

    public String getPassword()
    Returns the password field.
    Returns:
      A String representing the "password" attribute.

  - ### setPassword

    public void setPassword(String password)
    The password of the user; optional.
    Parameters:
      `password` - A String representing the "password" attribute.

  - ### getServer

    public String getServer()
    Returns the server field.
    Returns:
      A String representing the "server" attribute.

  - ### setServer

    public void setServer(String server)
    The address or URL for the server where the component will be deployed.
    Parameters:
      `server` - A String representing the "server" attribute.