You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2008/02/14 07:09:41 UTC

svn commit: r627671 - in /servicemix/smx4/features/trunk/camel/servicemix-camel/src/test: java/org/apache/servicemix/camel/ws/addressing/ java/org/apache/servicemix/camel/ws/rm/ resources/org/apache/servicemix/camel/ws/addressing/

Author: ffang
Date: Wed Feb 13 22:09:39 2008
New Revision: 627671

URL: http://svn.apache.org/viewvc?rev=627671&view=rev
Log:
[SM-1128] ws-* support - verify and demostrate how ws-addressing is supported

Added:
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml   (with props)
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml   (with props)
Modified:
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/WSAddressingTest.java
    servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/rm/WSRMTest.java

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java Wed Feb 13 22:09:39 2008
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.camel.ws.addressing;
+
+import java.util.concurrent.Future;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.hello_world_soap_http.BadRecordLitFault;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.hello_world_soap_http.NoSuchCodeLitFault;
+import org.apache.hello_world_soap_http.types.BareDocumentResponse;
+import org.apache.hello_world_soap_http.types.ErrorCode;
+import org.apache.hello_world_soap_http.types.GreetMeLaterResponse;
+import org.apache.hello_world_soap_http.types.GreetMeResponse;
+import org.apache.hello_world_soap_http.types.GreetMeSometimeResponse;
+import org.apache.hello_world_soap_http.types.NoSuchCodeLit;
+import org.apache.hello_world_soap_http.types.SayHiResponse;
+import org.apache.hello_world_soap_http.types.TestDocLitFaultResponse;
+import org.apache.hello_world_soap_http.types.TestNillableResponse;
+
+import static org.apache.cxf.ws.addressing.JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND;
+
+
+@WebService(serviceName = "SOAPServiceAddressing", 
+            portName = "SoapPort", 
+            endpointInterface = "org.apache.hello_world_soap_http.Greeter", 
+            targetNamespace = "http://apache.org/hello_world_soap_http",
+            wsdlLocation = "org/apache/servicemix/camel/ws/addressing/hello_world.wsdl")
+public class GreeterImpl implements Greeter, VerificationCache {
+    
+    private String verified;
+    /**
+     * Injectable context.
+     */
+    @Resource
+    private WebServiceContext context;
+
+
+    public String greetMe(String me) {
+        System.out.println("\n\n*** GreetMe called with: " + me + "***\n\n");
+        verifyMAPs();
+        return "Hello " + me;
+    }
+
+    public String greetMeLater(long delay) {
+        System.out.println("\n\n*** GreetMeLater called with: " + delay + "***\n\n");
+        if (delay > 0) {
+            try {
+                Thread.sleep(delay);
+            } catch (InterruptedException ex) {
+                // ignore
+            }
+        }
+        verifyMAPs();
+        return "Hello, finally";
+    }
+
+    public void greetMeOneWay(String requestType) {   
+        System.out.println("\n\n*** GreetMeOneWay called with: " + requestType + "***\n\n");
+        verifyMAPs();
+    }
+
+    public String sayHi() {
+        verifyMAPs();
+        return "sayHi:Bonjour";
+    }
+    
+    public void testDocLitFault(String faultType) throws BadRecordLitFault, NoSuchCodeLitFault {
+        verifyMAPs();
+        if (faultType.equals(BadRecordLitFault.class.getSimpleName())) {
+            throw new BadRecordLitFault("TestBadRecordLit", "BadRecordLitFault");
+        }
+        if (faultType.equals(NoSuchCodeLitFault.class.getSimpleName())) {
+            ErrorCode ec = new ErrorCode();
+            ec.setMajor((short)1);
+            ec.setMinor((short)1);
+            NoSuchCodeLit nscl = new NoSuchCodeLit();
+            nscl.setCode(ec);
+            throw new NoSuchCodeLitFault("TestNoSuchCodeLit", nscl);
+        }
+    }
+
+    public BareDocumentResponse testDocLitBare(String in) {
+        BareDocumentResponse res = new BareDocumentResponse();
+        res.setCompany("Celtix");
+        res.setId(1);
+        return res;
+    }
+
+    private void verifyMAPs() {
+        if (context.getMessageContext() != null) {
+            String property = SERVER_ADDRESSING_PROPERTIES_INBOUND;
+            AddressingProperties maps = (AddressingProperties)
+                context.getMessageContext().get(property);
+            put(WSAddressingTest.verifyMAPs(maps, this));
+        }
+    }
+
+    public String greetMeSometime(String me) {
+        return "greetMeSomeTime:How are you " + me;
+    }
+    
+    public Future<?>  greetMeSometimeAsync(String requestType, 
+                                           AsyncHandler<GreetMeSometimeResponse> asyncHandler) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Response<GreetMeSometimeResponse> greetMeSometimeAsync(String requestType) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Response<TestDocLitFaultResponse> testDocLitFaultAsync(String faultType) {  
+        return null; 
+        /*not called */
+    }
+    
+    public Future<?> testDocLitFaultAsync(String faultType, AsyncHandler ah) {  
+        return null; 
+        /*not called */
+    }
+    
+    public Future<?> testDocLitBareAsync(String bare, AsyncHandler ah) {
+        return null;
+        /* not called */
+    }
+    
+    public Response<BareDocumentResponse> testDocLitBareAsync(String bare) {
+        return null;
+        /* not called */
+    }
+    
+    public Future<?> greetMeAsync(String requestType, AsyncHandler<GreetMeResponse> asyncHandler) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Response<GreetMeResponse> greetMeAsync(String requestType) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Future<?> greetMeLaterAsync(long requestType, AsyncHandler<GreetMeLaterResponse> asyncHandler) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Response<GreetMeLaterResponse> greetMeLaterAsync(long requestType) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Future<?> sayHiAsync(AsyncHandler<SayHiResponse> asyncHandler) { 
+        return null; 
+        /*not called */
+    }
+    
+    public Response<SayHiResponse> sayHiAsync() { 
+        return null; 
+        /*not called */
+    }
+
+    public String testNillable(String nillElem, int intElem) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Response<TestNillableResponse> testNillableAsync(String nillElem,
+                                                            int intElem) {
+        return null;
+    }
+    
+    public Future<?> testNillableAsync(String nillElem, 
+                                       int intElem,
+                                       AsyncHandler<TestNillableResponse> asyncHandler) {
+        return null;
+    }
+    
+    protected boolean verify(Logger log) {
+        if (verified != null) {
+            System.out.println("MAP/Header verification failed: " + verified);
+            log.log(Level.WARNING, 
+                    "MAP/Header verification failed: {0}",
+                    verified);
+        }
+        return verified == null;
+    }
+    
+
+    public void put(String verification) {
+        if (verification != null) {
+            verified = verified == null
+                       ? verification
+                : verified + "; " + verification;
+        }
+    }
+}
+
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/GreeterImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java Wed Feb 13 22:09:39 2008
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.camel.ws.addressing;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.SoapVersion;
+import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
+import org.apache.cxf.headers.Header;
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.cxf.ws.addressing.AttributedURIType;
+import org.apache.cxf.ws.addressing.ContextUtils;
+import org.apache.cxf.ws.addressing.Names;
+import org.apache.cxf.ws.addressing.soap.VersionTransformer;
+import org.apache.cxf.ws.addressing.v200408.AttributedURI;
+
+import static org.apache.cxf.ws.addressing.JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND;
+import static org.apache.cxf.ws.addressing.JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND;
+
+
+/**
+ * Verifies presence of expected SOAP headers.
+ */
+public class HeaderVerifier extends AbstractSoapInterceptor {
+    VerificationCache verificationCache = new GreeterImpl();
+    String currentNamespaceURI;
+    
+    public HeaderVerifier() {
+        super(Phase.POST_PROTOCOL);
+    }
+    
+    public Set<QName> getUnderstoodHeaders() {
+        return Names.HEADERS;
+    }
+
+    public void handleMessage(SoapMessage message) {
+        mediate(message);
+    }
+
+    public void handleFault(SoapMessage message) {
+        mediate(message);
+    }
+    
+    private void mediate(SoapMessage message) {
+        boolean outgoingPartialResponse = isOutgoingPartialResponse(message);
+        if (outgoingPartialResponse) {
+            addPartialResponseHeader(message);
+        }
+        verify(message, outgoingPartialResponse);
+    }
+
+    private void addPartialResponseHeader(SoapMessage message) {
+        try {
+            // add piggybacked wsa:From header to partial response
+            List<Header> header = message.getHeaders();
+            Document doc = DOMUtils.createDocument();
+            SoapVersion ver = message.getVersion();
+            Element hdr = doc.createElementNS(ver.getHeader().getNamespaceURI(), 
+                ver.getHeader().getLocalPart());
+            hdr.setPrefix(ver.getHeader().getPrefix());
+            
+            marshallFrom("urn:piggyback_responder", hdr, getMarshaller());
+            NodeList nl = hdr.getChildNodes();
+            for (int i = 0; i < nl.getLength(); i++) {
+                Object obj = nl.item(i);
+                if (obj instanceof Element) {
+                    Element elem = (Element) obj;
+                    Header holder = new Header(
+                            new QName(elem.getNamespaceURI(), elem.getLocalName()), 
+                            elem, null);
+                    header.add(holder);
+                }
+            }
+            
+        } catch (Exception e) {
+            verificationCache.put("SOAP header addition failed: " + e);
+            e.printStackTrace();
+        }
+    }
+
+    private void verify(SoapMessage message, boolean outgoingPartialResponse) {
+        try {
+            List<String> wsaHeaders = new ArrayList<String>();
+            List<Header> headers = message.getHeaders();
+            if (headers != null) {
+                recordWSAHeaders(headers,
+                                 wsaHeaders,
+                                 Names.WSA_NAMESPACE_NAME);
+                recordWSAHeaders(headers,
+                                 wsaHeaders,
+                                 VersionTransformer.Names200408.WSA_NAMESPACE_NAME);
+                recordWSAHeaders(headers,
+                                 wsaHeaders,
+                                 WSAddressingTest.CUSTOMER_NAME.getNamespaceURI());
+            }
+            boolean partialResponse = isIncomingPartialResponse(message)
+                                      || outgoingPartialResponse;
+            verificationCache.put(WSAddressingTest.verifyHeaders(wsaHeaders, 
+                                                        partialResponse,
+                                                        isRequestLeg(message)));
+        } catch (SOAPException se) {
+            verificationCache.put("SOAP header verification failed: " + se);
+        }
+    }
+
+    private void recordWSAHeaders(List<Header> headers,
+                                  List<String> wsaHeaders,
+                                  String namespaceURI) {
+        Iterator<Header> iter = headers.iterator();
+        while (iter.hasNext()) {
+            Object obj = iter.next().getObject();
+            if (obj instanceof Element) {
+                Element hdr = (Element) obj;
+                if (namespaceURI.equals(hdr.getNamespaceURI())) {
+                    if (namespaceURI.endsWith("addressing")) {
+                        currentNamespaceURI = namespaceURI;
+                        wsaHeaders.add(hdr.getLocalName());
+                    } else if (WSAddressingTest.CUSTOMER_NAME.getNamespaceURI().equals(namespaceURI)) {
+                        String headerText = hdr.getTextContent();
+                        if (WSAddressingTest.CUSTOMER_KEY.equals(headerText)) {
+                            wsaHeaders.add(hdr.getLocalName());
+                        }
+                    }
+                }
+            }
+            
+        }
+    }
+
+    private boolean isRequestLeg(SoapMessage message) {
+        return (ContextUtils.isRequestor(message) && ContextUtils.isOutbound(message))
+               || (!ContextUtils.isRequestor(message) && !ContextUtils.isOutbound(message));     
+    }
+
+    private boolean isOutgoingPartialResponse(SoapMessage message) {
+        AddressingProperties maps = 
+            (AddressingProperties)message.get(SERVER_ADDRESSING_PROPERTIES_OUTBOUND);
+        return ContextUtils.isOutbound(message)
+               && !ContextUtils.isRequestor(message)
+               && maps != null
+               && Names.WSA_ANONYMOUS_ADDRESS.equals(maps.getTo().getValue());
+    }
+    
+    private boolean isIncomingPartialResponse(SoapMessage message) 
+        throws SOAPException {
+        AddressingProperties maps = 
+            (AddressingProperties)message.get(CLIENT_ADDRESSING_PROPERTIES_INBOUND);
+        return !ContextUtils.isOutbound(message)
+               && ContextUtils.isRequestor(message)
+               && maps != null
+               && Names.WSA_ANONYMOUS_ADDRESS.equals(maps.getTo().getValue());
+    }
+    
+    private Marshaller getMarshaller() throws JAXBException {
+        JAXBContext jaxbContext =
+            VersionTransformer.getExposedJAXBContext(currentNamespaceURI);
+        Marshaller marshaller = jaxbContext.createMarshaller();
+        marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+        return marshaller;
+    }
+
+    private void marshallFrom(String from, Element header, Marshaller marshaller) 
+        throws JAXBException {
+        if (Names.WSA_NAMESPACE_NAME.equals(currentNamespaceURI)) {
+            String u = "urn:piggyback_responder";
+            AttributedURIType value =
+                org.apache.cxf.ws.addressing.ContextUtils.getAttributedURI(u);
+            marshaller.marshal(
+                new JAXBElement<AttributedURIType>(Names.WSA_FROM_QNAME,
+                                                   AttributedURIType.class,
+                                                   value),
+                header);
+        } else if (VersionTransformer.Names200408.WSA_NAMESPACE_NAME.equals(
+                                                      currentNamespaceURI)) {
+            AttributedURI value =
+                VersionTransformer.Names200408.WSA_OBJECT_FACTORY.createAttributedURI();
+            value.setValue(from);
+            QName qname = new QName(VersionTransformer.Names200408.WSA_NAMESPACE_NAME, 
+                                    Names.WSA_FROM_NAME);
+            marshaller.marshal(
+                new JAXBElement<AttributedURI>(qname,
+                                               AttributedURI.class,
+                                               value),
+                header);
+        }                                                                    
+    }
+    
+    public void setVerificationCache(VerificationCache cache) {
+        verificationCache = cache;
+    }
+    
+    
+}
+
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/HeaderVerifier.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java Wed Feb 13 22:09:39 2008
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.camel.ws.addressing;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.ws.addressing.AddressingPropertiesImpl;
+import org.apache.cxf.ws.addressing.ContextUtils;
+import org.apache.cxf.ws.addressing.Names;
+
+import static org.apache.cxf.ws.addressing.JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND;
+import static org.apache.cxf.ws.addressing.JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND;
+
+
+/**
+ * Verifies presence of MAPs in the context.
+ */
+public class MAPVerifier extends AbstractPhaseInterceptor<Message> {
+    VerificationCache verificationCache = new GreeterImpl();
+    List<String> expectedExposedAs = new ArrayList<String>();
+    private Map<String, Object> mapProperties;
+
+    public MAPVerifier() {
+        super(Phase.POST_LOGICAL);
+        mapProperties = new HashMap<String, Object>();
+        mapProperties.put(WSAddressingTest.INBOUND_KEY, CLIENT_ADDRESSING_PROPERTIES_INBOUND);
+        mapProperties.put(WSAddressingTest.OUTBOUND_KEY, CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
+    }
+    
+    public void handleMessage(Message message) {
+        verify(message);
+    }
+
+    public void handleFault(Message message) {
+        verify(message);
+    }
+
+    private void verify(Message message) {
+        boolean isOutbound = ContextUtils.isOutbound(message);
+        String mapProperty = 
+            (String)mapProperties.get(isOutbound 
+                                      ? WSAddressingTest.OUTBOUND_KEY
+                                      : WSAddressingTest.INBOUND_KEY);
+        AddressingPropertiesImpl maps = 
+            (AddressingPropertiesImpl)message.get(mapProperty);
+        if (ContextUtils.isRequestor(message)) {
+            if (isOutbound) {
+                String exposeAs = getExpectedExposeAs(false);
+                if (exposeAs != null) {
+                    maps.exposeAs(exposeAs);
+                }
+            } else {
+                String exposeAs = getExpectedExposeAs(true);
+                String expected = exposeAs != null
+                                  ? exposeAs
+                                  : Names.WSA_NAMESPACE_NAME;
+                if (maps.getNamespaceURI() != expected) {
+                    verificationCache.put("Incoming version mismatch"
+                                          + " expected: " + expected
+                                          + " got: " + maps.getNamespaceURI());
+                }
+                exposeAs = null;
+            }
+        }
+        verificationCache.put(WSAddressingTest.verifyMAPs(maps, this));
+    }
+    
+    private String getExpectedExposeAs(boolean remove) {
+        int size = expectedExposedAs.size();
+        return  size == 0 
+                ? null
+                : remove
+                  ? expectedExposedAs.remove(size - 1)
+                  : expectedExposedAs.get(size - 1);
+    }
+    
+    public void setVerificationCache(VerificationCache cache) {
+        verificationCache = cache;
+    }
+    
+    public void addToExpectedExposedAs(String str) {
+        expectedExposedAs.add(str);
+    }
+}
+
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/MAPVerifier.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java Wed Feb 13 22:09:39 2008
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.camel.ws.addressing;
+
+public interface VerificationCache {
+    void put(String verification);
+}

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/VerificationCache.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/WSAddressingTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/WSAddressingTest.java?rev=627671&r1=627670&r2=627671&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/WSAddressingTest.java (original)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/addressing/WSAddressingTest.java Wed Feb 13 22:09:39 2008
@@ -16,10 +16,373 @@
  */
 package org.apache.servicemix.camel.ws.addressing;
 
+import java.lang.reflect.UndeclaredThrowableException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.namespace.QName;
+
+import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.cxf.transport.CamelTransportFactory;
+import org.apache.camel.spring.SpringCamelContext;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.endpoint.ServerImpl;
+import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.jaxws.ServiceImpl;
+import org.apache.cxf.jaxws.support.ServiceDelegateAccessor;
+import org.apache.cxf.transport.ConduitInitiatorManager;
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.cxf.ws.addressing.ContextUtils;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
+import org.apache.cxf.ws.addressing.Names;
+import org.apache.cxf.ws.addressing.ReferenceParametersType;
+import org.apache.cxf.ws.addressing.VersionTransformer;
+import org.apache.cxf.wsdl.EndpointReferenceUtils;
+import org.apache.hello_world_soap_http.BadRecordLitFault;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.hello_world_soap_http.NoSuchCodeLitFault;
+import org.apache.hello_world_soap_http.SOAPService;
+import org.apache.servicemix.camel.ServiceMixComponent;
+import org.apache.servicemix.nmr.api.NMR;
+import org.apache.servicemix.nmr.core.ServiceMix;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class WSAddressingTest extends ContextTestSupport implements VerificationCache {
+	
+	
+    
+    protected static final String SERVICE_ADDRESS = "local://smx/hello_world";
+
+    static final String INBOUND_KEY = "inbound";
+    static final String OUTBOUND_KEY = "outbound";
+    static final String ADDRESS = "http://localhost:9008/SoapContext/SoapPort";
+    static final QName CUSTOMER_NAME =
+        new QName("http://example.org/customer", "CustomerKey", "customer");
+    static final String CUSTOMER_KEY = "Key#123456789";
+
+    private static Bus staticBus;
+
+    
+    private static MAPVerifier mapVerifier;
+    private static HeaderVerifier headerVerifier;
+
+    private static final QName SERVICE_NAME = 
+        new QName("http://apache.org/hello_world_soap_http", "SOAPServiceAddressing");
+    
+    private static final java.net.URL WSDL_LOC;
+    private static final String CONFIG;
+    
+    
+    private static Map<Object, Map<String, String>> messageIDs =
+        new HashMap<Object, Map<String, String>>();
+    protected Greeter greeter;
+    private String verified;
+
+    
+    protected AbstractXmlApplicationContext applicationContext;
+
+    
+    private ServerImpl server;
+    private CamelContext camelContext;
+    private ServiceMixComponent smxComponent;
+    private NMR nmr;
+    private Bus bus;
+    
+    static {
+        CONFIG = "org/apache/servicemix/camel/ws/addressing/addressing" 
+            + (("HP-UX".equals(System.getProperty("os.name"))
+                || "Windows XP".equals(System.getProperty("os.name"))) ? "-hpux" : "")
+            + ".xml";
+        
+        java.net.URL tmp = null;
+        try {
+            tmp = WSAddressingTest.class.getClassLoader().getResource(
+                "org/apache/servicemix/camel/ws/addressing/hello_world.wsdl"
+            );
+        } catch (final Exception e) {
+            e.printStackTrace();
+        }
+        WSDL_LOC = tmp;
+    }
+    
+    @Override
+    protected void setUp() throws Exception {
+    	applicationContext = createApplicationContext();
+        super.setUp();        
+        startService();
+        
+        if (staticBus == null) {
+            SpringBusFactory bf = new SpringBusFactory();
+            staticBus = bf.createBus(getConfigFileName());
+        }
+        messageIDs.clear();
+        mapVerifier = new MAPVerifier();
+        headerVerifier = new HeaderVerifier();
+        Interceptor[] interceptors = {mapVerifier, headerVerifier };
+        addInterceptors(staticBus.getInInterceptors(), interceptors);
+        addInterceptors(staticBus.getOutInterceptors(), interceptors);
+        addInterceptors(staticBus.getOutFaultInterceptors(), interceptors);
+        addInterceptors(staticBus.getInFaultInterceptors(), interceptors);
+        
+        EndpointReferenceType target = 
+            EndpointReferenceUtils.getEndpointReference(ADDRESS);
+        ReferenceParametersType params = 
+            ContextUtils.WSA_OBJECT_FACTORY.createReferenceParametersType();
+        JAXBElement<String> param =
+             new JAXBElement<String>(CUSTOMER_NAME, String.class, CUSTOMER_KEY);
+        params.getAny().add(param);
+        target.setReferenceParameters(params);
+        
+        ServiceImpl serviceImpl = 
+            ServiceDelegateAccessor.get(new SOAPService(WSDL_LOC, SERVICE_NAME));
+        greeter = serviceImpl.getPort(target, Greeter.class);
+
+        mapVerifier.verificationCache = this;
+        headerVerifier.verificationCache = this;
+
+    }
+    
+
+    
+    protected void startService() {
+    	Object implementor = new GreeterImpl();
+    	javax.xml.ws.Endpoint.publish(SERVICE_ADDRESS, implementor);
+ 
+    }
+    
+    @Override
+    protected void tearDown() throws Exception {
+    	if (applicationContext != null) {
+            applicationContext.destroy();
+        }
+        if (server != null) {
+            server.stop();
+        }
+        Interceptor[] interceptors = {mapVerifier, headerVerifier };
+        removeInterceptors(staticBus.getInInterceptors(), interceptors);
+        removeInterceptors(staticBus.getOutInterceptors(), interceptors);
+        removeInterceptors(staticBus.getOutFaultInterceptors(), interceptors);
+        removeInterceptors(staticBus.getInFaultInterceptors(), interceptors);
+        mapVerifier = null;
+        headerVerifier = null;
+        verified = null;
+        messageIDs.clear();
+    }
+  
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+            	from("cxf:bean:routerEndpoint").to("smx:testEndpoint");
+            	from("smx:testEndpoint").to("cxf:bean:serviceEndpoint");       
+            }
+        };
+    }
+    
+    protected CamelContext createCamelContext() throws Exception {
+    	camelContext = SpringCamelContext.springCamelContext(applicationContext);
+    	SpringBusFactory bf = new SpringBusFactory();
+        bus = bf.createBus(getConfigFileName());
+        BusFactory.setDefaultBus(bus);
+    	CamelTransportFactory camelTransportFactory = (CamelTransportFactory) bus.getExtension(ConduitInitiatorManager.class)
+        	.getConduitInitiator(CamelTransportFactory.TRANSPORT_ID);
+    	camelTransportFactory.setCamelContext(camelContext);
+    	smxComponent = new ServiceMixComponent();
+    	nmr = new ServiceMix();
+    	((ServiceMix)nmr).init();
+    	smxComponent.setNmr(nmr);
+    	camelContext.addComponent("smx", smxComponent);
+        return camelContext;
+    }
+    
+    protected ClassPathXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/servicemix/camel/ws/addressing/server.xml");
+    }
+
+	
+    public void testImplicitMAPs() throws Exception {
+        try {
+            String greeting = greeter.greetMe("implicit1");
+            assertEquals("unexpected response received from service", 
+                         "Hello implicit1",
+                         greeting);
+            checkVerification();
+            greeting = greeter.greetMe("implicit2");
+            assertEquals("unexpected response received from service", 
+                         "Hello implicit2",
+                         greeting);
+            checkVerification();
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception)ex.getCause();
+        }
+    }
+    
+    
+    
+    
+    public void testOneway() throws Exception {
+        try {
+            greeter.greetMeOneWay("implicit_oneway1");
+            checkVerification();
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception)ex.getCause();
+        }
+    }
+
+    public void testApplicationFault() throws Exception {
+        try {
+            greeter.testDocLitFault("BadRecordLitFault");
+            fail("expected fault from service");
+        } catch (BadRecordLitFault brlf) {
+            checkVerification();
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception)ex.getCause();
+        }
+        String greeting = greeter.greetMe("intra-fault");
+        assertEquals("unexpected response received from service", 
+                     "Hello intra-fault",
+                     greeting);
+        try {
+            greeter.testDocLitFault("NoSuchCodeLitFault");
+            fail("expected NoSuchCodeLitFault");
+        } catch (NoSuchCodeLitFault nsclf) {
+            checkVerification();
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception)ex.getCause();
+        }
+    }
+    
+
+    public void testVersioning() throws Exception {
+        try {
+            // expect two MAPs instances versioned with 200408, i.e. for both 
+            // the partial and full responses
+            mapVerifier.expectedExposedAs.add(VersionTransformer.Names200408.WSA_NAMESPACE_NAME);
+            mapVerifier.expectedExposedAs.add(VersionTransformer.Names200408.WSA_NAMESPACE_NAME);
+            String greeting = greeter.greetMe("versioning1");
+            assertEquals("unexpected response received from service", 
+                         "Hello versioning1",
+                         greeting);
+            checkVerification();
+            greeting = greeter.greetMe("versioning2");
+            assertEquals("unexpected response received from service", 
+                         "Hello versioning2",
+                         greeting);
+            checkVerification();
+        } catch (UndeclaredThrowableException ex) {
+            throw (Exception)ex.getCause();
+        }
+    }
+
+    protected static String verifyMAPs(AddressingProperties maps,
+            Object checkPoint) {
+        if (maps == null) {
+            return "expected MAPs";
+        }
+        String id = maps.getMessageID().getValue();
+        if (id == null) {
+            return "expected MessageID MAP";
+        }
+        if (!id.startsWith("urn:uuid")) {
+            return "bad URN format in MessageID MAP: " + id;
+        }
+        // ensure MessageID is unique for this check point
+        Map<String, String> checkPointMessageIDs = messageIDs.get(checkPoint);
+        if (checkPointMessageIDs != null) {
+            if (checkPointMessageIDs.containsKey(id)) {
+                // return "MessageID MAP duplicate: " + id;
+                return null;
+            }
+        } else {
+            checkPointMessageIDs = new HashMap<String, String>();
+            messageIDs.put(checkPoint, checkPointMessageIDs);
+        }
+        checkPointMessageIDs.put(id, id);
+        // To
+        if (maps.getTo() == null) {
+            return "expected To MAP";
+        }
+        return null;
+    }
+    
+    public String getConfigFileName() {
+        return CONFIG;
+    }
+    
+    public static void shutdownBus() throws Exception {
+        staticBus.shutdown(true);
+    }
+    
+    private void addInterceptors(List<Interceptor> chain,
+                                     Interceptor[] interceptors) {
+        for (int i = 0; i < interceptors.length; i++) {
+            chain.add(interceptors[i]);
+        }
+    }
+    
+    private void removeInterceptors(List<Interceptor> chain,
+                                 Interceptor[] interceptors) {
+        for (int i = 0; i < interceptors.length; i++) {
+            chain.add(interceptors[i]);
+        }
+    }
+
+    public void put(String verification) {
+        if (verification != null) {
+            verified = verified == null
+                       ? verification
+                : verified + "; " + verification;
+        }
+    }
+    
+    /**
+     * Verify presence of expected MAP headers.
+     *
+     * @param wsaHeaders a list of the wsa:* headers present in the SOAP
+     * message
+     * @param parial true if partial response
+     * @return null if all expected headers present, otherwise an error string.
+     */
+    protected static String verifyHeaders(List<String> wsaHeaders,
+                                          boolean partial,
+                                          boolean requestLeg) {
+        
+        String ret = null;
+        if (!wsaHeaders.contains(Names.WSA_MESSAGEID_NAME)) {
+            ret = "expected MessageID header"; 
+        }
+        if (!wsaHeaders.contains(Names.WSA_TO_NAME)) {
+            ret = "expected To header";
+        }
+       
+        if (!(wsaHeaders.contains(Names.WSA_REPLYTO_NAME)
+              || wsaHeaders.contains(Names.WSA_RELATESTO_NAME))) {
+            ret = "expected ReplyTo or RelatesTo header";
+        }
+        if (partial) { 
+            if (!wsaHeaders.contains(Names.WSA_FROM_NAME)) {
+                //ret = "expected From header";
+            }
+        } else {
+            // REVISIT Action missing from full response
+            //if (!wsaHeaders.contains(Names.WSA_ACTION_NAME)) {
+            //    ret = "expected Action header";
+            //}            
+        }
+        if (requestLeg && !(wsaHeaders.contains(CUSTOMER_NAME.getLocalPart()))) {
+            ret = "expected CustomerKey header";
+        }
+        return ret;
+    }
+
+    private void checkVerification() {
+        assertNull("MAP/Header verification failed: " + verified, verified);
+    }
 
