/** * Copyright 2015-2016 Red Hat, Inc, and individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wildfly.swarm.webservices; import org.wildfly.swarm.config.Webservices; import org.wildfly.swarm.config.webservices.EndpointConfig; import org.wildfly.swarm.spi.api.Fraction; import org.wildfly.swarm.spi.api.annotations.MarshalDMR; import org.wildfly.swarm.spi.api.annotations.WildFlyExtension; @WildFlyExtension(module = "org.jboss.as.webservices") @MarshalDMR public class WebServicesFraction extends Webservices<WebServicesFraction> implements Fraction<WebServicesFraction> { public static WebServicesFraction createDefaultFraction() { return new WebServicesFraction().applyDefaults(); } @Override public WebServicesFraction applyDefaults() { endpointConfig(STANDARD_ENDPOINT_CONFIG); endpointConfig(RECORDING_ENDPOINT_CONFIG, this::configureRemoteEndpoint); clientConfig(STANDARD_CLIENT_CONFIG); return this; } private void configureRemoteEndpoint(EndpointConfig<?> endpoint) { endpoint.preHandlerChain(RECORDING_HANDLERS, (chain) -> chain.protocolBindings(SOAP_PROTOCOLS) .handler(RECORDING_HANDLER, (handler) -> handler.attributeClass(RECORDING_HANDLER_CLASS))); } private static final String STANDARD_ENDPOINT_CONFIG = "Standard-Endpoint-Config"; private static final String RECORDING_ENDPOINT_CONFIG = "Recording-Endpoint-Config"; private static final String RECORDING_HANDLERS = "recording-handlers"; private static final String SOAP_PROTOCOLS = "##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"; private static final String RECORDING_HANDLER = "RecordingHandler"; private static final String RECORDING_HANDLER_CLASS = "org.jboss.ws.common.invocation.RecordingServerHandler"; private static final String STANDARD_CLIENT_CONFIG = "Standard-Client-Config"; }