Package org.wildfly.plugin.tools.server
Class StandaloneManager
- java.lang.Object
-
- org.wildfly.plugin.tools.server.StandaloneManager
-
- All Implemented Interfaces:
AutoCloseable,ServerManager
public class StandaloneManager extends Object
A utility for managing a standalone server.- Author:
- James R. Perkins
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.wildfly.plugin.tools.server.ServerManager
ServerManager.Builder
-
-
Field Summary
Fields Modifier and Type Field Description protected ProcessHandleprocess
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.jboss.as.controller.client.ModelControllerClientclient()Returns the client associated with this server manager.voidclose()ContainerDescriptioncontainerDescription()Returns the container description for the running server.DeploymentManagerdeploymentManager()Returns the deployment manager for the server.voidexecuteReload()Reloads the server and returns immediately.voidexecuteReload(org.jboss.dmr.ModelNode reloadOp)Reloads the server and returns immediately.booleanisClosed()Checks if this server manager has been closed.booleanisRunning()Checks to see if a server is running.CompletableFuture<ServerManager>kill()StringlaunchType()Determines the servers "launch-type".voidreloadIfRequired()Checks if the container status is "reload-required" and if it's the case, executes reload and waits for completion with a 10 second timeout.voidreloadIfRequired(long timeout, TimeUnit unit)Checks if the container status is "reload-required" and if it's the case, executes reload and waits for completion.StringserverState()Gets the "server-state" for standalone servers or the "host-state" for domain servers.voidshutdown(long timeout)Shuts down the server and wait for the servers to be shutdown.CompletableFuture<ServerManager>shutdownAsync(long timeout)Shuts down the server.StringtakeSnapshot()Takes a snapshot of the current servers configuration and returns the relative file name of the snapshot.booleanwaitFor(long startupTimeout, TimeUnit unit)Waits the given amount of time for a server to start.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.wildfly.plugin.tools.server.ServerManager
asManaged, executeOperation, executeOperation, shutdown, shutdownAsync, waitFor
-
-
-
-
Field Detail
-
process
protected final ProcessHandle process
-
-
Method Detail
-
serverState
public String serverState()
Description copied from interface:ServerManagerGets the "server-state" for standalone servers or the "host-state" for domain servers.- Returns:
- the server-state or "failed" if an error occurred
-
executeReload
public void executeReload() throws IOExceptionDescription copied from interface:ServerManagerReloads the server and returns immediately.- Throws:
IOException- if an error occurs communicating with the server
-
reloadIfRequired
public void reloadIfRequired() throws IOExceptionDescription copied from interface:ServerManagerChecks if the container status is "reload-required" and if it's the case, executes reload and waits for completion with a 10 second timeout.- Throws:
IOException- if an error occurs communicating with the server- See Also:
ServerManager.reloadIfRequired(long, TimeUnit)
-
reloadIfRequired
public void reloadIfRequired(long timeout, TimeUnit unit) throws IOExceptionDescription copied from interface:ServerManagerChecks 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 reloadunit- the time unit for thetimeoutargument- Throws:
IOException- if an error occurs communicating with the server
-
isRunning
public boolean isRunning()
Description copied from interface:ServerManagerChecks to see if a server is running.- Returns:
trueif the server is running, otherwisefalse
-
client
public org.jboss.as.controller.client.ModelControllerClient client()
Description copied from interface:ServerManagerReturns the client associated with this server manager.- Specified by:
clientin interfaceServerManager- Returns:
- a client to communicate with the server
-
containerDescription
public ContainerDescription containerDescription() throws IOException
Description copied from interface:ServerManagerReturns the container description for the running server.- Specified by:
containerDescriptionin interfaceServerManager- 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:ServerManagerReturns the deployment manager for the server.- Specified by:
deploymentManagerin interfaceServerManager- Returns:
- the deployment manager
-
launchType
public String launchType()
Determines the servers "launch-type".- Specified by:
launchTypein interfaceServerManager- Returns:
- the servers launch-type or "unknown" if it could not be determined
-
kill
public CompletableFuture<ServerManager> kill()
Description copied from interface:ServerManagerIf 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
ServerManageris the same instance of this server manager. You can use theCompletableFuture.get()to wait until the process, if available, to exit.- Specified by:
killin interfaceServerManager- 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 InterruptedExceptionDescription copied from interface:ServerManagerWaits the given amount of time for a server to start.If the
processis notnulland a timeout occurs the process will be destroyed.- Specified by:
waitForin interfaceServerManager- Parameters:
startupTimeout- the time, to wait for the server startunit- the time unit for thestartupTimeoutargument- Returns:
trueif the server is up and running,falseif 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-snapshotoperation with no arguments.- Specified by:
takeSnapshotin interfaceServerManager- Returns:
- the file name of the snapshot configuration file
- Throws:
IOException- if an error occurs executing the operationOperationExecutionException- if the take-snapshot operation fails
-
executeReload
public void executeReload(org.jboss.dmr.ModelNode reloadOp) throws IOException, OperationExecutionExceptionReloads the server and returns immediately.- Specified by:
executeReloadin interfaceServerManager- Parameters:
reloadOp- the reload operation to execute- Throws:
OperationExecutionException- if the reload operation failsIOException- if an error occurs communicating with the server
-
shutdown
public void shutdown(long timeout) throws IOExceptionDescription copied from interface:ServerManagerShuts down the server and wait for the servers to be shutdown.- Specified by:
shutdownin interfaceServerManager- Parameters:
timeout- the graceful shutdown timeout, a value of-1will wait indefinitely and a value of0will 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:ServerManagerShuts down the server.The returned
ServerManageris the same instance of this server manager. You can use theCompletableFuture.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
TimeoutExceptionon aCompletableFuture.get()stops the shutdown from continuing to run in the background.- Specified by:
shutdownAsyncin interfaceServerManager- Parameters:
timeout- the graceful shutdown timeout, a value of-1will wait indefinitely and a value of0will 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:ServerManagerChecks if this server manager has been closed. The server manager may be closed if the underlying client was closed.- Specified by:
isClosedin interfaceServerManager- Returns:
trueif the server manager was closed, otherwisefalse
-
close
public void close()
Description copied from interface:ServerManager- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceServerManager
-
-