final CoreEnvironmentBean coreEnvironmentBean = arjPropertyManager.getCoreEnvironmentBean();
coreEnvironmentBean.setSocketProcessIdPort(socketProcessBindingInjector.getValue().getSocketAddress().getPort());
coreEnvironmentBean.setNodeIdentifier(coreNodeIdentifier);
coreEnvironmentBean.setSocketProcessIdMaxPorts(coreSocketProcessIdMaxPorts);
final JTAEnvironmentBean jtaEnvironmentBean = jtaPropertyManager.getJTAEnvironmentBean();
jtaEnvironmentBean.setLastResourceOptimisationInterface(LastResource.class.getName());
jtaEnvironmentBean.setXaRecoveryNodes(Collections.singletonList("1"));
jtaEnvironmentBean.setXaResourceOrphanFilterClassNames(Arrays.asList(JTATransactionLogXAResourceOrphanFilter.class.getName(), JTANodeNameXAResourceOrphanFilter.class.getName()));
final CoordinatorEnvironmentBean coordinatorEnvironmentBean = arjPropertyManager.getCoordinatorEnvironmentBean();
coordinatorEnvironmentBean.setEnableStatistics(coordinatorEnableStatistics);
coordinatorEnvironmentBean.setDefaultTimeout(coordinatorDefaultTimeout);
final ObjectStoreEnvironmentBean actionStoreObjectStoreEnvironmentBean =
BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "default");
actionStoreObjectStoreEnvironmentBean.setObjectStoreDir(pathInjector.getValue());
final ObjectStoreEnvironmentBean stateStoreObjectStoreEnvironmentBean =
BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "stateStore");
stateStoreObjectStoreEnvironmentBean.setObjectStoreDir(pathInjector.getValue());
final ObjectStoreEnvironmentBean communicationStoreObjectStoreEnvironmentBean =
BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "communicationStore");
communicationStoreObjectStoreEnvironmentBean.setObjectStoreDir(pathInjector.getValue());
// Object Store Browser bean
Map<String, String> objStoreBrowserTypes = new HashMap<String, String> ();
objStoreBrowser = new ObjStoreBrowser();
objStoreBrowserTypes.put("StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction",
"com.arjuna.ats.internal.jta.tools.osb.mbean.jta.JTAActionBean");
final ORB orb = orbInjector.getValue();
if (orb == null) {
// No IIOP, stick with JTA mode.
final com.arjuna.ats.jbossatx.jta.TransactionManagerService service = new com.arjuna.ats.jbossatx.jta.TransactionManagerService();
service.setJbossXATerminator(xaTerminatorInjector.getValue());
service.setTransactionSynchronizationRegistry(new com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple());
recoveryExtensions.add(com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.class.getName());
recoveryEnvironmentBean.setRecoveryExtensions(recoveryExtensions);
recoveryEnvironmentBean.setExpiryScanners(expiryScanners);
recoveryEnvironmentBean.setRecoveryActivators(null);
jtaEnvironmentBean.setTransactionManagerClassName(com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate.class.getName());
jtaEnvironmentBean.setUserTransactionClassName(com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple.class.getName());
jtaEnvironmentBean.setTransactionSynchronizationRegistryClassName(com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple.class.getName());
RecoveryManagerService recoveryManagerService = new RecoveryManagerService();
try {
recoveryManagerService.create();
} catch (Exception e) {
throw new StartException("Recovery manager create failed", e);
}
recoveryManagerService.start();
try {
service.create();
} catch (Exception e) {
throw new StartException("Transaction manager create failed", e);
}
service.start();
this.recoveryManagerService = recoveryManagerService;
value = service;
} else {
// IIOP is enabled, so fire up JTS mode.
final com.arjuna.ats.jbossatx.jts.TransactionManagerService service = new com.arjuna.ats.jbossatx.jts.TransactionManagerService();
service.setJbossXATerminator(xaTerminatorInjector.getValue());
service.setTransactionSynchronizationRegistry(new com.arjuna.ats.internal.jta.transaction.jts.TransactionSynchronizationRegistryImple());
recoveryExtensions.add(TopLevelTransactionRecoveryModule.class.getName());
recoveryExtensions.add(ServerTransactionRecoveryModule.class.getName());
recoveryExtensions.add(com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule.class.getName());
expiryScanners.add(ExpiredContactScanner.class.getName());
expiryScanners.add(ExpiredToplevelScanner.class.getName());
expiryScanners.add(ExpiredServerScanner.class.getName());
recoveryEnvironmentBean.setRecoveryExtensions(recoveryExtensions);
recoveryEnvironmentBean.setExpiryScanners(expiryScanners);
recoveryEnvironmentBean.setRecoveryActivators(Collections.singletonList(com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement.class.getName()));
jtaEnvironmentBean.setTransactionManagerClassName(com.arjuna.ats.jbossatx.jts.TransactionManagerDelegate.class.getName());
jtaEnvironmentBean.setUserTransactionClassName(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
jtaEnvironmentBean.setTransactionSynchronizationRegistryClassName(com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple.class.getName());
objStoreBrowserTypes.put("StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple",
"com.arjuna.ats.arjuna.tools.osb.mbean.ActionBean");
RecoveryManagerService recoveryManagerService = null;
try {