Package org.jboss.as.server.suspend
Class SuspendController
- java.lang.Object
-
- org.jboss.as.server.suspend.SuspendController
-
- All Implemented Interfaces:
ServerSuspendController,SuspendableActivityRegistry,SuspensionStateProvider
public class SuspendController extends Object implements ServerSuspendController, SuspendableActivityRegistry
Orchestrates suspending and resuming of registered server activity. Registered server activity is organized into groups sharing the same suspend priority. Server suspension happens in two phases: prepare + suspend.- Set state to
State#PRE_SUSPEND - Iterate over activity groups in priority order (from first to last). For each group:
- Create prepare stages for each registered server activity
- Once all prepare stages within priority group have complete, move on to next priority group
- Set state to
State#SUSPENDING - Iterate over activity groups in priority order (from first to last). For each group:
- Create suspend stages for each registered server activity
- Once all suspend stages within priority group have complete, move on to next priority group
- Set state to
State#SUSPENDED
- Iterate over activity groups in reverse priority order (from last to first). For each group:
- Create resume stages for each registered server activity
- Once all resume stages within priority group have complete, move on to next priority group
- Set state to
State#RUNNING
- Author:
- Stuart Douglas, Paul Ferraro
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jboss.as.server.suspend.ServerSuspendController
ServerSuspendController.Context
-
Nested classes/interfaces inherited from interface org.jboss.as.server.suspend.SuspendableActivityRegistry
SuspendableActivityRegistry.SuspendPriority
-
Nested classes/interfaces inherited from interface org.jboss.as.server.suspend.SuspensionStateProvider
SuspensionStateProvider.State
-
-
Field Summary
-
Fields inherited from interface org.jboss.as.server.suspend.ServerSuspendController
SERVICE_DESCRIPTOR
-
Fields inherited from interface org.jboss.as.server.suspend.SuspendableActivityRegistry
SERVICE_DESCRIPTOR
-
-
Constructor Summary
Constructors Constructor Description SuspendController()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddListener(OperationListener listener)Adds the specified server suspension event listener to this controller.SuspensionStateProvider.StategetState()Returns the current suspension state.voidnonGracefulStart()Deprecated, for removal: This API element is subject to removal in a future version.Superseded byresume(ServerResumeContext).voidregisterActivity(ServerActivity activity)Deprecated, for removal: This API element is subject to removal in a future version.voidregisterActivity(SuspendableActivity activity, SuspendableActivityRegistry.SuspendPriority priority)Registers the specifiedSuspendableActivityto this registry using the specified priority.voidremoveListener(OperationListener listener)Removes the specified server suspension event listener from this controller.voidreset()Resets the state of the suspend controller toSuspensionStateProvider.State.SUSPENDED.voidresume()Deprecated, for removal: This API element is subject to removal in a future version.Superseded byresume(ServerResumeContext).CompletionStage<Void>resume(ServerResumeContext context)Resumes all registered activity and transitions the controller fromSuspensionStateProvider.State.SUSPENDEDtoSuspensionStateProvider.State.RUNNING.voidsetStartSuspended(boolean startSuspended)Deprecated, for removal: This API element is subject to removal in a future version.voidsuspend(long timeoutMillis)Deprecated, for removal: This API element is subject to removal in a future version.Superseded bysuspend(ServerSuspendContext)usingCompletableFuture.completeOnTimeout(Object, long, TimeUnit).CompletionStage<Void>suspend(ServerSuspendContext context)Suspends all registered activity and Transitions the controller fromSuspensionStateProvider.State.RUNNINGtoSuspensionStateProvider.State.SUSPENDEDvia the intermediate states:SuspensionStateProvider.State.PRE_SUSPENDandSuspensionStateProvider.State.SUSPENDINGvoidunregisterActivity(SuspendableActivity activity)Unregisters the specifiedSuspendableActivityfrom this registry, if it was previously added.voidunRegisterActivity(ServerActivity activity)Deprecated, for removal: This API element is subject to removal in a future version.Superseded byunregisterActivity(SuspendableActivity).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jboss.as.server.suspend.SuspendableActivityRegistry
registerActivity
-
-
-
-
Method Detail
-
reset
public void reset()
Description copied from interface:ServerSuspendControllerResets the state of the suspend controller toSuspensionStateProvider.State.SUSPENDED.- Specified by:
resetin interfaceServerSuspendController
-
suspend
public CompletionStage<Void> suspend(ServerSuspendContext context)
Description copied from interface:ServerSuspendControllerSuspends all registered activity and Transitions the controller fromSuspensionStateProvider.State.RUNNINGtoSuspensionStateProvider.State.SUSPENDEDvia the intermediate states:SuspensionStateProvider.State.PRE_SUSPENDandSuspensionStateProvider.State.SUSPENDING- Specified by:
suspendin interfaceServerSuspendController- Returns:
- a completion stage that completes after
SuspendableActivity.prepare(ServerSuspendContext)completion, followed bySuspendableActivity.suspend(ServerSuspendContext)completion for all registered activity.
-
resume
public CompletionStage<Void> resume(ServerResumeContext context)
Description copied from interface:ServerSuspendControllerResumes all registered activity and transitions the controller fromSuspensionStateProvider.State.SUSPENDEDtoSuspensionStateProvider.State.RUNNING.- Specified by:
resumein interfaceServerSuspendController- Returns:
- a stage that will complete after
SuspendableActivity#cancel(ServerSuspendCancelContext)completion for all registered activity.
-
nonGracefulStart
@Deprecated(forRemoval=true) public void nonGracefulStart()
Deprecated, for removal: This API element is subject to removal in a future version.Superseded byresume(ServerResumeContext).
-
resume
@Deprecated(forRemoval=true) public void resume()
Deprecated, for removal: This API element is subject to removal in a future version.Superseded byresume(ServerResumeContext).
-
suspend
@Deprecated(forRemoval=true) public void suspend(long timeoutMillis)
Deprecated, for removal: This API element is subject to removal in a future version.Superseded bysuspend(ServerSuspendContext)usingCompletableFuture.completeOnTimeout(Object, long, TimeUnit).
-
registerActivity
public void registerActivity(SuspendableActivity activity, SuspendableActivityRegistry.SuspendPriority priority)
Description copied from interface:SuspendableActivityRegistryRegisters the specifiedSuspendableActivityto this registry using the specified priority. If this activity was already added to this registry, it will retain its original priority.- Specified by:
registerActivityin interfaceSuspendableActivityRegistry- Parameters:
activity- suspendable activity that should complete prior to suspending/resuming the serverpriority- the priority group with which this activity should be registered
-
unregisterActivity
public void unregisterActivity(SuspendableActivity activity)
Description copied from interface:SuspendableActivityRegistryUnregisters the specifiedSuspendableActivityfrom this registry, if it was previously added.- Specified by:
unregisterActivityin interfaceSuspendableActivityRegistry- Parameters:
activity- suspendable activity previously registered viaSuspendableActivityRegistry.registerActivity(SuspendableActivity)orSuspendableActivityRegistry.registerActivity(SuspendableActivity, SuspendPriority).
-
getState
public SuspensionStateProvider.State getState()
Description copied from interface:SuspensionStateProviderReturns the current suspension state.- Specified by:
getStatein interfaceSuspensionStateProvider- Returns:
- the current suspension stage.
-
addListener
public void addListener(OperationListener listener)
Description copied from interface:ServerSuspendControllerAdds the specified server suspension event listener to this controller.- Specified by:
addListenerin interfaceServerSuspendController- Parameters:
listener- a server suspension event listener
-
removeListener
public void removeListener(OperationListener listener)
Description copied from interface:ServerSuspendControllerRemoves the specified server suspension event listener from this controller.- Specified by:
removeListenerin interfaceServerSuspendController- Parameters:
listener- a server suspension event listener
-
setStartSuspended
@Deprecated(forRemoval=true) public void setStartSuspended(boolean startSuspended)
Deprecated, for removal: This API element is subject to removal in a future version.
-
registerActivity
@Deprecated(forRemoval=true) public void registerActivity(ServerActivity activity)
Deprecated, for removal: This API element is subject to removal in a future version.Registers the givenServerActivitywith this controller- Parameters:
activity- the activity. Cannot benull- Throws:
IllegalArgumentException- ifactivityisnullof if itsgetExecutionGroup()method returns a value outside of that method's documented legal range.
-
unRegisterActivity
@Deprecated(forRemoval=true) public void unRegisterActivity(ServerActivity activity)
Deprecated, for removal: This API element is subject to removal in a future version.Superseded byunregisterActivity(SuspendableActivity).
-
-