Search in sources :

Example 1 with PolicyMapConfigurator

use of com.sun.xml.ws.policy.jaxws.spi.PolicyMapConfigurator in project metro-jax-ws by eclipse-ee4j.

the class PolicyWSDLGeneratorExtension method start.

@Override
public void start(final WSDLGenExtnContext context) {
    LOGGER.entering();
    try {
        this.seiModel = context.getModel();
        final PolicyMapConfigurator[] policyMapConfigurators = loadConfigurators();
        final PolicyMapExtender[] extenders = new PolicyMapExtender[policyMapConfigurators.length];
        for (int i = 0; i < policyMapConfigurators.length; i++) {
            extenders[i] = PolicyMapExtender.createPolicyMapExtender();
        }
        // Read policy config file
        policyMap = PolicyResolverFactory.create().resolve(new PolicyResolver.ServerContext(policyMap, context.getContainer(), context.getEndpointClass(), false, extenders));
        if (policyMap == null) {
            LOGGER.fine(PolicyMessages.WSP_1019_CREATE_EMPTY_POLICY_MAP());
            policyMap = PolicyMap.createPolicyMap(Arrays.asList(extenders));
        }
        final WSBinding binding = context.getBinding();
        try {
            final Collection<PolicySubject> policySubjects = new LinkedList<>();
            for (int i = 0; i < policyMapConfigurators.length; i++) {
                policySubjects.addAll(policyMapConfigurators[i].update(policyMap, seiModel, binding));
                extenders[i].disconnect();
            }
            PolicyMapUtil.insertPolicies(policyMap, policySubjects, this.seiModel.getServiceQName(), this.seiModel.getPortName());
        } catch (PolicyException e) {
            throw LOGGER.logSevereException(new WebServiceException(PolicyMessages.WSP_1017_MAP_UPDATE_FAILED(), e));
        }
        final TypedXmlWriter root = context.getRoot();
        root._namespace(NamespaceVersion.v1_2.toString(), NamespaceVersion.v1_2.getDefaultNamespacePrefix());
        root._namespace(NamespaceVersion.v1_5.toString(), NamespaceVersion.v1_5.getDefaultNamespacePrefix());
        root._namespace(PolicyConstants.WSU_NAMESPACE_URI, PolicyConstants.WSU_NAMESPACE_PREFIX);
    } finally {
        LOGGER.exiting();
    }
}
Also used : WSBinding(com.sun.xml.ws.api.WSBinding) PolicySubject(com.sun.xml.ws.policy.PolicySubject) WebServiceException(jakarta.xml.ws.WebServiceException) TypedXmlWriter(com.sun.xml.txw2.TypedXmlWriter) PolicyMapExtender(com.sun.xml.ws.policy.PolicyMapExtender) LinkedList(java.util.LinkedList) PolicyException(com.sun.xml.ws.policy.PolicyException) PolicyMapConfigurator(com.sun.xml.ws.policy.jaxws.spi.PolicyMapConfigurator) MtomPolicyMapConfigurator(com.sun.xml.ws.encoding.policy.MtomPolicyMapConfigurator) AddressingPolicyMapConfigurator(com.sun.xml.ws.addressing.policy.AddressingPolicyMapConfigurator)

Example 2 with PolicyMapConfigurator

use of com.sun.xml.ws.policy.jaxws.spi.PolicyMapConfigurator in project metro-jax-ws by eclipse-ee4j.

the class PolicyWSDLGeneratorExtension method loadConfigurators.

private PolicyMapConfigurator[] loadConfigurators() {
    final Collection<PolicyMapConfigurator> configurators = new LinkedList<>();
    // Add map configurators that are already built into JAX-WS
    configurators.add(new AddressingPolicyMapConfigurator());
    configurators.add(new MtomPolicyMapConfigurator());
    // Dynamically discover remaining map configurators
    PolicyUtil.addServiceProviders(configurators, PolicyMapConfigurator.class);
    return configurators.toArray(new PolicyMapConfigurator[0]);
}
Also used : MtomPolicyMapConfigurator(com.sun.xml.ws.encoding.policy.MtomPolicyMapConfigurator) AddressingPolicyMapConfigurator(com.sun.xml.ws.addressing.policy.AddressingPolicyMapConfigurator) LinkedList(java.util.LinkedList) PolicyMapConfigurator(com.sun.xml.ws.policy.jaxws.spi.PolicyMapConfigurator) MtomPolicyMapConfigurator(com.sun.xml.ws.encoding.policy.MtomPolicyMapConfigurator) AddressingPolicyMapConfigurator(com.sun.xml.ws.addressing.policy.AddressingPolicyMapConfigurator)

Aggregations

AddressingPolicyMapConfigurator (com.sun.xml.ws.addressing.policy.AddressingPolicyMapConfigurator)2 MtomPolicyMapConfigurator (com.sun.xml.ws.encoding.policy.MtomPolicyMapConfigurator)2 PolicyMapConfigurator (com.sun.xml.ws.policy.jaxws.spi.PolicyMapConfigurator)2 LinkedList (java.util.LinkedList)2 TypedXmlWriter (com.sun.xml.txw2.TypedXmlWriter)1 WSBinding (com.sun.xml.ws.api.WSBinding)1 PolicyException (com.sun.xml.ws.policy.PolicyException)1 PolicyMapExtender (com.sun.xml.ws.policy.PolicyMapExtender)1 PolicySubject (com.sun.xml.ws.policy.PolicySubject)1 WebServiceException (jakarta.xml.ws.WebServiceException)1