org.jboss.as.xts.XTSHandlersManager Maven / Gradle / Ivy
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/
package org.jboss.as.xts;
import java.util.ArrayList;
import java.util.List;
import com.arjuna.mw.wst11.client.DisabledWSTXHandler;
import com.arjuna.mw.wst11.client.EnabledWSTXHandler;
import com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor;
import org.jboss.jbossts.txbridge.outbound.DisabledJTAOverWSATHandler;
import org.jboss.jbossts.txbridge.outbound.EnabledJTAOverWSATHandler;
import org.jboss.jbossts.txbridge.outbound.JaxWSTxOutboundBridgeHandler;
import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
/**
* Class responsible for registering WSTX and JTAOverWSAT handlers.
*
* @author Gytis Trikleris
*
*/
public final class XTSHandlersManager {
private static final String HANDLER_CHAIN_ID = "xts-handler-chain";
private static final String HANDLER_PROTOCOL_BINDINGS = "##SOAP11_HTTP ##SOAP12_HTTP";
private static final String WSAT_HANDLER_NAME = JaxWSHeaderContextProcessor.class.getSimpleName();
/**
* WS-AT handler used when default context propagation is enabled.
*/
private static final String WSAT_ENABLED_HANDLER_CLASS = EnabledWSTXHandler.class.getName();
/**
* WS-AT handler used when default context propagation is disabled.
*/
private static final String WSAT_DISABLED_HANDLER_CLASS = DisabledWSTXHandler.class.getName();
private static final String BRIDGE_HANDLER_NAME = JaxWSTxOutboundBridgeHandler.class.getSimpleName();
/**
* JTAOverWSAT handler used when default context propagation is enabled.
*/
private static final String BRIDGE_ENABLED_HANDLER_CLASS = EnabledJTAOverWSATHandler.class.getName();
/**
* JTAOverWSAT handler used when default context propagation is disabled.
*/
private static final String BRIDGE_DISABLED_HANDLER_CLASS = DisabledJTAOverWSATHandler.class.getName();
private final boolean enabled;
public XTSHandlersManager(final boolean enabled) {
this.enabled = enabled;
}
public UnifiedHandlerChainMetaData getHandlerChain() {
List handlers = new ArrayList(2);
if (enabled) {
handlers.add(new UnifiedHandlerMetaData(BRIDGE_ENABLED_HANDLER_CLASS, BRIDGE_HANDLER_NAME, null, null, null,
null));
handlers.add(new UnifiedHandlerMetaData(WSAT_ENABLED_HANDLER_CLASS, WSAT_HANDLER_NAME, null, null, null, null));
} else {
handlers.add(new UnifiedHandlerMetaData(BRIDGE_DISABLED_HANDLER_CLASS, BRIDGE_HANDLER_NAME, null, null, null,
null));
handlers.add(new UnifiedHandlerMetaData(WSAT_DISABLED_HANDLER_CLASS, WSAT_HANDLER_NAME, null, null, null, null));
}
return new UnifiedHandlerChainMetaData(null, null, HANDLER_PROTOCOL_BINDINGS, handlers, false, HANDLER_CHAIN_ID);
}
}