@Override
public void execute() throws Throwable {
final AbstractClientFactory clientFactory = AbstractClientFactory.getFactory();
ManagerImpl.this.dso = clientFactory.createClient(ManagerImpl.this.config, group,
ManagerImpl.this.classProvider,
ManagerImpl.this.connectionComponents, ManagerImpl.this,
ManagerImpl.this.dsoCluster,
ManagerImpl.this.securityManager,
ManagerImpl.this.abortableOperationManager,
ManagerImpl.this.rejoinManager, uuid, productId);
if (forTests) {
ManagerImpl.this.dso.setCreateDedicatedMBeanServer(true);
}
ManagerImpl.this.dso.start();
ManagerImpl.this.objectManager = ManagerImpl.this.dso.getObjectManager();
ManagerImpl.this.txManager = ManagerImpl.this.dso.getTransactionManager();
ManagerImpl.this.lockManager = ManagerImpl.this.dso.getLockManager();
ManagerImpl.this.searchRequestManager = ManagerImpl.this.dso.getSearchRequestManager();
ManagerImpl.this.serverEventListenerManager = ManagerImpl.this.dso.getServerEventListenerManager();
ManagerImpl.this.shutdownManager = new ClientShutdownManager(ManagerImpl.this.objectManager,
ManagerImpl.this.dso,
ManagerImpl.this.connectionComponents,
rejoinManager);
ManagerImpl.this.dsoCluster.init(ManagerImpl.this.dso.getClusterMetaDataManager(),
ManagerImpl.this.objectManager, ManagerImpl.this.dso.getClusterEventsStage());
ManagerImpl.this.dsoCluster.addClusterListener(new ClusterEventListener(ManagerImpl.this.shutdownManager
.getRemoteTransactionManager()));
}