All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arjuna.mw.wst11.client.WSTXFeature Maven / Gradle / Ivy

There is a newer version: 7.1.0.Final
Show newest version
/*
 * JBoss, Home of Professional Open Source
 * Copyright 2013, Red Hat Middleware LLC, and individual contributors
 * as indicated by the @author tags.
 * See the copyright.txt in the distribution for a full listing
 * of individual contributors.
 * This copyrighted material is made available to anyone wishing to use,
 * modify, copy, or redistribute it subject to the terms and conditions
 * of the GNU Lesser General Public License, v. 2.1.
 * This program is distributed in the hope that it will be useful, but WITHOUT A
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License,
 * v.2.1 along with this distribution; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 *
 * (C) 2005-2006,
 * @author JBoss Inc.
 */

package com.arjuna.mw.wst11.client;

import javax.xml.ws.BindingProvider;

import org.jboss.ws.api.configuration.AbstractClientFeature;

/**
 * Web service feature is used to enable or disable WS-AT/WS-BA context propagation for specific port.
 *
 * @author Paul Robinson
 * @author Gytis Trikleris
 */
public final class WSTXFeature extends AbstractClientFeature {

    /**
     * Key to store WSTXFeature's enabled/disabled value in SOAP header.
     */
    public static final String REQUEST_CONTEXT_KEY = "WSTXFeature";

    /**
     * Value to indicate that WSTXFeature is enabled.
     */
    public static final String ENABLED_VALUE = "true";

    /**
     * Value to indicate that WSTXFeature is disabled.
     */
    public static final String DISABLED_VALUE = "false";

    /**
     * Default constructor creates instance of enabled WSTXFeature.
     */
    public WSTXFeature() {
        this(true);
    }

    /**
     * Parametrised constructor creates either enabled or disabled WSTXFeature based on enabled parameter.
     *
     * @param enabled true to create enabled WSTXFeature, false to create disabled WSTXFeature.
     */
    public WSTXFeature(final boolean enabled) {
        super(WSTXFeature.class.getName());
        this.enabled = enabled;
    }

    /**
     * Sets REQUEST_CONTEXT_KEY value to ENABLED_VALUE if WSTXFeature is enabled.
     *
     * Sets REQUEST_CONTEXT_KEY value to DISABLED_VALUE if WSTXFeature is disabled and
     * REQUEST_CONTEXT_KEY value was not already set by another feature.
     */
    @Override
    protected void initializeBindingProvider(BindingProvider bp) {
        if (enabled) {
            bp.getRequestContext().put(REQUEST_CONTEXT_KEY, ENABLED_VALUE);
        } else {
            if (!bp.getRequestContext().containsKey(REQUEST_CONTEXT_KEY)) {
                // Disable handler only if another feature does not require it.
                bp.getRequestContext().put(REQUEST_CONTEXT_KEY, DISABLED_VALUE);
            }
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy