You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by tl...@apache.org on 2006/12/07 07:48:24 UTC

svn commit: r483359 - in /incubator/cxf/trunk: rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/ rt/core/src/m...

Author: tli
Date: Wed Dec  6 22:48:23 2006
New Revision: 483359

URL: http://svn.apache.org/viewvc?view=rev&rev=483359
Log:
CXF-283, CXF-295, CXF-296, CXF-297 bug fix with unit tests

Added:
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java   (with props)
    incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java   (with props)
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java   (with props)
    incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl   (with props)
    incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl   (with props)
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java   (with props)
Modified:
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
    incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapBindingFactoryTest.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MultipartMessageInterceptor.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLBindingFactory.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
    incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/WSDLServiceBuilderTest.java
    incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Wed Dec  6 22:48:23 2006
@@ -34,8 +34,8 @@
 import javax.wsdl.extensions.mime.MIMEPart;
 import javax.xml.namespace.QName;
 
-
 import org.apache.cxf.Bus;
+
 import org.apache.cxf.binding.AbstractBindingFactory;
 import org.apache.cxf.binding.Binding;
 import org.apache.cxf.binding.BindingFactoryManager;
@@ -47,6 +47,7 @@
 import org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor;
 import org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor;
 import org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor;
+import org.apache.cxf.binding.soap.interceptor.SoapActionInterceptor;
 import org.apache.cxf.binding.soap.interceptor.SoapInPostInterceptor;
 import org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor;
 import org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor;
@@ -149,6 +150,7 @@
         sb.getInInterceptors().add(new MustUnderstandInterceptor());
         sb.getInInterceptors().add(new StaxInInterceptor());        
         
+        sb.getOutInterceptors().add(new SoapActionInterceptor());
         sb.getOutInterceptors().add(new AttachmentOutInterceptor());
         
         sb.getOutInterceptors().add(new StaxOutInterceptor());
@@ -184,11 +186,8 @@
         return sb;
     }
 
