Package org.wildfly.plugin.tools

## Interface DeploymentManager

-     public interface DeploymentManager

  Allows deployment operations to be executed on a running server. This will work with both standalone servers and managed domain servers.

  The server result for each deployment operation will be the result of a composite operation.

  If the server is a managed domain server groups are required. If the server is a standalone server no server groups are allowed to be define. A failed `DeploymentResult` will be returned if the server groups are empty for a managed domain or populated for a standalone server.

  Author:
    James R. Perkins

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `DeploymentManager.Factory` | A factory to create a new deployment manager

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `DeploymentResult` | `deploy​(Set<Deployment> deployments)` | Deploys the content of each deployment to the server.
    `DeploymentResult` | `deploy​(Deployment deployment)` | Deploys the content to the server.
    `DeploymentResult` | `deployToRuntime​(Set<DeploymentDescription> deployments)` | Deploys existing deployment content to the runtime for each deployment description.
    `DeploymentResult` | `deployToRuntime​(DeploymentDescription deployment)` | Deploys existing deployment content to the runtime.
    `DeploymentResult` | `forceDeploy​(Set<Deployment> deployments)` | Deploys the content to the server if it does not already exist on the server.
    `DeploymentResult` | `forceDeploy​(Deployment deployment)` | Deploys the content to the server if it does not already exist on the server.
    `Set<String>` | `getDeploymentNames()` | Returns the names of deployed content.
    `Set<DeploymentDescription>` | `getDeployments()` | Returns the available deployments.
    `Set<DeploymentDescription>` | `getDeployments​(String serverGroup)` | Returns all the deployments on the specified server-group.
    `boolean` | `hasDeployment​(String name)` | Checks if the deployment content is on the server.
    `boolean` | `hasDeployment​(String name, String serverGroup)` | Checks if the deployment content is on the server.
    `boolean` | `isEnabled​(String name)` | Checks if the deployment has been deployed to the runtime.
    `boolean` | `isEnabled​(String name, String serverGroup)` | Checks if the deployment has been deployed to the runtime.
    `DeploymentResult` | `redeploy​(Set<Deployment> deployments)` | Redeploys the content to the server.
    `DeploymentResult` | `redeploy​(Deployment deployment)` | Redeploys the content to the server.
    `DeploymentResult` | `redeployToRuntime​(Set<DeploymentDescription> deployments)` | Redeploys existing deployment content to the runtime for each deployment description.
    `DeploymentResult` | `redeployToRuntime​(DeploymentDescription deployment)` | Redeploys existing deployment content to the runtime.
    `DeploymentResult` | `undeploy​(Set<UndeployDescription> undeployDescriptions)` | Undeploys the deployment from the server.
    `DeploymentResult` | `undeploy​(UndeployDescription undeployDescription)` | Undeploys the deployment from the server.

