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

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

The newest version!
/*
   Copyright The Narayana Authors
   SPDX-License-Identifier: Apache-2.0
 */


package com.arjuna.mw.wst11.client;

import jakarta.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