GenericHotDeploymentTool (Apache Ant API)
Date: 2017-02-02

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

## Class GenericHotDeploymentTool

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

- All Implemented Interfaces:
    HotDeploymentTool
  Direct Known Subclasses:
    JonasHotDeploymentTool

      public class GenericHotDeploymentTool
      extends AbstractHotDeploymentTool

  A generic tool for J2EE server hot deployment.

  The simple implementation spawns a JVM with the supplied class name, jvm args, and arguments.

  See Also:
    `HotDeploymentTool`, `AbstractHotDeploymentTool`, `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
    `GenericHotDeploymentTool()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Commandline.Argument` | `createArg()` Add a nested argument element to hand to the deployment tool; optional.
    `Commandline.Argument` | `createJvmarg()` Add a nested argument element to hand to the JVM running the deployment tool.
    `void` | `deploy()` Perform the actual deployment.
    `java.lang.String` | `getClassName()` Get the classname attribute.
    `Java` | `getJava()` get the java attribute.
    `protected boolean` | `isActionValid()` Determines if the "action" attribute defines a valid action.
    `void` | `setClassName(java.lang.String className)` The name of the class to execute to perform deployment; required.
    `void` | `setTask(ServerDeploy task)` Sets the parent task.
    `void` | `validateAttributes()` Validates the passed in attributes.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.optional.j2ee.AbstractHotDeploymentTool

      `createClasspath, getClasspath, getPassword, getServer, getTask, getUserName, setClasspath, setPassword, setServer, setUserName`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GenericHotDeploymentTool

          public GenericHotDeploymentTool()

  - ### Method Detail

    - #### createArg

          public Commandline.Argument createArg()

      Add a nested argument element to hand to the deployment tool; optional.
      Returns:
        A Commandline.Argument object representing the command line argument being passed when the deployment tool is run. IE: "-user=mark", "-password=venture"...

    - #### createJvmarg

          public Commandline.Argument createJvmarg()

      Add a nested argument element to hand to the JVM running the deployment tool. Creates a nested arg element.
      Returns:
        A Commandline.Argument object representing the JVM command line argument being passed when the deployment tool is run. IE: "-ms64m", "-mx128m"...

    - #### isActionValid

          protected 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. For this generic implementation, the only valid action is "deploy"

      Specified by:
        `isActionValid` in class `AbstractHotDeploymentTool`
      Returns:
        true if the "action" attribute is valid, false if not.

    - #### setTask

          public void setTask(ServerDeploy task)

      Sets the parent task.
      Specified by:
        `setTask` in interface `HotDeploymentTool`
      Overrides:
        `setTask` in class `AbstractHotDeploymentTool`
      Parameters:
        `task` - An ServerDeploy object representing the parent task.

    - #### deploy

          public void deploy()
                      throws BuildException

      Perform the actual deployment. For this generic implementation, a JVM is spawned using the supplied classpath, classname, JVM args, and command line arguments.
      Specified by:
        `deploy` in interface `HotDeploymentTool`
      Specified by:
        `deploy` in class `AbstractHotDeploymentTool`
      Throws:
        `BuildException` - if the attributes are invalid or incomplete.

    - #### validateAttributes

          public void validateAttributes()
                                  throws BuildException

      Validates the passed in attributes. Ensures the className and arguments attribute have been set.
      Specified by:
        `validateAttributes` in interface `HotDeploymentTool`
      Overrides:
        `validateAttributes` in class `AbstractHotDeploymentTool`
      Throws:
        `BuildException` - if the attributes are invalid or incomplete.

    - #### setClassName

          public void setClassName(java.lang.String className)

      The name of the class to execute to perform deployment; required. Example: "com.foobar.tools.deploy.DeployTool"
      Parameters:
        `className` - The fully qualified class name of the class to perform deployment.

    - #### getJava

          public Java getJava()

      get the java attribute.
      Returns:
        the java attribute.

    - #### getClassName

          public java.lang.String getClassName()

      Get the classname attribute.
      Returns:
        the classname value.