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

java.lang.Object
  extended by 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.