- public ListenableFuture<Void> stopClusterServices(boolean deviceDisconnected) {
- myManager.stopScheduling(deviceInfo);
- return Futures.immediateFuture(null);
+ public void setLifecycleInitializationPhaseHandler(final ClusterInitializationPhaseHandler handler) {
+ this.clusterInitializationPhaseHandler = handler;
+ }
+
+ @Override
+ public boolean onContextInstantiateService(final MastershipChangeListener mastershipChangeListener) {
+
+ LOG.info("Starting statistics context cluster services for node {}", deviceInfo.getLOGValue());
+
+ this.statListForCollectingInitialization();
+ Futures.addCallback(this.initialGatherDynamicData(), new FutureCallback<Boolean>() {
+
+ @Override
+ public void onSuccess(@Nullable Boolean aBoolean) {
+ initialSubmitHandler.initialSubmitTransaction();
+ }
+
+ @Override
+ public void onFailure(@Nonnull Throwable throwable) {
+ LOG.warn("Initial gathering statistics unsuccessful for node {}", deviceInfo.getLOGValue());
+ mastershipChangeListener.onNotAbleToStartMastership(deviceInfo);
+ }
+ });
+
+ if (this.isStatisticsPollingOn) {
+ myManager.startScheduling(deviceInfo);
+ }
+
+ return this.clusterInitializationPhaseHandler.onContextInstantiateService(mastershipChangeListener);