Skip to content

Commit

Permalink
[WFLY-11174] Add the capability for the TransactionIntegration
Browse files Browse the repository at this point in the history
  • Loading branch information
bstansberry committed Nov 2, 2018
1 parent b317fd6 commit 303d2f2
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 9 deletions.
Expand Up @@ -23,13 +23,15 @@


package org.jboss.as.connector.subsystems.jca; package org.jboss.as.connector.subsystems.jca;


import static org.jboss.as.connector.subsystems.jca.JcaSubsystemRootDefinition.TRANSACTION_INTEGRATION_CAPABILITY;
import static org.jboss.as.connector.util.ConnectorServices.LOCAL_TRANSACTION_PROVIDER_CAPABILITY; import static org.jboss.as.connector.util.ConnectorServices.LOCAL_TRANSACTION_PROVIDER_CAPABILITY;


import org.jboss.as.connector.deployers.ra.RaDeploymentActivator; import org.jboss.as.connector.deployers.ra.RaDeploymentActivator;
import org.jboss.as.connector.services.driver.registry.DriverRegistryService; import org.jboss.as.connector.services.driver.registry.DriverRegistryService;
import org.jboss.as.connector.services.transactionintegration.TransactionIntegrationService; import org.jboss.as.connector.services.transactionintegration.TransactionIntegrationService;
import org.jboss.as.connector.util.ConnectorServices; import org.jboss.as.connector.util.ConnectorServices;
import org.jboss.as.controller.AbstractBoottimeAddStepHandler; import org.jboss.as.controller.AbstractBoottimeAddStepHandler;
import org.jboss.as.controller.CapabilityServiceTarget;
import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.ProcessType; import org.jboss.as.controller.ProcessType;
import org.jboss.as.server.AbstractDeploymentChainStep; import org.jboss.as.server.AbstractDeploymentChainStep;
Expand All @@ -39,7 +41,6 @@
import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController; import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceController.Mode; import org.jboss.msc.service.ServiceController.Mode;
import org.jboss.msc.service.ServiceTarget;
import org.jboss.tm.XAResourceRecoveryRegistry; import org.jboss.tm.XAResourceRecoveryRegistry;


