Package org.wildfly.plugin.tools.server
Interface ServerManager
-
- All Known Implementing Classes:
DomainManager
,StandaloneManager
public interface ServerManager
A simple manager for various interactions with a potentially running server.- Author:
- James R. Perkins
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ServerManager.Builder
A builder used to build aServerManager
.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static ServerManager.Builder
builder()
Creates a builder to build a server manager.org.jboss.as.controller.client.ModelControllerClient
client()
Returns the client associated with this server manager.ContainerDescription
containerDescription()
Returns the container description for the running server.DeploymentManager
deploymentManager()
Returns the deployment manager for the server.void
executeReload()
Reloads the server and returns immediately.void
executeReload(org.jboss.dmr.ModelNode reloadOp)
Reloads the server and returns immediately.static Optional<ProcessHandle>
findProcess()
Attempts to find the controlling process.boolean
isRunning()
Checks to see if a server is running.static boolean
isRunning(org.jboss.as.controller.client.ModelControllerClient client)
Checks if a server is running regardless if it is a standalone or domain server.static boolean
isValidHomeDirectory(String path)
Checks whether the directory is a valid home directory for a server.static boolean
isValidHomeDirectory(Path path)
Checks whether the directory is a valid home directory for a server.String
launchType()
Determines the servers "launch-type".static Optional<String>
launchType(org.jboss.as.controller.client.ModelControllerClient client)
Returns the "launch-type" attribute of a server.void
reloadIfRequired()
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.void
reloadIfRequired(long timeout, TimeUnit unit)
Checks if the container status is "reload-required" and if it's the case, executes reload and waits for completion.String
serverState()
Gets the "server-state" for standalone servers or the "host-state" for domain servers.void
shutdown()
Shuts down the server.void
shutdown(long timeout)
Shuts down the server.String
takeSnapshot()
Takes a snapshot of the current servers configuration and returns the relative file name of the snapshot.default boolean
waitFor(long startupTimeout)
Waits the given amount of time in seconds for a server to start.boolean
waitFor(long startupTimeout, TimeUnit unit)
Waits the given amount of time for a server to start.
-
-
-
Method Detail
-
builder
static ServerManager.Builder builder()
Creates a builder to build a server manager.- Returns:
- a new builder
-
findProcess
static Optional<ProcessHandle> findProcess()
Attempts to find the controlling process. For a domain server this, returns the process handle for the process controller. For a standalone server, this returns the standalone process handle.Please note this method does not work on Windows. The
ProcessHandle.Info.arguments()
is limited by the operating systems privileges.- Returns:
- the process handle if one was found running
-
isValidHomeDirectory
static boolean isValidHomeDirectory(Path path)
Checks whether the directory is a valid home directory for a server.This validates the path is not
null
, exists, is a directory and contains ajboss-modules.jar
.- Parameters:
path
- the path to validate- Returns:
true
if the path is valid otherwisefalse
-
isValidHomeDirectory
static boolean isValidHomeDirectory(String path)
Checks whether the directory is a valid home directory for a server.This validates the path is not
null
, exists, is a directory and contains ajboss-modules.jar
.- Parameters:
path
- the path to validate- Returns:
true
if the path is valid otherwisefalse
-
isRunning
static boolean isRunning(org.jboss.as.controller.client.ModelControllerClient client)
Checks if a server is running regardless if it is a standalone or domain server.- Parameters:
client
- the client used to check the server state- Returns:
true
if a server is running, otherwisefalse
-
launchType
static Optional<String> launchType(org.jboss.as.controller.client.ModelControllerClient client)
Returns the "launch-type" attribute of a server.- Parameters:
client
- the client used to check the launch-type attribute- Returns:
- the servers launch-type
-
client
org.jboss.as.controller.client.ModelControllerClient client()
Returns the client associated with this server manager.- Returns:
- a client to communicate with the server
-
serverState
String serverState()
Gets the "server-state" for standalone servers or the "host-state" for domain servers.- Returns:
- the server-state or "failed" if an error occurred
-
launchType
String launchType()
Determines the servers "launch-type".- Returns:
- the servers launch-type or "unknown" if it could not be determined
-
takeSnapshot
String takeSnapshot() throws IOException
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.- Returns:
- the file name of the snapshot configuration file
- Throws:
IOException
- if an error occurs executing the operation
-
containerDescription
ContainerDescription containerDescription() throws IOException
Returns the container description for the running server.- Returns:
- the container description for the running server
- Throws:
IOException
- if an error occurs communicating with the server
-
deploymentManager
DeploymentManager deploymentManager()
Returns the deployment manager for the server.- Returns:
- the deployment manager
-
isRunning
boolean isRunning()
Checks to see if a server is running.- Returns:
true
if the server is running, otherwisefalse
-
waitFor
default boolean waitFor(long startupTimeout) throws InterruptedException
Waits the given amount of time in seconds for a server to start.If the
process
is notnull
and a timeout occurs the process will be destroyed.- Parameters:
startupTimeout
- the time, in seconds, to wait for the server start- 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
-
waitFor
boolean waitFor(long startupTimeout, TimeUnit unit) throws InterruptedException
Waits the given amount of time for a server to start.If the
process
is notnull
and a timeout occurs the process will be destroyed.- Parameters:
startupTimeout
- the time, to wait for the server startunit
- the time unit for thestartupTimeout
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
-
shutdown
void shutdown() throws IOException
Shuts down the server.- Throws:
IOException
- if an error occurs communicating with the server
-
shutdown
void shutdown(long timeout) throws IOException
Shuts down the server.- Parameters:
timeout
- the graceful shutdown timeout, a value of-1
will wait indefinitely and a value of0
will not attempt a graceful shutdown- Throws:
IOException
- if an error occurs communicating with the server
-
executeReload
void executeReload() throws IOException
Reloads the server and returns immediately.- Throws:
IOException
- if an error occurs communicating with the server
-
executeReload
void executeReload(org.jboss.dmr.ModelNode reloadOp) throws IOException
Reloads the server and returns immediately.- Parameters:
reloadOp
- the reload operation to execute- Throws:
IOException
- if an error occurs communicating with the server
-
reloadIfRequired
void reloadIfRequired() throws IOException
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.- Throws:
IOException
- if an error occurs communicating with the server- See Also:
reloadIfRequired(long, TimeUnit)
-
reloadIfRequired
void reloadIfRequired(long timeout, TimeUnit unit) throws IOException
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 reloadunit
- the time unit for thetimeout
argument- Throws:
IOException
- if an error occurs communicating with the server
-
-