-public class WSAddressingTest extends ContextTestSupport {
-   public void testAddressing() throws Exception {
-       //ws-addressing is in progress
-   }	
 }

Modified: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/rm/WSRMTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/rm/WSRMTest.java?rev=627671&r1=627670&r2=627671&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/rm/WSRMTest.java (original)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/ws/rm/WSRMTest.java Wed Feb 13 22:09:39 2008
@@ -115,7 +115,7 @@
         return new ClassPathXmlApplicationContext("org/apache/servicemix/camel/ws/rm/server.xml");
     }
     
-    //ws-rm is in progress
+
     public void testDecoupled() throws Exception {
     	SpringBusFactory bf = new SpringBusFactory();
         bus = bf.createBus("/org/apache/servicemix/camel/ws/rm/decoupled.xml");

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml Wed Feb 13 22:09:39 2008
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:http="http://cxf.apache.org/transports/http/configuration"
+       xsi:schemaLocation="
+http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+    <http:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
+      <http:client Connection="Keep-Alive" DecoupledEndpoint="http://localhost:9999/decoupled_endpoint"/>
+    </http:conduit>
+    
+    <import resource="wsa_interceptors.xml"/>
+</beans>
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing-hpux.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml Wed Feb 13 22:09:39 2008
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:http="http://cxf.apache.org/transports/http/configuration"
+       xsi:schemaLocation="
+http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+    <http:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit">
+      <http:client DecoupledEndpoint="http://localhost:9999/decoupled_endpoint"/>
+    </http:conduit>
+    
+    <import resource="wsa_interceptors.xml"/>
+</beans>
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/addressing.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl Wed Feb 13 22:09:39 2008
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://apache.org/hello_world_soap_http"
+    xmlns:x1="http://apache.org/hello_world_soap_http/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://apache.org/hello_world_soap_http" name="HelloWorld">
+    <wsdl:types>
+        <schema targetNamespace="http://apache.org/hello_world_soap_http/types" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:x1="http://apache.org/hello_world_soap_http/types"> <!--elementFormDefault="qualified"-->
+            <element name="sayHi">
+                <complexType/>
+            </element>
+            <element name="sayHiResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMe">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="testNillable">
+                <complexType>
+                    <sequence>
+                        <element name="NillElem" nillable="true" type="string"/>
+                        <element name="intElem" type="int"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="testNillableResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" nillable="true" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="greetMeLater">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="long"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeLaterResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeSometime">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeSometimeResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeOneWay">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="testDocLitFault">
+                <complexType>
+                    <sequence>
+                        <element name="faultType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="testDocLitFaultResponse">
+                <complexType>
+                    <sequence/>
+                </complexType>
+            </element>
+            <complexType name="ErrorCode">
+                <sequence>
+                    <element name="minor" type="short"/>
+                    <element name="major" type="short"/>
+                </sequence>
+            </complexType>
+            <element name="NoSuchCodeLit">
+                <complexType>
+                    <sequence>
+                        <element name="code" type="x1:ErrorCode"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="BadRecordLit" type="string"/>
+            <complexType name="BadRecord">
+                <sequence>
+                    <element name="reason" type="string"/>
+                    <element name="code" type="short"/>
+                </sequence>
+            </complexType>
+            <complexType name="addNumbers">
+                <sequence>
+                    <element name="arg0" type="int"/>
+                    <element name="arg1" type="int"/>
+                </sequence>
+            </complexType>
+            <element name="addNumbers" type="x1:addNumbers"/>
+            <complexType name="addNumbersResponse">
+                <sequence>
+                    <element name="return" type="int"/>
+                </sequence>
+            </complexType>
+            <element name="addNumbersResponse" type="x1:addNumbersResponse"/>
+            <complexType name="stringStruct">
+                <sequence>
+                    <element name="arg0" type="string"/>
+                    <element name="arg1" type="string"/>
+                </sequence>
+            </complexType>
+            <element name="BareDocument" type="string"/>
+            <element name="BareDocumentResponse">
+                <complexType>
+                    <sequence>
+                        <element name="company" type="string"/>
+                    </sequence>
+                    <attribute name="id" type="int"/>
+                </complexType>
+            </element>      
+        </schema>
+    </wsdl:types>
+    <wsdl:message name="sayHiRequest">
+        <wsdl:part name="in" element="x1:sayHi"/>
+    </wsdl:message>
+    <wsdl:message name="sayHiResponse">
+        <wsdl:part name="out" element="x1:sayHiResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeRequest">
+        <wsdl:part name="in" element="x1:greetMe"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeResponse">
+        <wsdl:part name="out" element="x1:greetMeResponse"/>
+    </wsdl:message>
+    <wsdl:message name="testNillableRequest">
+        <wsdl:part name="in" element="x1:testNillable"/>
+    </wsdl:message>
+    <wsdl:message name="testNillableResponse">
+        <wsdl:part name="out" element="x1:testNillableResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeLaterRequest">
+        <wsdl:part name="in" element="x1:greetMeLater"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeLaterResponse">
+        <wsdl:part name="out" element="x1:greetMeLaterResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeSometimeRequest">
+        <wsdl:part name="in" element="x1:greetMeSometime"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeSometimeResponse">
+        <wsdl:part name="out" element="x1:greetMeSometimeResponse"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeOneWayRequest">
+        <wsdl:part name="in" element="x1:greetMeOneWay"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitFaultRequest">
+        <wsdl:part name="in" element="x1:testDocLitFault"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitFaultResponse">
+        <wsdl:part name="out" element="x1:testDocLitFaultResponse"/>
+    </wsdl:message>
+    <wsdl:message name="NoSuchCodeLitFault">
+        <wsdl:part name="NoSuchCodeLit" element="x1:NoSuchCodeLit"/>
+    </wsdl:message>
+    <wsdl:message name="BadRecordLitFault">
+        <wsdl:part name="BadRecordLit" element="x1:BadRecordLit"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitBareRequest">
+        <wsdl:part name="in" element="x1:BareDocument"/>
+    </wsdl:message>
+    <wsdl:message name="testDocLitBareResponse">
+        <wsdl:part name="out" element="x1:BareDocumentResponse"/>
+    </wsdl:message> 
+    <wsdl:portType name="Greeter">
+        <wsdl:operation name="sayHi">
+            <wsdl:input name="sayHiRequest" message="tns:sayHiRequest"/>
+            <wsdl:output name="sayHiResponse" message="tns:sayHiResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="greetMe">
+            <wsdl:input name="greetMeRequest" message="tns:greetMeRequest"/>
+            <wsdl:output name="greetMeResponse" message="tns:greetMeResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="testNillable">
+            <wsdl:input name="testNillableRequest" message="tns:testNillableRequest"/>
+            <wsdl:output name="testNillableResponse" message="tns:testNillableResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="greetMeLater">
+            <wsdl:input name="greetMeLaterRequest" message="tns:greetMeLaterRequest"/>
+            <wsdl:output name="greetMeLaterResponse" message="tns:greetMeLaterResponse"/>
+        </wsdl:operation>
+       <wsdl:operation name="greetMeSometime">
+            <wsdl:input name="greetMeSometimeRequest" message="tns:greetMeSometimeRequest"/>
+            <wsdl:output name="greetMeSometimeResponse" message="tns:greetMeSometimeResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="greetMeOneWay">
+            <wsdl:input name="greetMeOneWayRequest" message="tns:greetMeOneWayRequest"/>
+        </wsdl:operation>
+        <wsdl:operation name="testDocLitFault">
+            <wsdl:input name="testDocLitFaultRequest" message="tns:testDocLitFaultRequest"/>
+            <wsdl:output name="testDocLitFaultResponse" message="tns:testDocLitFaultResponse"/>
+            <wsdl:fault name="NoSuchCodeLitFault" message="tns:NoSuchCodeLitFault"/>
+            <wsdl:fault name="BadRecordLitFault" message="tns:BadRecordLitFault"/>
+        </wsdl:operation>
+
+    </wsdl:portType>
+
+    <wsdl:portType name="DocLitBare">
+        <wsdl:operation name="testDocLitBare">
+            <wsdl:input name="testDocLitBareRequest" message="tns:testDocLitBareRequest"/>
+            <wsdl:output name="testDocLitBareResponse" message="tns:testDocLitBareResponse"/>
+        </wsdl:operation>       
+    </wsdl:portType>
+    <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="sayHi">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="greetMe">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="testNillable">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="greetMeLater">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="greetMeSometime">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="greetMeOneWay">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+        </wsdl:operation>
+        <wsdl:operation name="testDocLitFault">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="NoSuchCodeLitFault">
+                <soap:fault name="NoSuchCodeLitFault" use="literal"/>
+            </wsdl:fault>
+            <wsdl:fault name="BadRecordLitFault">
+                <soap:fault name="BadRecordLitFault" use="literal"/>
+            </wsdl:fault>
+        </wsdl:operation>
+
+    </wsdl:binding>
+    <wsdl:binding name="Doc_Lit_Bare_SOAPBinding" type="tns:DocLitBare">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="testDocLitBare">
+            <soap:operation style="document" soapAction="http://apache.org/hello_world_soap_http/testDocLitBare"/>
+            <wsdl:input name="testDocLitBareRequest">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="testDocLitBareResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+
+    <wsdl:service name="SOAPService">
+	<wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+        </wsdl:port>
+
+	<wsdl:port name="SoapPort1" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:7000/SoapContext/SoapPort"/>
+        </wsdl:port>
+    </wsdl:service>
+
+    <wsdl:service name="SOAPProviderService">
+        <wsdl:port name="SoapProviderPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9003/SoapContext/SoapProviderPort"/>
+        </wsdl:port>
+    </wsdl:service>
+
+        <wsdl:service name="SOAPDispatchService">
+        <wsdl:port name="SoapDispatchPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9006/SOAPDispatchService/SoapDispatchPort"/>
+        </wsdl:port>
+    </wsdl:service>
+
+    <wsdl:service name="SOAPService_DocLitBare">
+        <wsdl:port name="SoapPort2" binding="tns:Doc_Lit_Bare_SOAPBinding">
+            <soap:address location="http://localhost:7600/SoapContext/SoapPort"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPServiceAddressingDocLitBare">
+        <wsdl:port name="SoapPort" binding="tns:Doc_Lit_Bare_SOAPBinding">
+            <soap:address location="http://localhost:7600/SoapContext/SoapPort"/>
+            <wswa:UsingAddressing xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPService_Test1">
+        <wsdl:port name="SoapPort_Test1" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9100"/>
+        </wsdl:port>
+        <wsdl:port name="SoapPort_Test2" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9101"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPServiceAddressing">
+        <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9008/SoapContext/SoapPort"/>
+            <wswa:UsingAddressing xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPServiceConcurrencyTest">
+        <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9009/SoapContext/SoapPort"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPServiceBogusAddressTest">
+        <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="FOO"/>
+        </wsdl:port>
+    </wsdl:service>
+    <wsdl:service name="SOAPServiceMultiPortTypeTest">
+		<wsdl:port name="GreeterPort" binding="tns:Greeter_SOAPBinding">
+            <soap:address location="http://localhost:9020/MultiPort/GreeterPort"/>
+        </wsdl:port>
+        <wsdl:port name="DocLitBarePort" binding="tns:Doc_Lit_Bare_SOAPBinding">
+            <soap:address location="http://localhost:9021/MultiPort/DocBarePort"/>
+        </wsdl:port>        
+    </wsdl:service>
+</wsdl:definitions>
+

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/hello_world.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml Wed Feb 13 22:09:39 2008
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:jaxws="http://cxf.apache.org/jaxws"
+    xmlns:test="http://cxf.apache.org/greeter_control"
+    xmlns:cxf="http://activemq.apache.org/camel/schema/cxfEndpoint"
+    xmlns:smx="http://servicemix.apache.org/camelEndpoint/"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans                     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+        http://cxf.apache.org/jaxws                                     http://cxf.apache.org/schemas/jaxws.xsd
+        http://activemq.apache.org/camel/schema/cxfEndpoint http://activemq.apache.org/camel/schema/cxf/cxfEndpoint.xsd
+        http://servicemix.apache.org/camelEndpoint/ http://servicemix.apache.org/camelEndpoint/.xsd
+
+    ">
+
+    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+    <bean class="org.apache.servicemix.camel.ws.addressing.MAPVerifier" id="mapVerifier"/>
+    <bean class="org.apache.servicemix.camel.ws.addressing.HeaderVerifier" id="headVerifier"/>
+    <cxf:cxfEndpoint id="routerEndpoint" name="test:GreeterPort" address="camel://jetty:http://localhost:9008/SoapContext/SoapPort"  serviceClass="org.apache.hello_world_soap_http.Greeter">
+        <cxf:properties>
+            <entry key="dataFormat" value="POJO"/>
+        </cxf:properties>
+        <cxf:features>
+            <bean class="org.apache.cxf.feature.LoggingFeature"/>
+        </cxf:features>
+        <cxf:outInterceptors>
+            <ref bean="mapVerifier"/>
+            <ref bean="headVerifier"/>
+        </cxf:outInterceptors>
+        <cxf:inInterceptors>
+            <ref bean="mapVerifier"/>
+            <ref bean="headVerifier"/>
+        </cxf:inInterceptors>
+        
+        <cxf:outFaultInterceptors>
+            <ref bean="mapVerifier"/>
+            <ref bean="headVerifier"/>
+        </cxf:outFaultInterceptors>
+        <cxf:inFaultInterceptors>
+            <ref bean="mapVerifier"/>
+            <ref bean="headVerifier"/>
+        </cxf:inFaultInterceptors>
+
+    </cxf:cxfEndpoint>
+
+
+    <cxf:cxfEndpoint id="serviceEndpoint" address="local://smx/hello_world"
+      serviceClass="org.apache.hello_world_soap_http.Greeter">
+        <cxf:properties>
+            <entry key="dataFormat" value="POJO"/>
+        </cxf:properties>
+    </cxf:cxfEndpoint>
+
+</beans>

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/server.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml?rev=627671&view=auto
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml (added)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml Wed Feb 13 22:09:39 2008
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
+       xmlns:jaxws="http://cxf.apache.org/jaxws"
+       xsi:schemaLocation="
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+    <bean id="loggingIn" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+
+    <!-- We are adding the interceptors to the bus as we will have only one endpoint/service/bus. -->
+
+    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
+        <property name="inInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="loggingIn"/>
+            </list>
+        </property>
+        <property name="inFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+        <property name="outInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+        <property name="outFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+    </bean>
+
+    <jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort" 
+                  createdFromAPI="true">
+        <jaxws:conduitSelector>
+            <bean class="org.apache.cxf.endpoint.DeferredConduitSelector"/>
+        </jaxws:conduitSelector>
+    </jaxws:client>
+    
+</beans>

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/resources/org/apache/servicemix/camel/ws/addressing/wsa_interceptors.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml