From 8a7adb8cc43fbe1f0c3f9b1e52e1a92543fa6ff6 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 4 Oct 2018 17:27:37 -0400 Subject: [PATCH] INT-4528: Docs for SmartLifecycleRoleController JIRA: https://jira.spring.io/browse/INT-4528 --- src/reference/asciidoc/endpoint.adoc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/reference/asciidoc/endpoint.adoc b/src/reference/asciidoc/endpoint.adoc index 0b28a14f4e..e51d6d9330 100644 --- a/src/reference/asciidoc/endpoint.adoc +++ b/src/reference/asciidoc/endpoint.adoc @@ -664,6 +664,17 @@ See the http://docs.spring.io/spring-framework/docs/current/spring-framework-ref Starting with version 4.2, endpoints can be assigned to roles. Roles let endpoints be started and stopped as a group. This is particularly useful when using leadership election, where a set of endpoints can be started or stopped when leadership is granted or revoked, respectively. +For this purpose the framework registers a `SmartLifecycleRoleController` bean in the application context with the name `IntegrationContextUtils.INTEGRATION_LIFECYCLE_ROLE_CONTROLLER`. +Whenever it is necessary to control lifecycles, this bean can be injected or `@Autowired`: + +==== +[source, xml] +---- + + + +---- +==== You can assign endpoints to roles using XML, Java configuration, or programmatically. The following example shows how to configure endpoint roles with XML: @@ -734,11 +745,9 @@ Invoking `roleController.startLifecyclesInRole("cluster")` and the corresponding NOTE: Any object that implements `SmartLifecycle` can be programmatically added -- not just endpoints. -The `SmartLifecycleRoleController` implements `ApplicationListener` and it automatically -starts and stops its configured `SmartLifecycle` objects when leadership is granted or revoked (when some bean publishes -`OnGrantedEvent` or `OnRevokedEvent`, respectively). +The `SmartLifecycleRoleController` implements `ApplicationListener` and it automatically starts and stops its configured `SmartLifecycle` objects when leadership is granted or revoked (when some bean publishes `OnGrantedEvent` or `OnRevokedEvent`, respectively). -IMPORTANT: When using leadership election to start and stop components, it is important to set the `auto-startup` XML attribute (`autoStartup` bean property) to `false` so taht the application context does not start the components during context initialization. +IMPORTANT: When using leadership election to start and stop components, it is important to set the `auto-startup` XML attribute (`autoStartup` bean property) to `false` so that the application context does not start the components during context initialization. Starting with version 4.3.8, the `SmartLifecycleRoleController` provides several status methods: