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

Constructors
Constructor and Description
`AbstractHotDeploymentTool()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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.