private void checkIfNodeIdentifierIsDefault(final OperationContext context, final ModelNode model) throws OperationFailedException { final String nodeIdentifier = TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER .resolveModelAttribute(context, model) .asString(); final String defaultNodeIdentifier = TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER.getDefaultValue().asString(); if (defaultNodeIdentifier.equals(nodeIdentifier)) { TransactionLogger.ROOT_LOGGER.nodeIdentifierIsSetToDefault(); } }
private void populateModelWithCoreEnvConfig(ModelNode operation, ModelNode model) throws OperationFailedException { // core environment TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER.validateAndSet(operation, model); // We have some complex logic for the 'process-id' stuff because of the alternatives if (operation.hasDefined(TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.getName()) && operation .get(TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.getName()) .asBoolean()) { TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.validateAndSet(operation, model); if (operation.hasDefined( TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName())) { throw new OperationFailedException( String.format( "%s must be undefined if %s is 'true'.", TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName(), TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.getName())); } else if (operation.hasDefined( TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.getName())) { throw new OperationFailedException( String.format( "%s must be undefined if %s is 'true'.", TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.getName(), TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.getName())); } // model.get(TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName()); // model.get(TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.getName()); } else if (operation.hasDefined( TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName())) { TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.validateAndSet( operation, model); TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.validateAndSet( operation, model); } else if (operation.hasDefined( TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.getName())) { throw new OperationFailedException( String.format( "%s must be defined if %s is defined.", TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName(), TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS.getName())); } else { // not uuid and also not sockets! throw new OperationFailedException( String.format( "Either %s must be 'true' or %s must be defined.", TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID.getName(), TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING.getName())); } }
private void performCoreEnvironmentBootTime(OperationContext context, ModelNode coreEnvModel) throws OperationFailedException { // Configure the core configuration. final String nodeIdentifier = TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER .resolveModelAttribute(context, coreEnvModel) .asString(); TransactionLogger.ROOT_LOGGER.debugf("nodeIdentifier=%s%n", nodeIdentifier); final CoreEnvironmentService coreEnvironmentService = new CoreEnvironmentService(nodeIdentifier); String socketBindingName = null; if (TransactionSubsystemRootResourceDefinition.PROCESS_ID_UUID .resolveModelAttribute(context, coreEnvModel) .asBoolean(false)) { // Use the UUID based id UuidProcessId id = new UuidProcessId(); coreEnvironmentService.setProcessImplementation(id); } else { // Use the socket process id coreEnvironmentService.setProcessImplementationClassName(ProcessIdType.SOCKET.getClazz()); socketBindingName = TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_BINDING .resolveModelAttribute(context, coreEnvModel) .asString(); int ports = TransactionSubsystemRootResourceDefinition.PROCESS_ID_SOCKET_MAX_PORTS .resolveModelAttribute(context, coreEnvModel) .asInt(); coreEnvironmentService.setSocketProcessIdMaxPorts(ports); } final ServiceBuilder<?> coreEnvBuilder = context .getServiceTarget() .addService(TxnServices.JBOSS_TXN_CORE_ENVIRONMENT, coreEnvironmentService); if (socketBindingName != null) { // Add a dependency on the socket id binding ServiceName bindingName = SocketBinding.JBOSS_BINDING_NAME.append(socketBindingName); coreEnvBuilder.addDependency( bindingName, SocketBinding.class, coreEnvironmentService.getSocketProcessBindingInjector()); } coreEnvBuilder.setInitialMode(ServiceController.Mode.ACTIVE).install(); }
private void performCoordinatorEnvBoottime( OperationContext context, ModelNode coordEnvModel, final boolean jts) throws OperationFailedException { final boolean coordinatorEnableStatistics = TransactionSubsystemRootResourceDefinition.STATISTICS_ENABLED .resolveModelAttribute(context, coordEnvModel) .asBoolean(); final boolean transactionStatusManagerEnable = TransactionSubsystemRootResourceDefinition.ENABLE_TSM_STATUS .resolveModelAttribute(context, coordEnvModel) .asBoolean(); final int coordinatorDefaultTimeout = TransactionSubsystemRootResourceDefinition.DEFAULT_TIMEOUT .resolveModelAttribute(context, coordEnvModel) .asInt(); final String nodeIdentifier = TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER .resolveModelAttribute(context, coordEnvModel) .asString(); // install JTA environment bean service final JTAEnvironmentBeanService jtaEnvironmentBeanService = new JTAEnvironmentBeanService(nodeIdentifier); context .getServiceTarget() .addService(TxnServices.JBOSS_TXN_JTA_ENVIRONMENT, jtaEnvironmentBeanService) .setInitialMode(Mode.ACTIVE) .install(); final ArjunaTransactionManagerService transactionManagerService = new ArjunaTransactionManagerService( coordinatorEnableStatistics, coordinatorDefaultTimeout, transactionStatusManagerEnable, jts); final ServiceBuilder<com.arjuna.ats.jbossatx.jta.TransactionManagerService> transactionManagerServiceServiceBuilder = context .getServiceTarget() .addService( TxnServices.JBOSS_TXN_ARJUNA_TRANSACTION_MANAGER, transactionManagerService); // add dependency on JTA environment bean service transactionManagerServiceServiceBuilder.addDependency( TxnServices.JBOSS_TXN_JTA_ENVIRONMENT, JTAEnvironmentBean.class, transactionManagerService.getJTAEnvironmentBeanInjector()); // if jts is enabled we need the ORB if (jts) { transactionManagerServiceServiceBuilder.addDependency( ServiceName.JBOSS.append("iiop-openjdk", "orb-service"), ORB.class, transactionManagerService.getOrbInjector()); transactionManagerServiceServiceBuilder.addDependency(CorbaNamingService.SERVICE_NAME); } transactionManagerServiceServiceBuilder .addDependency( TxnServices.JBOSS_TXN_XA_TERMINATOR, JBossXATerminator.class, transactionManagerService.getXaTerminatorInjector()) .addDependency( TxnServices.JBOSS_TXN_USER_TRANSACTION_REGISTRY, UserTransactionRegistry.class, transactionManagerService.getUserTransactionRegistry()) .addDependency(TxnServices.JBOSS_TXN_CORE_ENVIRONMENT) .addDependency(TxnServices.JBOSS_TXN_ARJUNA_OBJECTSTORE_ENVIRONMENT) .addDependency(TxnServices.JBOSS_TXN_ARJUNA_RECOVERY_MANAGER) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); }