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;

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

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


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

TransactionIntegrationService tiService = new TransactionIntegrationService();

serviceTarget
.addService(ConnectorServices.TRANSACTION_INTEGRATION_SERVICE, tiService)
.addCapability(TRANSACTION_INTEGRATION_CAPABILITY, tiService)
// 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_CONTEXT_XA_TERMINATOR, JBossContextXATerminator.class, tiService.getTerminatorInjector())
.addDependency(TxnServices.JBOSS_TXN_ARJUNA_RECOVERY_MANAGER, XAResourceRecoveryRegistry.class, tiService.getRrInjector())
.setInitialMode(ServiceController.Mode.ACTIVE)
.addAliases(ConnectorServices.TRANSACTION_INTEGRATION_SERVICE)
.install();

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

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.SimpleResourceDefinition;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
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.
*/
public class JcaSubsystemRootDefinition extends SimpleResourceDefinition {
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 JcaSubsystemRootDefinition(final boolean registerRuntimeOnly) {
super(PATH_SUBSYSTEM,
JcaExtension.getResourceDescriptionResolver(),
JcaSubsystemAdd.INSTANCE,
JcaSubSystemRemove.INSTANCE);
super(new Parameters(PATH_SUBSYSTEM, JcaExtension.getResourceDescriptionResolver())
.setAddHandler(JcaSubsystemAdd.INSTANCE)
.setRemoveHandler(JcaSubSystemRemove.INSTANCE)
.setCapabilities(TRANSACTION_INTEGRATION_CAPABILITY)
);
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");

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

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

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.PathAddress;
import org.jboss.as.controller.PathElement;
Expand Down Expand Up @@ -83,7 +84,9 @@ public void testSchemaOfSubsystemTemplates() throws Exception {

@Override
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
Expand Down

0 comments on commit 303d2f2

Please sign in to comment.