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 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 | Description
--- | ---
`AbstractHotDeploymentTool()` |

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`Path` | `createClasspath()` | Add a classpath as a nested element.
`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`

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