/** /**
Expand Down Expand Up @@ -67,18 +68,19 @@ protected void execute(DeploymentProcessorTarget processorTarget) {
}, OperationContext.Stage.RUNTIME); }, OperationContext.Stage.RUNTIME);




ServiceTarget serviceTarget = context.getServiceTarget(); CapabilityServiceTarget serviceTarget = context.getCapabilityServiceTarget();


TransactionIntegrationService tiService = new TransactionIntegrationService(); TransactionIntegrationService tiService = new TransactionIntegrationService();


serviceTarget serviceTarget
.addService(ConnectorServices.TRANSACTION_INTEGRATION_SERVICE, tiService) .addCapability(TRANSACTION_INTEGRATION_CAPABILITY, tiService)
// Ensure the local transaction provider is started // Ensure the local transaction provider is started
.addDependency(context.getCapabilityServiceName(LOCAL_TRANSACTION_PROVIDER_CAPABILITY, null)) .addCapabilityRequirement(LOCAL_TRANSACTION_PROVIDER_CAPABILITY, Void.class)
.addDependency(TxnServices.JBOSS_TXN_USER_TRANSACTION_REGISTRY, org.jboss.tm.usertx.UserTransactionRegistry.class, tiService.getUtrInjector()) .addDependency(TxnServices.JBOSS_TXN_USER_TRANSACTION_REGISTRY, org.jboss.tm.usertx.UserTransactionRegistry.class, tiService.getUtrInjector())
.addDependency(TxnServices.JBOSS_TXN_CONTEXT_XA_TERMINATOR, JBossContextXATerminator.class, tiService.getTerminatorInjector()) .addDependency(TxnServices.JBOSS_TXN_CONTEXT_XA_TERMINATOR, JBossContextXATerminator.class, tiService.getTerminatorInjector())
.addDependency(TxnServices.JBOSS_TXN_ARJUNA_RECOVERY_MANAGER, XAResourceRecoveryRegistry.class, tiService.getRrInjector()) .addDependency(TxnServices.JBOSS_TXN_ARJUNA_RECOVERY_MANAGER, XAResourceRecoveryRegistry.class, tiService.getRrInjector())
.setInitialMode(ServiceController.Mode.ACTIVE) .setInitialMode(ServiceController.Mode.ACTIVE)
.addAliases(ConnectorServices.TRANSACTION_INTEGRATION_SERVICE)
.install(); .install();


final JcaSubsystemConfiguration config = new JcaSubsystemConfiguration(); final JcaSubsystemConfiguration config = new JcaSubsystemConfiguration();
Expand Down
Expand Up @@ -24,24 +24,33 @@


import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM; import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM;


import org.jboss.as.connector.util.ConnectorServices;
import org.jboss.as.controller.PathElement; import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleResourceDefinition; import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler; import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.registry.ManagementResourceRegistration; import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.jca.core.spi.transaction.TransactionIntegration;


/** /**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc. * @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc.
*/ */
public class JcaSubsystemRootDefinition extends SimpleResourceDefinition { public class JcaSubsystemRootDefinition extends SimpleResourceDefinition {
protected static final PathElement PATH_SUBSYSTEM = PathElement.pathElement(SUBSYSTEM, JcaExtension.SUBSYSTEM_NAME); protected static final PathElement PATH_SUBSYSTEM = PathElement.pathElement(SUBSYSTEM, JcaExtension.SUBSYSTEM_NAME);

static final RuntimeCapability<Void> TRANSACTION_INTEGRATION_CAPABILITY = RuntimeCapability.Builder.of("org.wildfly.jca.transaction-integration", TransactionIntegration.class)
.addRequirements(ConnectorServices.LOCAL_TRANSACTION_PROVIDER_CAPABILITY)
.build();

private final boolean registerRuntimeOnly; private final boolean registerRuntimeOnly;




private JcaSubsystemRootDefinition(final boolean registerRuntimeOnly) { private JcaSubsystemRootDefinition(final boolean registerRuntimeOnly) {
super(PATH_SUBSYSTEM, super(new Parameters(PATH_SUBSYSTEM, JcaExtension.getResourceDescriptionResolver())
JcaExtension.getResourceDescriptionResolver(), .setAddHandler(JcaSubsystemAdd.INSTANCE)
JcaSubsystemAdd.INSTANCE, .setRemoveHandler(JcaSubSystemRemove.INSTANCE)
JcaSubSystemRemove.INSTANCE); .setCapabilities(TRANSACTION_INTEGRATION_CAPABILITY)
);
this.registerRuntimeOnly = registerRuntimeOnly; this.registerRuntimeOnly = registerRuntimeOnly;
} }


Expand Down
Expand Up @@ -64,6 +64,8 @@ public class ConnectorServices {


public static final ServiceName BOOTSTRAP_CONTEXT_SERVICE = ServiceName.JBOSS.append("connector", "bootstrapcontext"); public static final ServiceName BOOTSTRAP_CONTEXT_SERVICE = ServiceName.JBOSS.append("connector", "bootstrapcontext");


/** @deprecated Use the "org.wildfly.jca.transaction-integration" capability. */
@Deprecated
public static final ServiceName TRANSACTION_INTEGRATION_SERVICE = ServiceName.JBOSS.append("connector", public static final ServiceName TRANSACTION_INTEGRATION_SERVICE = ServiceName.JBOSS.append("connector",
"transactionintegration"); "transactionintegration");


Expand Down
Expand Up @@ -30,6 +30,7 @@
import java.util.List; import java.util.List;


import org.jboss.as.connector.logging.ConnectorLogger; import org.jboss.as.connector.logging.ConnectorLogger;
import org.jboss.as.connector.util.ConnectorServices;
import org.jboss.as.controller.ModelVersion; import org.jboss.as.controller.ModelVersion;
import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement; import org.jboss.as.controller.PathElement;
Expand Down Expand Up @@ -83,7 +84,9 @@ public void testSchemaOfSubsystemTemplates() throws Exception {


@Override @Override
protected AdditionalInitialization createAdditionalInitialization() { protected AdditionalInitialization createAdditionalInitialization() {
return AdditionalInitialization.withCapabilities(ClusteringDefaultRequirement.COMMAND_DISPATCHER_FACTORY.getName()); return AdditionalInitialization.withCapabilities(
ClusteringDefaultRequirement.COMMAND_DISPATCHER_FACTORY.getName(),
ConnectorServices.LOCAL_TRANSACTION_PROVIDER_CAPABILITY);
} }


@Test @Test
Expand Down

0 comments on commit 303d2f2

Please sign in to comment.