-    public BindingInfo createBindingInfo(ServiceInfo service, javax.wsdl.Binding binding) {
-        String ns = ((ExtensibilityElement) binding.getExtensibilityElements().get(0)).getElementType()
-                        .getNamespaceURI();
+    public BindingInfo createBindingInfo(ServiceInfo service, javax.wsdl.Binding binding, String ns) {
         SoapBindingInfo bi = new SoapBindingInfo(service, ns);
-
         // Copy all the extensors
         initializeBindingInfo(service, binding, bi);
 

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java Wed Dec  6 22:48:23 2006
@@ -34,7 +34,6 @@
 import org.apache.cxf.phase.Phase;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
-import org.apache.cxf.service.model.ServiceModelUtil;
 import org.apache.cxf.staxutils.StaxUtils;
 
 public class RPCOutInterceptor extends AbstractOutDatabindingInterceptor {
@@ -95,24 +94,16 @@
     protected String addOperationNode(NSStack nsStack, Message message, XMLStreamWriter xmlWriter) 
         throws XMLStreamException {
         String responseSuffix = !isRequestor(message) ? "Response" : "";
-        String namespaceURI = ServiceModelUtil.getTargetNamespace(message.getExchange());
-        nsStack.add(namespaceURI);
-        String prefix = nsStack.getPrefix(namespaceURI);
-
-        String operationName = getOperationName(message) + responseSuffix;
-
-        StaxUtils.writeStartElement(xmlWriter, prefix, operationName, namespaceURI);
-        return namespaceURI;
+        BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
+        String ns = boi.getName().getNamespaceURI();
+        nsStack.add(ns);
+        String prefix = nsStack.getPrefix(ns);
+        StaxUtils.writeStartElement(xmlWriter, prefix, boi.getName().getLocalPart() + responseSuffix, ns);
+        return ns;
     }
 
     protected XMLStreamWriter getXMLStreamWriter(Message message) {
         return message.getContent(XMLStreamWriter.class);
-    }
-
-    private String getOperationName(Message message) {
-        BindingOperationInfo boi = (BindingOperationInfo) message.getExchange().get(
-                        BindingOperationInfo.class);       
-        return boi.getOperationInfo().getName().getLocalPart();
     }
 
 }

Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java (added)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java Wed Dec  6 22:48:23 2006
@@ -0,0 +1,75 @@
+/**
+ * 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.cxf.binding.soap.interceptor;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cxf.binding.soap.Soap11;
+import org.apache.cxf.binding.soap.Soap12;
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.model.SoapOperationInfo;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.service.model.BindingOperationInfo;
+
+public class SoapActionInterceptor extends AbstractSoapInterceptor {
+    
+    public SoapActionInterceptor() {
+        super();
+        setPhase(Phase.POST_LOGICAL);
+    }
+    
+    @SuppressWarnings("unchecked")
+    public void handleMessage(SoapMessage message) throws Fault {
+        // TODO Auto-generated method stub
+        if (!(message == message.getExchange().getInMessage())) {
+            setSoapAction(message);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void setSoapAction(SoapMessage message) {
+        List<String> value = new ArrayList<String>();
+        
+        BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
+        if (boi == null) {
+            value.add("\"\"");
+        } else {
+            SoapOperationInfo soi = (SoapOperationInfo) boi.getExtensor(SoapOperationInfo.class);            
+            value.add(soi == null ? "\"\"" : soi.getAction() == null ? "\"\"" : soi.getAction());
+        }
+        Map<String, List<String>> reqHeaders = (Map<String, List<String>>)
+            message.get(Message.PROTOCOL_HEADERS);
+        if (reqHeaders == null) {
+            reqHeaders = new HashMap<String, List<String>>();
+            message.put(Message.PROTOCOL_HEADERS, reqHeaders);
+        }
+        if (message.getVersion() instanceof Soap11 && !reqHeaders.containsKey("SOAPAction")) {            
+            reqHeaders.put("SOAPAction", value);            
+        } else if (message.getVersion() instanceof Soap12 && !reqHeaders.containsKey("action")) {
+            reqHeaders.put("action", value);
+        }
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java Wed Dec  6 22:48:23 2006
@@ -59,10 +59,9 @@
     
     public void handleMessage(SoapMessage message) {
         SoapVersion soapVersion = message.getVersion();
-        try {
+        try {            
             XMLStreamWriter xtw = message.getContent(XMLStreamWriter.class);
             message.setContent(XMLStreamWriter.class, xtw);            
-            
             xtw.setPrefix(soapVersion.getPrefix(), soapVersion.getNamespace());
             xtw.writeStartElement(soapVersion.getPrefix(), 
                                   soapVersion.getEnvelope().getLocalPart(),

Added: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java (added)
+++ incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java Wed Dec  6 22:48:23 2006
@@ -0,0 +1,59 @@
+/**
+ * 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.cxf.binding.soap;
+
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.apache.cxf.binding.soap.interceptor.SoapActionInterceptor;
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageImpl;
+
+public class SoapActionInterceptorTest extends TestCase {
+
+    @SuppressWarnings("unchecked")
+    public void testSoapAction() throws Exception {
+        Message message = new MessageImpl();
+        message.setExchange(new ExchangeImpl());
+        message.getExchange().setOutMessage(message);
+        SoapBinding sb = new SoapBinding();
+        message = sb.createMessage(message);
+        assertNotNull(message);
+        assertTrue(message instanceof SoapMessage);
+        SoapMessage soapMessage = (SoapMessage) message;
+        assertEquals(Soap11.getInstance(), soapMessage.getVersion());
+        (new SoapActionInterceptor()).handleMessage(soapMessage);
+        Map<String, List<String>> reqHeaders = (Map<String, List<String>>) soapMessage
+                .get(Message.PROTOCOL_HEADERS);
+        assertNotNull(reqHeaders);
+        assertEquals("\"\"", reqHeaders.get("SOAPAction").get(0));
+
+        sb.setSoapVersion(Soap12.getInstance());
+        soapMessage = (SoapMessage) sb.createMessage(soapMessage);
+        (new SoapActionInterceptor()).handleMessage(soapMessage);
+        reqHeaders = (Map<String, List<String>>) message.get(Message.PROTOCOL_HEADERS);
+        assertNotNull(reqHeaders);
+        assertEquals("\"\"", reqHeaders.get("action").get(0));
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapBindingFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapBindingFactoryTest.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapBindingFactoryTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapBindingFactoryTest.java Wed Dec  6 22:48:23 2006
@@ -50,6 +50,7 @@
 import org.easymock.IMocksControl;
 
 import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.classextension.EasyMock.createNiceControl;
 
 public class SoapBindingFactoryTest extends TestCase {
@@ -63,8 +64,9 @@
         return control.createMock(Bus.class);        
     }
     
-    private BindingFactoryManager getBindingFactoryManager(String ns) throws BusException {
+    private BindingFactoryManager getBindingFactoryManager(String ns, Bus bus) throws BusException {
         SoapBindingFactory bindingFactory = new SoapBindingFactory();
+        bindingFactory.setBus(bus);
         BindingFactoryManager bfm = new BindingFactoryManagerImpl();
         bfm.registerBindingFactory(ns, bindingFactory);
         return bfm;
@@ -75,9 +77,10 @@
 
         Bus bus = getMockBus();
 
-        BindingFactoryManager bfm = getBindingFactoryManager(WSDLConstants.SOAP11_NAMESPACE);
+        BindingFactoryManager bfm = getBindingFactoryManager(WSDLConstants.SOAP11_NAMESPACE, bus);
 
-        expect(bus.getExtension(BindingFactoryManager.class)).andReturn(bfm);
+        bus.getExtension(BindingFactoryManager.class);
+        expectLastCall().andReturn(bfm).anyTimes();
         
         DestinationFactoryManager dfm = control.createMock(DestinationFactoryManager.class);
         expect(bus.getExtension(DestinationFactoryManager.class)).andStubReturn(dfm);
@@ -119,7 +122,7 @@
 
         Bus bus = getMockBus();
 
-        BindingFactoryManager bfm = getBindingFactoryManager(WSDLConstants.SOAP12_NAMESPACE);
+        BindingFactoryManager bfm = getBindingFactoryManager(WSDLConstants.SOAP12_NAMESPACE, bus);
 
         expect(bus.getExtension(BindingFactoryManager.class)).andReturn(bfm);
         

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java Wed Dec  6 22:48:23 2006
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PushbackInputStream;
+import java.net.URLDecoder;
 import java.util.Enumeration;
 
 import javax.activation.DataHandler;
@@ -138,7 +139,7 @@
         if (id != null && id.startsWith("<")) {
             id = id.substring(1, id.length() - 1);
         }
-        id = id.startsWith("cid:") ? id.substring(4) : id;
+        id = URLDecoder.decode(id.startsWith("cid:") ? id.substring(4) : id, "UTF-8");
         
         AttachmentImpl att = new AttachmentImpl(id);
         setupAttachment(att, headers);

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java Wed Dec  6 22:48:23 2006
@@ -41,7 +41,7 @@
      */
     public static String createContentID(String ns) throws UnsupportedEncodingException {
         // tend to change
-        String cid = "cxf.apache.org";
+        String cid = "http://cxf.apache.org/";
         String name = UUID.randomUUID() + "@";
         if (ns != null && (ns.length() > 0)) {
             try {
@@ -55,7 +55,7 @@
                 cid = URLEncoder.encode(ns, "UTF-8");
             }
         }
-        return name + cid;
+        return URLEncoder.encode(name + cid, "UTF-8");
     }
 
     public static String getUniqueBoundaryValue(int part) {

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java Wed Dec  6 22:48:23 2006
@@ -74,11 +74,9 @@
      * @param binding
      * @return
      */
-    public BindingInfo createBindingInfo(ServiceInfo service, Binding binding) {
+    public BindingInfo createBindingInfo(ServiceInfo service, Binding binding, String ns) {
 
-        String namespace = ((ExtensibilityElement)binding.getExtensibilityElements().get(0))
-            .getElementType().getNamespaceURI();
-        BindingInfo bi = createBindingInfo(service, namespace);
+        BindingInfo bi = createBindingInfo(service, ns);
         
         return initializeBindingInfo(service, binding, bi);
     }
@@ -96,7 +94,8 @@
             if (bop.getBindingOutput() != null) {
                 outName = bop.getBindingOutput().getName();
             }
-            BindingOperationInfo bop2 = bi.buildOperation(new QName(service.getName().getNamespaceURI(),
+            String portTypeNs = binding.getPortType().getQName().getNamespaceURI();
+            BindingOperationInfo bop2 = bi.buildOperation(new QName(portTypeNs,
                                                                     bop.getName()), inName, outName);
             if (bop2 != null) {
 

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MultipartMessageInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MultipartMessageInterceptor.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MultipartMessageInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MultipartMessageInterceptor.java Wed Dec  6 22:48:23 2006
@@ -51,16 +51,19 @@
             return;
         }
         
-        if (!Boolean.TRUE.equals(
-            message.getContextualProperty(org.apache.cxf.message.Message.MTOM_ENABLED))) {
-            return;
-        }
-
-        AttachmentDeserializer ad = new AttachmentDeserializer(message);
-        try {
-            ad.initializeAttachments();
-        } catch (IOException e) {
-            throw new Fault(e);
+//        if (!Boolean.TRUE.equals(
+//            message.getContextualProperty(org.apache.cxf.message.Message.MTOM_ENABLED))) {
+//            return;
+//        }
+        
+        String contentType = (String) message.get(Message.CONTENT_TYPE);
+        if (contentType != null && contentType.toLowerCase().indexOf("multipart/related") != -1) {
+            AttachmentDeserializer ad = new AttachmentDeserializer(message);
+            try {
+                ad.initializeAttachments();
+            } catch (IOException e) {
+                throw new Fault(e);
+            }
         }
     }
 

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLBindingFactory.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLBindingFactory.java Wed Dec  6 22:48:23 2006
@@ -26,5 +26,5 @@
 import org.apache.cxf.service.model.ServiceInfo;
 
 public interface WSDLBindingFactory extends BindingFactory {
-    BindingInfo createBindingInfo(ServiceInfo serviceInfo, Binding binding);
+    BindingInfo createBindingInfo(ServiceInfo serviceInfo, Binding binding, String ns);
 }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Wed Dec  6 22:48:23 2006
@@ -50,7 +50,7 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.binding.BindingFactory;
-import org.apache.cxf.binding.BindingFactoryManager;
+
 import org.apache.cxf.resource.XmlSchemaURIResolver;
 import org.apache.cxf.service.model.AbstractMessageContainer;
 import org.apache.cxf.service.model.AbstractPropertiesHolder;
@@ -69,6 +69,7 @@
 import org.apache.cxf.service.model.UnwrappedOperationInfo;
 import org.apache.cxf.transport.DestinationFactory;
 import org.apache.cxf.transport.DestinationFactoryManager;
+
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
 import org.apache.ws.commons.schema.XmlSchemaComplexType;
@@ -247,20 +248,14 @@
 
     public BindingInfo buildBinding(ServiceInfo service, Binding binding) {
         BindingInfo bi = null;
-        String ns = ((ExtensibilityElement)binding.getExtensibilityElements().get(0)).getElementType()
-            .getNamespaceURI();
-        try {
-            BindingFactory factory = bus.getExtension(BindingFactoryManager.class).getBindingFactory(ns);
-            if (factory instanceof WSDLBindingFactory) {
-                WSDLBindingFactory wFactory = (WSDLBindingFactory)factory;
-                bi = wFactory.createBindingInfo(service, binding);
-            }
-        } catch (BusException e) {
-            // ignore, we'll use a generic BindingInfo
+        StringBuffer ns = new StringBuffer(100);
+        BindingFactory factory = WSDLServiceUtils.getBindingFactory(binding, bus, ns);
+        if (factory instanceof WSDLBindingFactory) {
+            WSDLBindingFactory wFactory = (WSDLBindingFactory)factory;
+            bi = wFactory.createBindingInfo(service, binding, ns.toString());
         }
-
         if (bi == null) {
-            bi = new BindingInfo(service, ns);
+            bi = new BindingInfo(service, ns.toString());
             bi.setName(binding.getQName());
             copyExtensors(bi, binding.getExtensibilityElements());
 
@@ -522,7 +517,8 @@
         
         List orderedParam = msg.getOrderedParts(paramOrder);
         for (Part part : cast(orderedParam, Part.class)) {
-            MessagePartInfo pi = minfo.addMessagePart(part.getName());
+            MessagePartInfo pi = minfo.addMessagePart(new QName(minfo.getName().getNamespaceURI(), 
+                    part.getName()));
             if (part.getTypeName() != null) {
                 pi.setTypeQName(part.getTypeName());
                 pi.setElement(false);

Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java (added)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java Wed Dec  6 22:48:23 2006
@@ -0,0 +1,59 @@
+/**
+ * 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.cxf.wsdl11;
+
+import javax.wsdl.Binding;
+import javax.wsdl.extensions.ExtensibilityElement;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusException;
+import org.apache.cxf.binding.BindingFactory;
+import org.apache.cxf.binding.BindingFactoryManager;
+
+public final class WSDLServiceUtils {
+
+    private WSDLServiceUtils() {
+
+    }
+
+    public static BindingFactory getBindingFactory(Binding binding, Bus bus, StringBuffer sb) {
+        BindingFactory factory = null;
+        for (Object obj : binding.getExtensibilityElements()) {
+            if (obj instanceof ExtensibilityElement) {
+                ExtensibilityElement ext = (ExtensibilityElement) obj;
+                sb.delete(0, sb.length());
+                sb.append(ext.getElementType().getNamespaceURI());
+                try {
+                    factory = bus.getExtension(BindingFactoryManager.class).getBindingFactory(sb.toString());
+                } catch (BusException e) {
+                    // ignore, we'll use a generic BindingInfo
+                }
+
+                if (factory != null) {
+                    break;
+                }
+            }
+
+        }
+
+        return factory;
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceUtils.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/WSDLServiceBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/WSDLServiceBuilderTest.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/WSDLServiceBuilderTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/WSDLServiceBuilderTest.java Wed Dec  6 22:48:23 2006
@@ -87,12 +87,12 @@
     private DestinationFactoryManager destinationFactoryManager;
 
     public void setUp() throws Exception {
-        setUpWSDL(WSDL_PATH);
+        setUpWSDL(WSDL_PATH, 0);
     }
 
 
     
-    private void setUpWSDL(String wsdl) throws Exception {
+    private void setUpWSDL(String wsdl, int serviceSeq) throws Exception {
         String wsdlUrl = getClass().getResource(wsdl).toString();
         LOG.info("the path of wsdl file is " + wsdlUrl);
         WSDLFactory wsdlFactory = WSDLFactory.newInstance();
@@ -102,10 +102,15 @@
         def = wsdlReader.readWSDL(new WSDLLocatorImpl(wsdlUrl));
 
         WSDLServiceBuilder wsdlServiceBuilder = new WSDLServiceBuilder(bus);
+        int seq = 0;
         for (Service serv : CastUtils.cast(def.getServices().values(), Service.class)) {
             if (serv != null) {
                 service = serv;
-                break;
+                if (seq == serviceSeq) {
+                    break;
+                } else {
+                    seq++;
+                }
             }
         }
 
@@ -334,7 +339,7 @@
     }
 
     public void testBare() throws Exception {
-        setUpWSDL(BARE_WSDL_PATH);
+        setUpWSDL(BARE_WSDL_PATH, 0);
         BindingInfo bindingInfo = null;
         bindingInfo = serviceInfo.getBindings().iterator().next();
         Collection<BindingOperationInfo> bindingOperationInfos = bindingInfo.getOperations();
@@ -382,7 +387,7 @@
             fout.flush();
             fout.close();
         }
-        setUpWSDL(IMPORT_WSDL_PATH);
+        setUpWSDL(IMPORT_WSDL_PATH, 0);
         TypeInfo types = serviceInfo.getTypeInfo();
         assertNotNull(types);
         assertNotNull(types.getSchemas());
@@ -392,4 +397,29 @@
         assertNotNull(schema);        
     }
 
+    
+    public void testDiffPortTypeNsImport() throws Exception {
+        setUpWSDL("/DiffPortTypeNs.wsdl", 0);        
+        doDiffPortTypeNsImport();
+        setUpWSDL("/DiffPortTypeNs.wsdl", 1);
+        doDiffPortTypeNsImport();
+    }
+    
+    private void doDiffPortTypeNsImport() {
+        if (serviceInfo.getName().getLocalPart().endsWith("Rpc")) {
+            String ns = serviceInfo.getInterface().getName().getNamespaceURI();
+            OperationInfo oi = serviceInfo.getInterface().getOperation(new QName(ns, "NewOperationRpc"));
+            assertNotNull(oi);
+            ns = oi.getInput().getName().getNamespaceURI();
+            MessagePartInfo mpi = oi.getInput().getMessagePart(new QName(ns, "NewOperationRequestRpc"));
+            assertNotNull(mpi);                    
+        } else {
+            String ns = serviceInfo.getInterface().getName().getNamespaceURI();
+            OperationInfo oi = serviceInfo.getInterface().getOperation(new QName(ns, "NewOperation"));
+            assertNotNull(oi);
+            ns = oi.getInput().getName().getNamespaceURI();
+            MessagePartInfo mpi = oi.getInput().getMessagePart(new QName(ns, "NewOperationRequest"));
+            assertNotNull(mpi);                    
+        }
+    }
 }

Added: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl (added)
+++ incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl Wed Dec  6 22:48:23 2006
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://cxf.apache.org/DiffPortTypeNs-Import/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="DiffPortTypeNs-Import"
+    targetNamespace="http://cxf.apache.org/DiffPortTypeNs-Import/">
+
+    <wsdl:message name="NewOperationResponse">
+        <wsdl:part name="NewOperationResponse" type="xsd:string" />
+    </wsdl:message>
+    <wsdl:message name="NewOperationRequest">
+        <wsdl:part name="NewOperationRequest" type="xsd:string" />
+    </wsdl:message>
+    <wsdl:portType name="DiffPortTypeNs">
+        <wsdl:operation name="NewOperation">
+            <wsdl:input message="tns:NewOperationRequest" />
+            <wsdl:output message="tns:NewOperationResponse" />
+        </wsdl:operation>
+    </wsdl:portType>
+
+    <wsdl:message name="NewOperationResponseRpc">
+        <wsdl:part name="NewOperationResponseRpc" type="xsd:string" />
+    </wsdl:message>
+    <wsdl:message name="NewOperationRequestRpc">
+        <wsdl:part name="NewOperationRequestRpc" type="xsd:string" />
+    </wsdl:message>
+    <wsdl:portType name="DiffPortTypeNsRpc">
+        <wsdl:operation name="NewOperationRpc">
+            <wsdl:input message="tns:NewOperationRequestRpc" />
+            <wsdl:output message="tns:NewOperationResponseRpc" />
+        </wsdl:operation>
+    </wsdl:portType>
+
+</wsdl:definitions>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs-Import.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl (added)
+++ incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl Wed Dec  6 22:48:23 2006
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:tns="http://cxf.apache.org/DiffPortTypeNs/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="DiffPortTypeNs"
+    xmlns:n1="http://cxf.apache.org/DiffPortTypeNs-Import/"
+    targetNamespace="http://cxf.apache.org/DiffPortTypeNs/">
+    <wsdl:import namespace="http://cxf.apache.org/DiffPortTypeNs-Import/"
+        location="DiffPortTypeNs-Import.wsdl" />
+
+    <wsdl:binding name="DiffPortTypeNsSOAP" type="n1:DiffPortTypeNs">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="NewOperation">
+            <soap:operation soapAction="http://cxf.apache.org/DiffPortTypeNs/NewOperation" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="DiffPortTypeNs">
+        <wsdl:port binding="tns:DiffPortTypeNsSOAP" name="DiffPortTypeNsSOAP">
+            <soap:address location="http://cxf.apache.org/DiffPortTypeNs/" />
+        </wsdl:port>
+    </wsdl:service>
+
+    <wsdl:binding name="DiffPortTypeNsSOAPRpc" type="n1:DiffPortTypeNsRpc">
+        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="NewOperationRpc">
+            <soap:operation soapAction="http://cxf.apache.org/DiffPortTypeNs/NewOperationRpc" />
+            <wsdl:input>
+                <soap:body namespace="http://cxf.apache.org/DiffPortTypeNs-Import/" use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body namespace="http://cxf.apache.org/DiffPortTypeNs-Import/" use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="DiffPortTypeNsRpc">
+        <wsdl:port binding="tns:DiffPortTypeNsSOAPRpc" name="DiffPortTypeNsSOAPRpc">
+            <soap:address location="http://cxf.apache.org/DiffPortTypeNsRpc/" />
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/core/src/test/resources/DiffPortTypeNs.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller.java Wed Dec  6 22:48:23 2006
@@ -22,6 +22,8 @@
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.logging.Logger;
 
 import javax.activation.DataHandler;
@@ -65,13 +67,20 @@
 
     @Override
     public boolean isXOPPackage() {
-        return Boolean.TRUE.equals(message.getContextualProperty(
-            org.apache.cxf.message.Message.MTOM_ENABLED));
+        String contentType = (String) message.getContextualProperty(Message.CONTENT_TYPE);
+        if (contentType != null && contentType.contains("application/xop+xml")) {
+            return true;
+        }
+        return false;
     }
 
     private DataSource getAttachmentDataSource(String contentId) {
         if (contentId.startsWith("cid:")) {
-            contentId = contentId.substring(4);
+            try {
+                contentId = URLDecoder.decode(contentId.substring(4), "UTF-8");
+            } catch (UnsupportedEncodingException ue) {
+                contentId = contentId.substring(4);
+            }
         }
         return new LazyDataSource(contentId, message.getAttachments());
     }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Wed Dec  6 22:48:23 2006
@@ -231,7 +231,7 @@
         }
         boolean isIn = isInParam(method, i);
         boolean isOut = isOutParam(method, i);
-        
+
         if (isIn && !isOut) {
             QName name = getInPartName(o, method, i);
             MessagePartInfo part = o.getInput().getMessagePart(name);

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java?view=diff&rev=483359&r1=483358&r2=483359
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java Wed Dec  6 22:48:23 2006
@@ -35,72 +35,21 @@
 import org.apache.cxf.BusFactoryHelper;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.ClientImpl;
-import org.apache.cxf.endpoint.ServerImpl;
 import org.apache.cxf.jaxws.EndpointInvocationHandler;
-import org.apache.cxf.jaxws.JAXWSMethodInvoker;
 import org.apache.cxf.jaxws.binding.soap.SOAPBindingImpl;
 import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
-import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.mime.TestMtom;
-import org.apache.cxf.mtom_xop.TestMtomImpl;
 import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.AbstractServiceFactoryBean;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.systest.common.ClientServerSetupBase;
 import org.apache.cxf.systest.common.ClientServerTestBase;
-import org.apache.cxf.systest.common.TestServerBase;
-import org.apache.cxf.transport.ChainInitiationObserver;
-import org.apache.cxf.transport.MessageObserver;
 
 public class ClientMtomXopTest extends ClientServerTestBase {
 
     public static final QName MTOM_PORT = new QName("http://cxf.apache.org/mime", "TestMtomPort");
     public static final QName MTOM_SERVICE = new QName("http://cxf.apache.org/mime", "TestMtomService");
-
-    public static class Server extends TestServerBase {
-
-        protected void run() {
-            Object implementor = new TestMtomImpl();
-            String address = "http://localhost:9036/mime-test";
-            try {
-                Bus bus = BusFactoryHelper.newInstance().getDefaultBus();
-                JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
-                AbstractServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean(implInfo);
-                serviceFactory.setBus(bus);
-                Service service = serviceFactory.create();
-                QName endpointName = implInfo.getEndpointName();
-                EndpointInfo ei = service.getServiceInfo().getEndpoint(endpointName);
-                service.setInvoker(new JAXWSMethodInvoker(implementor));
-                org.apache.cxf.endpoint.EndpointImpl endpoint = new JaxWsEndpointImpl(bus, service, ei);
-                SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding()); 
-                jaxWsSoapBinding.setMTOMEnabled(true);
-
-                endpoint.getInInterceptors().add(new TestMultipartMessageInterceptor());
-                endpoint.getOutInterceptors().add(new TestAttachmentOutInterceptor());
-                
-                endpoint.getEndpointInfo().setAddress(address);
-                MessageObserver observer = new ChainInitiationObserver(endpoint, bus);
-                ServerImpl server = new ServerImpl(bus, endpoint, observer);
-                server.start();
-            } catch (Exception e) {
-                Thread.currentThread().interrupt();
-            }            
-        }
-
-        public static void main(String args[]) {
-            try {
-                Server s = new Server();
-                s.start();
-            } catch (Exception ex) {
-                ex.printStackTrace();
-                System.exit(-1);
-            } finally {
-                System.out.println("done!");
-            }
-        }
-    }
 
     public static Test suite() throws Exception {
         TestSuite suite = new TestSuite(ClientMtomXopTest.class);

Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java?view=auto&rev=483359
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java (added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java Wed Dec  6 22:48:23 2006
@@ -0,0 +1,82 @@
+/**
+ * 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.cxf.systest.mtom;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.soap.SOAPBinding;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactoryHelper;
+import org.apache.cxf.endpoint.ServerImpl;
+import org.apache.cxf.jaxws.JAXWSMethodInvoker;
+import org.apache.cxf.jaxws.binding.soap.SOAPBindingImpl;
+import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
+import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
+import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
+import org.apache.cxf.mtom_xop.TestMtomImpl;
+import org.apache.cxf.service.Service;
+import org.apache.cxf.service.factory.AbstractServiceFactoryBean;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.systest.common.TestServerBase;
+import org.apache.cxf.transport.ChainInitiationObserver;
+import org.apache.cxf.transport.MessageObserver;
+
+public class Server extends TestServerBase {
+
+    protected void run() {
+        Object implementor = new TestMtomImpl();
+        String address = "http://localhost:9036/mime-test";
+        try {
+            Bus bus = BusFactoryHelper.newInstance().getDefaultBus();
+            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
+            AbstractServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean(implInfo);
+            serviceFactory.setBus(bus);
+            Service service = serviceFactory.create();
+            QName endpointName = implInfo.getEndpointName();
+            EndpointInfo ei = service.getServiceInfo().getEndpoint(endpointName);
+            service.setInvoker(new JAXWSMethodInvoker(implementor));
+            org.apache.cxf.endpoint.EndpointImpl endpoint = new JaxWsEndpointImpl(bus, service, ei);
+            SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding()); 
+            jaxWsSoapBinding.setMTOMEnabled(true);
+
+            endpoint.getInInterceptors().add(new TestMultipartMessageInterceptor());
+            endpoint.getOutInterceptors().add(new TestAttachmentOutInterceptor());
+            
+            endpoint.getEndpointInfo().setAddress(address);
+            MessageObserver observer = new ChainInitiationObserver(endpoint, bus);
+            ServerImpl server = new ServerImpl(bus, endpoint, observer);
+            server.start();
+        } catch (Exception e) {
+            Thread.currentThread().interrupt();
+        }
+    }
+
+    public static void main(String args[]) {
+        try {
+            Server s = new Server();
+            s.start();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.exit(-1);
+        } finally {
+            System.out.println("done!");
+        }
+    }
+}

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/Server.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date