- - ### Method Detail

    - #### deploy

          DeploymentResult deploy​(Deployment deployment)
                           throws IOException

      Deploys the content to the server.

      If the deployment is not enabled a `deploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(DeploymentDescription)` method.

      Parameters:
        `deployment` - the deployment to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `deployToRuntime(DeploymentDescription)`

    - #### deploy

          DeploymentResult deploy​(Set<Deployment> deployments)
                           throws IOException

      Deploys the content of each deployment to the server.

      If the deployment is not enabled a `deploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(Set)` method.

      Also note that it is safe to trigger a `deploy` operation on already deployed deployments.

      Parameters:
        `deployments` - a set of deployments to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `deployToRuntime(Set)`

    - #### forceDeploy

          DeploymentResult forceDeploy​(Deployment deployment)
                                throws IOException

      Deploys the content to the server if it does not already exist on the server. If the deployment already exist the deployment is replaced.

      If the deployment is not enabled a `deploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(DeploymentDescription)` method.

      Parameters:
        `deployment` - the deployment to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `deployToRuntime(DeploymentDescription)`

    - #### forceDeploy

          DeploymentResult forceDeploy​(Set<Deployment> deployments)
                                throws IOException

      Deploys the content to the server if it does not already exist on the server. If the deployment already exist the deployment is replaced.

      If the deployment is not enabled a `deploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(Set)` method.

      Also note that it is safe to trigger a `deploy` operation on already deployed deployments.

      Parameters:
        `deployments` - a set of deployments to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `deployToRuntime(Set)`

    - #### deployToRuntime

          DeploymentResult deployToRuntime​(DeploymentDescription deployment)
                                    throws IOException

      Deploys existing deployment content to the runtime.
      Parameters:
        `deployment` - the deployment description to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### deployToRuntime

          DeploymentResult deployToRuntime​(Set<DeploymentDescription> deployments)
                                    throws IOException

      Deploys existing deployment content to the runtime for each deployment description.
      Parameters:
        `deployments` - the deployment descriptions to deploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### redeploy

          DeploymentResult redeploy​(Deployment deployment)
                             throws IOException

      Redeploys the content to the server. Uses a `full-replace-deployment` operation to upload the new content, undeploy the old content, deploy the new content and then remove the old content.

      If the deployment is not enabled a `deploy` or `redeploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(DeploymentDescription)` method or the `redeployToRuntime(DeploymentDescription)` method.

      Parameters:
        `deployment` - the deployment to redeploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `redeployToRuntime(DeploymentDescription)`

    - #### redeploy

          DeploymentResult redeploy​(Set<Deployment> deployments)
                             throws IOException

      Redeploys the content to the server. Uses a `full-replace-deployment` operation to upload the new content, undeploy the old content, deploy the new content and then remove the old content.

      If the deployment is not enabled a `deploy` or `redeploy` operation will need to be invoked. This can also be achieved by invoking the `deployToRuntime(Set)` method or the `redeployToRuntime(Set)` method.

      Also note that it is safe to trigger a `deploy` or operation on already deployed deployments.

      Parameters:
        `deployments` - a set of deployments to redeploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `redeployToRuntime(Set)`

    - #### redeployToRuntime

          DeploymentResult redeployToRuntime​(DeploymentDescription deployment)
                                      throws IOException

      Redeploys existing deployment content to the runtime.
      Parameters:
        `deployment` - the deployment description to redeploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### redeployToRuntime

          DeploymentResult redeployToRuntime​(Set<DeploymentDescription> deployments)
                                      throws IOException

      Redeploys existing deployment content to the runtime for each deployment description.
      Parameters:
        `deployments` - the deployment descriptions to redeploy
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### undeploy

          DeploymentResult undeploy​(UndeployDescription undeployDescription)
                             throws IOException

      Undeploys the deployment from the server.
      Parameters:
        `undeployDescription` - the description for undeploying the content
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### undeploy

          DeploymentResult undeploy​(Set<UndeployDescription> undeployDescriptions)
                             throws IOException

      Undeploys the deployment from the server.
      Parameters:
        `undeployDescriptions` - the descriptions for undeploying the content
      Returns:
        the result of the deployment
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### getDeployments

          Set<DeploymentDescription> getDeployments()
                                             throws IOException

      Returns the available deployments.
      Returns:
        the deployments
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### getDeployments

          Set<DeploymentDescription> getDeployments​(String serverGroup)
                                             throws IOException

      Returns all the deployments on the specified server-group. These deployments may also belong to other server groups.
      Parameters:
        `serverGroup` - the server group to get the deployments for
      Returns:
        the deployments
      Throws:
        `IOException` - if a failure occurs communicating with the server
        `IllegalStateException` - if the running server is not a managed domain

    - #### getDeploymentNames

          Set<String> getDeploymentNames()
                                  throws IOException

      Returns the names of deployed content.
      Returns:
        the names of deployed content
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### hasDeployment

          boolean hasDeployment​(String name)
                         throws IOException

      Checks if the deployment content is on the server.
      Parameters:
        `name` - the name of the deployment
      Returns:
        `true` if the deployment content exists otherwise `false`
      Throws:
        `IOException` - if a failure occurs communicating with the server

    - #### hasDeployment

          boolean hasDeployment​(String name,
                                String serverGroup)
                         throws IOException

      Checks if the deployment content is on the server.
      Parameters:
        `name` - the name of the deployment
        `serverGroup` - the server group to check for the deployment on
      Returns:
        `true` if the deployment content exists otherwise `false`
      Throws:
        `IOException`

    - #### isEnabled

          boolean isEnabled​(String name)
                     throws IOException

      Checks if the deployment has been deployed to the runtime. The deployment must already exist on the server.

      If a deployment is enabled it has been deployed to the runtime. Otherwise the deployment has not been deployed to the runtime.

      Parameters:
        `name` - the name of the deployment
      Returns:
        `true` if the deployment content exists and is enabled otherwise `false`
      Throws:
        `IOException` - if a failure occurs communicating with the server
      See Also:
        `for managed domain deployments`

    - #### isEnabled

          boolean isEnabled​(String name,
                            String serverGroup)
                     throws IOException

      Checks if the deployment has been deployed to the runtime. The deployment must already exist on the server.

      If a deployment is enabled it has been deployed to the runtime. Otherwise the deployment has not been deployed to the runtime.

      Parameters:
        `name` - the name of the deployment
        `serverGroup` - the server group to check for the deployment on
      Returns:
        `true` if the deployment content exists and is enabled otherwise `false`
      Throws:
        `IOException`
      See Also:
        `for standalone deployments`