+ return this.state;
+ }
+
+ @Override
+ public void setState(CONTEXT_STATE state) {
+ this.state = state;
+ }
+
+ @Override
+ public void startupClusterServices() throws ExecutionException, InterruptedException {
+ LOG.debug("Initializing transaction chain manager for node {}", getDeviceInfo().getLOGValue());
+ this.transactionChainManager.activateTransactionManager();
+ LOG.debug("Waiting to get node {} information", getDeviceInfo().getLOGValue());
+ DeviceInitializationUtils.initializeNodeInformation(this, switchFeaturesMandatory, this.convertorExecutor);
+ }
+
+ @Override
+ public ListenableFuture<Void> stopClusterServices(boolean deviceDisconnected) {
+ return this.transactionChainManager.deactivateTransactionManager();
+ }
+
+ @Override
+ public ServiceGroupIdentifier getServiceIdentifier() {
+ return this.deviceInfo.getServiceIdentifier();
+ }
+
+ @Override
+ public DeviceInfo getDeviceInfo() {
+ return this.deviceInfo;
+ }
+
+ @Override
+ public void putLifecycleServiceIntoTxChainManager(final LifecycleService lifecycleService){
+ this.transactionChainManager.setLifecycleService(lifecycleService);
+ }
+
+ @Override
+ public void replaceConnectionContext(final ConnectionContext connectionContext){
+ // Act like we are initializing the context
+ setState(CONTEXT_STATE.INITIALIZATION);
+ this.primaryConnectionContext = connectionContext;
+ this.onPublished();