Module org.wildfly.plugin.core
Package org.wildfly.plugin.core

## Class ServerHelper

- java.lang.Object
- - org.wildfly.plugin.core.ServerHelper

-     public class ServerHelper
      extends Object

  Author:
    James R. Perkins

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ServerHelper()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static org.jboss.dmr.ModelNode` | `determineHostAddress​(org.jboss.as.controller.client.ModelControllerClient client)` | Determines the address for the host being used.
    `static ContainerDescription` | `getContainerDescription​(org.jboss.as.controller.client.ModelControllerClient client)` | Returns the description of the running container.
    `static boolean` | `isDomainRunning​(org.jboss.as.controller.client.ModelControllerClient client)` | Checks to see if the domain is running.
    `static boolean` | `isStandaloneRunning​(org.jboss.as.controller.client.ModelControllerClient client)` | Checks to see if a standalone server is running.
    `static boolean` | `isValidHomeDirectory​(String path)` | Checks whether or not the directory is a valid home directory for a server.
    `static boolean` | `isValidHomeDirectory​(Path path)` | Checks whether or not the directory is a valid home directory for a server.
    `static void` | `shutdownDomain​(org.jboss.as.controller.client.ModelControllerClient client)` | Shuts down a managed domain container.
    `static void` | `shutdownDomain​(org.jboss.as.controller.client.ModelControllerClient client, int timeout)` | Shuts down a managed domain container.
    `static void` | `shutdownStandalone​(org.jboss.as.controller.client.ModelControllerClient client)` | Shuts down a standalone server.
    `static void` | `shutdownStandalone​(org.jboss.as.controller.client.ModelControllerClient client, int timeout)` | Shuts down a standalone server.
    `static void` | `waitForDomain​(Process process, org.jboss.as.controller.client.ModelControllerClient client, long startupTimeout)` | Waits the given amount of time in seconds for a managed domain to start.
    `static void` | `waitForDomain​(org.jboss.as.controller.client.ModelControllerClient client, long startupTimeout)` | Waits the given amount of time in seconds for a managed domain to start.
    `static void` | `waitForStandalone​(Process process, org.jboss.as.controller.client.ModelControllerClient client, long startupTimeout)` | Waits the given amount of time in seconds for a standalone server to start.
    `static void` | `waitForStandalone​(org.jboss.as.controller.client.ModelControllerClient client, long startupTimeout)` | Waits the given amount of time in seconds for a standalone server to start.

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

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

- - ### Constructor Detail

    - #### ServerHelper

          public ServerHelper()

  - ### Method Detail

    - #### isValidHomeDirectory

          public static boolean isValidHomeDirectory​(Path path)

      Checks whether or not the directory is a valid home directory for a server.

      This validates the path is not `null`, exists, is a directory and contains a `jboss-modules.jar`.

      Parameters:
        `path` - the path to validate
      Returns:
        `true` if the path is valid otherwise `false`

    - #### isValidHomeDirectory

          public static boolean isValidHomeDirectory​(String path)

      Checks whether or not the directory is a valid home directory for a server.

      This validates the path is not `null`, exists, is a directory and contains a `jboss-modules.jar`.

      Parameters:
        `path` - the path to validate
      Returns:
        `true` if the path is valid otherwise `false`

    - #### getContainerDescription

          public static ContainerDescription getContainerDescription​(org.jboss.as.controller.client.ModelControllerClient client)
                                                              throws IOException,
                                                                     OperationExecutionException

      Returns the description of the running container.
      Parameters:
        `client` - the client used to query the server
      Returns:
        the description of the running container
      Throws:
        `IOException` - if an error occurs communicating with the server
        `OperationExecutionException` - if the operation used to query the container fails

    - #### waitForDomain

          public static void waitForDomain​(org.jboss.as.controller.client.ModelControllerClient client,
                                           long startupTimeout)
                                    throws InterruptedException,
                                           RuntimeException,
                                           TimeoutException

      Waits the given amount of time in seconds for a managed domain to start. A domain is considered started when each of the servers in the domain are started unless the server is disabled.
      Parameters:
        `client` - the client used to communicate with the server
        `startupTimeout` - the time, in seconds, to wait for the server start
      Throws:
        `InterruptedException` - if interrupted while waiting for the server to start
        `RuntimeException` - if the process has died
        `TimeoutException` - if the timeout has been reached and the server is still not started

    - #### waitForDomain

          public static void waitForDomain​(Process process,
                                           org.jboss.as.controller.client.ModelControllerClient client,
                                           long startupTimeout)
                                    throws InterruptedException,
                                           RuntimeException,
                                           TimeoutException

      Waits the given amount of time in seconds for a managed domain to start. A domain is considered started when each of the servers in the domain are started unless the server is disabled.

      If the `process` is not `null` and a timeout occurs the process will be destroyed.

      Parameters:
        `process` - the Java process can be `null` if no process is available
        `client` - the client used to communicate with the server
        `startupTimeout` - the time, in seconds, to wait for the server start
      Throws:
        `InterruptedException` - if interrupted while waiting for the server to start
        `RuntimeException` - if the process has died
        `TimeoutException` - if the timeout has been reached and the server is still not started

    - #### isDomainRunning

          public static boolean isDomainRunning​(org.jboss.as.controller.client.ModelControllerClient client)

      Checks to see if the domain is running. If the server is not in admin only mode each servers running state is checked. If any server is not in a started state the domain is not considered to be running.
      Parameters:
        `client` - the client used to communicate with the server
      Returns:
        `true` if the server is in a running state, otherwise `false`

    - #### shutdownDomain

          public static void shutdownDomain​(org.jboss.as.controller.client.ModelControllerClient client)
                                     throws IOException,
                                            OperationExecutionException

      Shuts down a managed domain container. The servers are first stopped, then the host controller is shutdown.
      Parameters:
        `client` - the client used to communicate with the server
      Throws:
        `IOException` - if an error occurs communicating with the server
        `OperationExecutionException` - if the operation used to shutdown the managed domain failed

    - #### shutdownDomain

          public static void shutdownDomain​(org.jboss.as.controller.client.ModelControllerClient client,
                                            int timeout)
                                     throws IOException,
                                            OperationExecutionException

      Shuts down a managed domain container. The servers are first stopped, then the host controller is shutdown.
      Parameters:
        `client` - the client used to communicate with the server
        `timeout` - the graceful shutdown timeout, a value of `-1` will wait indefinitely and a value of `0` will not attempt a graceful shutdown
      Throws:
        `IOException` - if an error occurs communicating with the server
        `OperationExecutionException` - if the operation used to shutdown the managed domain failed

    - #### determineHostAddress

          public static org.jboss.dmr.ModelNode determineHostAddress​(org.jboss.as.controller.client.ModelControllerClient client)
                                                              throws IOException,
                                                                     OperationExecutionException

      Determines the address for the host being used.
      Parameters:
        `client` - the client used to communicate with the server
      Returns:
        the address of the host
      Throws:
        `IOException` - if an error occurs communicating with the server
        `OperationExecutionException` - if the operation used to determine the host name fails

    - #### waitForStandalone

          public static void waitForStandalone​(org.jboss.as.controller.client.ModelControllerClient client,
                                               long startupTimeout)
                                        throws InterruptedException,
                                               RuntimeException,
                                               TimeoutException

      Waits the given amount of time in seconds for a standalone server to start.
      Parameters:
        `client` - the client used to communicate with the server
        `startupTimeout` - the time, in seconds, to wait for the server start
      Throws:
        `InterruptedException` - if interrupted while waiting for the server to start
        `RuntimeException` - if the process has died
        `TimeoutException` - if the timeout has been reached and the server is still not started

    - #### waitForStandalone

          public static void waitForStandalone​(Process process,
                                               org.jboss.as.controller.client.ModelControllerClient client,
                                               long startupTimeout)
                                        throws InterruptedException,
                                               RuntimeException,
                                               TimeoutException

      Waits the given amount of time in seconds for a standalone server to start.

      If the `process` is not `null` and a timeout occurs the process will be destroyed.

      Parameters:
        `process` - the Java process can be `null` if no process is available
        `client` - the client used to communicate with the server
        `startupTimeout` - the time, in seconds, to wait for the server start
      Throws:
        `InterruptedException` - if interrupted while waiting for the server to start
        `RuntimeException` - if the process has died
        `TimeoutException` - if the timeout has been reached and the server is still not started

    - #### isStandaloneRunning

          public static boolean isStandaloneRunning​(org.jboss.as.controller.client.ModelControllerClient client)

      Checks to see if a standalone server is running.
      Parameters:
        `client` - the client used to communicate with the server
      Returns:
        `true` if the server is running, otherwise `false`

    - #### shutdownStandalone

          public static void shutdownStandalone​(org.jboss.as.controller.client.ModelControllerClient client)
                                         throws IOException

      Shuts down a standalone server.
      Parameters:
        `client` - the client used to communicate with the server
      Throws:
        `IOException` - if an error occurs communicating with the server

    - #### shutdownStandalone

          public static void shutdownStandalone​(org.jboss.as.controller.client.ModelControllerClient client,
                                                int timeout)
                                         throws IOException

      Shuts down a standalone server.
      Parameters:
        `client` - the client used to communicate with the server
        `timeout` - the graceful shutdown timeout, a value of `-1` will wait indefinitely and a value of `0` will not attempt a graceful shutdown
      Throws:
        `IOException` - if an error occurs communicating with the server