Class DomainManager

java.lang.Object
org.wildfly.plugin.tools.server.DomainManager
All Implemented Interfaces:
AutoCloseable, ServerManager

public class DomainManager extends Object
A utility for executing management operations on domain servers.
Author:
James R. Perkins
  • Field Details

  • Method Details

    • serverState

      public String serverState()
      Description copied from interface: ServerManager
      Gets the "server-state" for standalone servers or the "host-state" for domain servers.
      Returns:
      the server-state or "failed" if an error occurred
    • determineHostAddress

      public org.jboss.dmr.ModelNode determineHostAddress() throws OperationExecutionException, IOException
      Determines the address for the host being used.
      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
    • isRunning

      public boolean isRunning()
      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.
      Returns:
      true if the server is in a running state, otherwise false
    • executeReload

      public void executeReload() throws IOException, OperationExecutionException
      Description copied from interface: ServerManager
      Reloads the server and returns immediately.
      Throws:
      IOException - if an error occurs communicating with the server
      OperationExecutionException
    • reloadIfRequired

      public void reloadIfRequired(long timeout, TimeUnit unit) throws IOException
      Description copied from interface: ServerManager
      Checks if the container status is "reload-required" and if it's the case, executes reload and waits for completion.
      Parameters:
      timeout - the time to wait for the server to reload
      unit - the time unit for the timeout argument
      Throws:
      IOException - if an error occurs communicating with the server
    • client

      public org.jboss.as.controller.client.ModelControllerClient client()
      Description copied from interface: ServerManager
      Returns the client associated with this server manager.
      Specified by:
      client in interface ServerManager
      Returns:
      a client to communicate with the server
    • containerDescription

      public ContainerDescription containerDescription() throws IOException
      Description copied from interface: ServerManager
      Returns the container description for the running server.
      Specified by:
      containerDescription in interface ServerManager
      Returns:
      the container description for the running server
      Throws:
      IOException - if an error occurs communicating with the server
    • deploymentManager

      public DeploymentManager deploymentManager()
      Description copied from interface: ServerManager
      Returns the deployment manager for the server.
      Specified by:
      deploymentManager in interface ServerManager
      Returns:
      the deployment manager
    • launchType

      public String launchType()
      Determines the servers "launch-type".
      Specified by:
      launchType in interface ServerManager
      Returns:
      the servers launch-type or "unknown" if it could not be determined
    • kill

      Description copied from interface: ServerManager
      If a process is available and alive, the process is attempted to be killed. Note in cases where the process is not associated with this server manager, this method does nothing.

      The returned ServerManager is the same instance of this server manager. You can use the CompletableFuture.get() to wait until the process, if available, to exit.

      Specified by:
      kill in interface ServerManager
      Returns:
      a completable future that on a CompletableFuture.get() will wait for the process, if available, exits
    • waitFor

      public boolean waitFor(long startupTimeout, TimeUnit unit) throws InterruptedException
      Description copied from interface: ServerManager
      Waits the given amount of time for a server to start.

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

      Specified by:
      waitFor in interface ServerManager
      Parameters:
      startupTimeout - the time, to wait for the server start
      unit - the time unit for the startupTimeout argument
      Returns:
      true if the server is up and running, false if a timeout occurred waiting for the server to be in a running state
      Throws:
      InterruptedException - if interrupted while waiting for the server to start
    • takeSnapshot

      public String takeSnapshot() throws IOException, OperationExecutionException
      Takes a snapshot of the current servers configuration and returns the relative file name of the snapshot.

      This simply executes the take-snapshot operation with no arguments.

      Specified by:
      takeSnapshot in interface ServerManager
      Returns:
      the file name of the snapshot configuration file
      Throws:
      IOException - if an error occurs executing the operation
      OperationExecutionException - if the take-snapshot operation fails
    • executeReload

      public void executeReload(org.jboss.dmr.ModelNode reloadOp) throws IOException, OperationExecutionException
      Reloads the server and returns immediately.
      Specified by:
      executeReload in interface ServerManager
      Parameters:
      reloadOp - the reload operation to execute
      Throws:
      OperationExecutionException - if the reload operation fails
      IOException - if an error occurs communicating with the server
    • shutdown

      public void shutdown(long timeout) throws IOException
      Description copied from interface: ServerManager
      Shuts down the server and wait for the servers to be shutdown.
      Specified by:
      shutdown in interface ServerManager
      Parameters:
      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
    • shutdownAsync

      public CompletableFuture<ServerManager> shutdownAsync(long timeout)
      Description copied from interface: ServerManager
      Shuts down the server.

      The returned ServerManager is the same instance of this server manager. You can use the CompletableFuture.get() to wait until the process, if available, to exit.

      Note for implementations. The default method should likely not be used. Care must be taken to ensure a TimeoutException on a CompletableFuture.get() stops the shutdown from continuing to run in the background.

      Specified by:
      shutdownAsync in interface ServerManager
      Parameters:
      timeout - the graceful shutdown timeout, a value of -1 will wait indefinitely and a value of 0 will not attempt a graceful shutdown
      Returns:
      a completable future that on a CompletableFuture.get() will wait for the process, if available, exits
    • isClosed

      public boolean isClosed()
      Description copied from interface: ServerManager
      Checks if this server manager has been closed. The server manager may be closed if the underlying client was closed.
      Specified by:
      isClosed in interface ServerManager
      Returns:
      true if the server manager was closed, otherwise false
    • close

      public void close()
      Description copied from interface: ServerManager
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface ServerManager