cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ff...@apache.org
Subject svn commit: r1432798 - in /cxf/trunk: rt/core/src/main/java/org/apache/cxf/service/factory/ rt/core/src/main/java/org/apache/cxf/wsdl11/ systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ systests/jaxws/src/test/resources/partialwsdl/
Date Mon, 14 Jan 2013 04:32:41 GMT
Author: ffang
Date: Mon Jan 14 04:32:40 2013
New Revision: 1432798

URL: http://svn.apache.org/viewvc?rev=1432798&view=rev
Log:
[CXF-4676]Partial WSDL support in CXF

Added:
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/PartialWSDLProcessor.java
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/SOAPBindingUtil.java
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial1.java
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial2.java
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ClientServerPartialWsdlTest.java
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ServerPartialWsdl.java
    cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/
    cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service.wsdl
    cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service_schema1.xsd
    cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service.wsdl
    cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service_schema1.xsd
Modified:
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?rev=1432798&r1=1432797&r2=1432798&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Mon Jan 14 04:32:40 2013
@@ -46,7 +46,9 @@ import java.util.concurrent.Executor;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.wsdl.Definition;
 import javax.wsdl.Operation;
+import javax.wsdl.WSDLException;
 import javax.xml.bind.annotation.XmlAttachmentRef;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlList;
@@ -105,6 +107,7 @@ import org.apache.cxf.service.model.Oper
 import org.apache.cxf.service.model.SchemaInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.service.model.UnwrappedOperationInfo;
+import org.apache.cxf.wsdl.WSDLManager;
 import org.apache.cxf.wsdl11.WSDLServiceBuilder;
 import org.apache.cxf.wsdl11.WSDLServiceFactory;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -525,7 +528,7 @@ public class ReflectionServiceFactoryBea
     }
 
     protected boolean isFromWsdl() {
-        return !populateFromClass && getWsdlURL() != null;
+        return !populateFromClass && getWsdlURL() != null && !isEmptywsdl(getWsdlURL());
     }
 
     protected void initializeServiceModel() {
@@ -2581,4 +2584,16 @@ public class ReflectionServiceFactoryBea
     public void setSchemaLocations(List<String> schemaLocations) {
         this.schemaLocations = schemaLocations;
     }
+    private boolean isEmptywsdl(String wsdlUrl) {
+        Definition definition;
+        try {
+            definition = getBus().getExtension(WSDLManager.class).getDefinition(wsdlUrl);
+        } catch (WSDLException e) {
+            return true;
+        }
+        if (definition.getPortTypes().isEmpty() && definition.getImports().isEmpty()) {
+            return true;
+        } 
+        return false;
+    }
 }

Added: cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/PartialWSDLProcessor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/PartialWSDLProcessor.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/PartialWSDLProcessor.java (added)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/PartialWSDLProcessor.java Mon Jan 14 04:32:40 2013
@@ -0,0 +1,237 @@
+/**
+ * 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 java.util.List;
+import java.util.Map;
+
+import javax.wsdl.Binding;
+import javax.wsdl.BindingFault;
+import javax.wsdl.BindingInput;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingOutput;
+import javax.wsdl.Definition;
+import javax.wsdl.Fault;
+import javax.wsdl.Input;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.wsdl.extensions.soap.SOAPBody;
+import javax.wsdl.extensions.soap.SOAPFault;
+import javax.wsdl.extensions.soap.SOAPOperation;
+
+import javax.xml.namespace.QName;
+
+
+import org.apache.cxf.helpers.CastUtils;
+
+
+
+public final class PartialWSDLProcessor  {
+    private static String bindingName = "SoapBinding";
+    private static String style = "document";
+    private static String useLiteral =  "literal";
+    private static String serviceName =  "Service";
+    private static String portName = "Port";
+
+
+    private PartialWSDLProcessor() {
+    }
+
+    
+    public static  boolean isPortTypeExisted(Definition wsdlDefinition, QName name) {
+        Map<QName, PortType>  portTypes = CastUtils.cast(wsdlDefinition.getAllPortTypes());
+        if (portTypes == null || portTypes.isEmpty()) {
+            return false;
+        }
+        String existPortTypeName = null;
+        PortType portType = null;
+        try {
+            for (QName existPortTypeQName : portTypes.keySet()) {
+                existPortTypeName = existPortTypeQName.getLocalPart();
+                if (name.getLocalPart().contains(existPortTypeName)) {
+                    portType = portTypes.get(existPortTypeQName);
+                    break;
+                }
+            }  
+        } catch (Exception e) {
+            portType = null;
+        }
+        if (portType == null) {
+            return false;
+        }    
+        return true;
+    }
+
+    public static boolean isBindingExisted(Definition wsdlDefinition, QName name) {
+        Map<QName, Binding> bindings = CastUtils.cast(wsdlDefinition.getAllBindings());
+        Binding binding = null;
+        if (bindings == null || bindings.isEmpty()) {
+            return false;
+        }
+        try {
+            for (QName existBindingQName : bindings.keySet()) {
+                if (existBindingQName.getLocalPart().contains(name.getLocalPart())) {
+                    binding = bindings.get(existBindingQName);
+                    break;
+                }
+            }
+        } catch (Exception e) {
+            binding = null;
+        }
+        if (binding == null) {
+            return false;
+        }    
+        return true;
+    }
+    public static boolean isServiceExisted(Definition wsdlDefinition, QName name) {
+        if (wsdlDefinition.getService(name) == null) {
+            return false;
+        }
+        return true;
+    }
+
+
+
+
+
+    public static Binding doAppendBinding(Definition wsdlDefinition, String name, PortType portType, 
+                                             ExtensionRegistry extReg) throws Exception {
+        Binding binding = wsdlDefinition.createBinding();
+        binding.setQName(new QName(wsdlDefinition.getTargetNamespace(), name + bindingName));
+        binding.setUndefined(false);
+        binding.setPortType(portType);
+        setSoapBindingExtElement(wsdlDefinition, binding, extReg);
+        addBindingOperation(wsdlDefinition, portType, binding, extReg);
+        return binding;
+
+    
+    }
+
+    private static void setSoapBindingExtElement(Definition wsdlDefinition, Binding binding,
+                                                 ExtensionRegistry extReg) throws Exception {
+        SOAPBindingUtil.addSOAPNamespace(wsdlDefinition, false);
+        SOAPBinding 
+            soapBinding = SOAPBindingUtil.createSoapBinding(extReg, false);
+        soapBinding.setStyle(style);
+        binding.addExtensibilityElement(soapBinding);
+    }
+
+    @SuppressWarnings("unchecked")
+    private static void addBindingOperation(Definition wsdlDefinition, PortType portType, Binding binding, 
+                                            ExtensionRegistry extReg) throws Exception {
+        List<Operation> ops = portType.getOperations();
+        for (Operation op : ops) {
+            BindingOperation bindingOperation = wsdlDefinition.createBindingOperation();
+            setSoapOperationExtElement(bindingOperation, extReg);
+            bindingOperation.setName(op.getName());
+            if (op.getInput() != null) {
+                bindingOperation.setBindingInput(getBindingInput(op.getInput(), wsdlDefinition, extReg));
+            }
+            if (op.getOutput() != null) {
+                bindingOperation.setBindingOutput(getBindingOutput(op.getOutput(), wsdlDefinition, extReg));
+            }
+            if (op.getFaults() != null && op.getFaults().size() > 0) {
+                addSoapFaults(op, bindingOperation, wsdlDefinition, extReg);
+            }
+            bindingOperation.setOperation(op);
+            binding.addBindingOperation(bindingOperation);
+        }
+    }
+    
+    
+    
+    
+    private static void setSoapOperationExtElement(BindingOperation bo, ExtensionRegistry extReg) throws Exception {
+        SOAPOperation soapOperation = SOAPBindingUtil.createSoapOperation(extReg, false);
+        soapOperation.setStyle(style);
+        soapOperation.setSoapActionURI("");
+        bo.addExtensibilityElement(soapOperation);
+    }
+
+    
+    
+    private static BindingInput getBindingInput(Input input, Definition wsdlDefinition,
+                                                ExtensionRegistry extReg) throws Exception {
+        BindingInput bi = wsdlDefinition.createBindingInput();
+        bi.setName(input.getName());
+        bi.addExtensibilityElement(getSoapBody(BindingInput.class, extReg));
+        return bi;
+    }
+
+    
+    private static BindingOutput getBindingOutput(Output output, Definition wsdlDefinition, 
+                                                  ExtensionRegistry extReg) throws Exception {
+        BindingOutput bo = wsdlDefinition.createBindingOutput();
+        bo.setName(output.getName());
+        bo.addExtensibilityElement(getSoapBody(BindingOutput.class, extReg));
+        return bo;
+    }
+
+    private static SOAPBody getSoapBody(Class<?> parent, ExtensionRegistry extReg) throws Exception {
+        SOAPBody soapBody = SOAPBindingUtil.createSoapBody(extReg, parent, false);
+        soapBody.setUse(useLiteral);
+        return soapBody;
+    }
+
+    private static void addSoapFaults(Operation op, BindingOperation bindingOperation, Definition wsdlDefinition, 
+                                      ExtensionRegistry extReg) throws Exception {
+        Map<String, Fault> faults = CastUtils.cast(op.getFaults());
+        for (Fault fault : faults.values()) {
+            BindingFault bf = wsdlDefinition.createBindingFault();
+            bf.setName(fault.getName());
+            setSoapFaultExtElement(bf, extReg);
+            bindingOperation.addBindingFault(bf);
+        }
+    }
+
+    private static void setSoapFaultExtElement(BindingFault bf, ExtensionRegistry extReg) throws Exception {
+        SOAPFault soapFault = SOAPBindingUtil.createSoapFault(extReg, false);
+        soapFault.setName(bf.getName());
+        soapFault.setUse(useLiteral);
+        bf.addExtensibilityElement(soapFault);
+    }
+    
+    public static SOAPAddress setAddrElement(Definition wsdlDefinition, Port port, 
+                                             ExtensionRegistry extReg) throws Exception {
+        SOAPAddress address  = SOAPBindingUtil.createSoapAddress(extReg, false);
+        address.setLocationURI("dummy");
+        return address;
+    }
+    public static javax.wsdl.Service doAppendService(Definition wsdlDefinition, 
+                                                     String existPortName, ExtensionRegistry
+                                                     extReg, Binding binding) throws Exception {
+        javax.wsdl.Service wsdlService = wsdlDefinition.createService();
+        wsdlService.setQName(new QName(wsdlDefinition.getTargetNamespace(), existPortName + serviceName));
+        Port port = wsdlDefinition.createPort();
+        port.setName(existPortName + portName);
+        port.setBinding(binding);
+        SOAPAddress address = PartialWSDLProcessor.setAddrElement(wsdlDefinition, port, extReg);
+        port.addExtensibilityElement(address);
+        wsdlService.addPort(port);
+        return wsdlService;
+    }
+    
+
+}

Added: cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/SOAPBindingUtil.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/SOAPBindingUtil.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/SOAPBindingUtil.java (added)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/SOAPBindingUtil.java Mon Jan 14 04:32:40 2013
@@ -0,0 +1,491 @@
+/**
+ * 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 java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.wsdl.Binding;
+import javax.wsdl.BindingFault;
+import javax.wsdl.BindingInput;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingOutput;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.wsdl.extensions.soap.SOAPBody;
+import javax.wsdl.extensions.soap.SOAPFault;
+import javax.wsdl.extensions.soap.SOAPHeader;
+import javax.wsdl.extensions.soap.SOAPOperation;
+import javax.wsdl.extensions.soap12.SOAP12Address;
+import javax.wsdl.extensions.soap12.SOAP12Binding;
+import javax.wsdl.extensions.soap12.SOAP12Body;
+import javax.wsdl.extensions.soap12.SOAP12Fault;
+import javax.wsdl.extensions.soap12.SOAP12Header;
+import javax.wsdl.extensions.soap12.SOAP12Operation;
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.common.WSDLConstants;
+import org.apache.cxf.common.util.ExtensionInvocationHandler;
+import org.apache.cxf.common.util.StringUtils;
+
+
+public final class SOAPBindingUtil {
+    private static Map<String, String> bindingMap = new HashMap<String, String>();
+
+    static {
+        bindingMap.put("RPC", "SOAPBinding.Style.RPC");
+        bindingMap.put("DOCUMENT", "SOAPBinding.Style.DOCUMENT");
+        bindingMap.put("LITERAL", "SOAPBinding.Use.LITERAL");
+        bindingMap.put("ENCODED", "SOAPBinding.Use.ENCODED");
+        bindingMap.put("BARE", "SOAPBinding.ParameterStyle.BARE");
+        bindingMap.put("WRAPPED", "SOAPBinding.ParameterStyle.WRAPPED");
+    }
+
+    private SOAPBindingUtil() {
+    }
+
+    public static String getBindingAnnotation(String key) {
+        return bindingMap.get(key.toUpperCase());
+    }
+
+    public static <T> T getProxy(Class<T> cls, Object obj) {
+        InvocationHandler ih = new ExtensionInvocationHandler(obj);
+        /*
+         * If we put proxies into the loader of the proxied class, they'll just pile up.
+         */
+        Object proxy = null;
+        try {
+            proxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
+                                              new Class[] {cls}, ih);
+        } catch (Throwable ex) {
+            // Using cls classloader as a fallback to make it work within OSGi  
+            ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
+            if (contextLoader != cls.getClassLoader()) {
+                proxy = Proxy.newProxyInstance(cls.getClassLoader(),
+                                              new Class[] {cls}, ih);
+            } else {
+                if (ex instanceof RuntimeException) {
+                    throw (RuntimeException)ex;
+                }
+                throw new RuntimeException(ex);
+            }
+        }
+        return cls.cast(proxy);
+    }
+
+    public static boolean isSOAPBinding(Binding binding) {
+        for (Object obj : binding.getExtensibilityElements()) {
+            if (isSOAPBinding(obj)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static String getBindingStyle(Binding binding) {
+        for (Object obj : binding.getExtensibilityElements()) {
+            if (isSOAPBinding(obj)) {
+                return getSoapBinding(obj).getStyle();
+            }
+        }
+        return "";
+    }
+
+    public static SOAPOperation getSoapOperation(List<ExtensibilityElement> exts) {
+        if (exts != null) {
+            for (ExtensibilityElement ext : exts) {
+                if (isSOAPOperation(ext)) {
+                    return getSoapOperation(ext);
+                }
+            }
+        }
+        return null;
+    }
+
+    public static SOAPOperation getSoapOperation(Object obj) {
+        if (isSOAPOperation(obj)) {
+            return getProxy(SOAPOperation.class, obj);
+        }
+        return null;
+    }
+
+    public static String getSOAPOperationStyle(BindingOperation bop) {
+        String style = "";
+        if (bop != null) {
+            for (Object obj : bop.getExtensibilityElements()) {
+                if (isSOAPOperation(obj)) {
+                    style = getSoapOperation(obj).getStyle();
+                    break;
+                }
+            }
+        }
+        return style;
+    }
+
+    public static SOAPBody getBindingInputSOAPBody(BindingOperation bop) {
+        BindingInput bindingInput = bop.getBindingInput();
+        if (bindingInput != null) {
+            for (Object obj : bindingInput.getExtensibilityElements()) {
+                if (isSOAPBody(obj)) {
+                    return getSoapBody(obj);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    public static SOAPBody getBindingOutputSOAPBody(BindingOperation bop) {
+        BindingOutput bindingOutput = bop.getBindingOutput();
+        if (bindingOutput != null) {
+            for (Object obj : bindingOutput.getExtensibilityElements()) {
+                if (isSOAPBody(obj)) {
+                    return getSoapBody(obj);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    public static SOAPBody getSoapBody(List<ExtensibilityElement> exts) {
+        if (exts != null) {
+            for (ExtensibilityElement ext : exts) {
+                if (isSOAPBody(ext)) {
+                    return getSoapBody(ext);
+                }
+            }
+        }
+        return null;
+    }
+
+    public static SOAPBody getSoapBody(Object obj) {
+        if (isSOAPBody(obj)) {
+            return getProxy(SOAPBody.class, obj);
+        }
+        return null;
+    }
+
+    public static boolean isSOAPBody(Object obj) {
+        return obj instanceof SOAPBody || obj instanceof SOAP12Body;
+    }
+
+    public static boolean isSOAPHeader(Object obj) {
+        return obj instanceof SOAPHeader || obj instanceof SOAP12Header;
+    }
+
+    public static List<SOAPHeader> getSoapHeaders(List<ExtensibilityElement> exts) {
+        List<SOAPHeader> headers = new ArrayList<SOAPHeader>();
+        if (exts != null) {
+            for (ExtensibilityElement ext : exts) {
+                if (isSOAPHeader(ext)) {
+                    headers.add(getSoapHeader(ext));
+                }
+            }
+        }
+        return headers;
+    }
+
+    public static SOAPHeader getSoapHeader(Object obj) {
+        if (isSOAPHeader(obj)) {
+            return getProxy(SOAPHeader.class, obj);
+        }
+        return null;
+    }
+
+    public static SOAPAddress getSoapAddress(Object obj) {
+        if (isSOAPAddress(obj)) {
+            return getProxy(SOAPAddress.class, obj);
+        }
+        return null;
+    }
+
+    public static boolean isSOAPAddress(Object obj) {
+        return obj instanceof SOAPAddress || obj instanceof SOAP12Address;
+    }
+
+    public static SOAPHeader getBindingInputSOAPHeader(BindingOperation bop) {
+        BindingInput bindingInput = bop.getBindingInput();
+        if (bindingInput != null) {
+            for (Object obj : bindingInput.getExtensibilityElements()) {
+                if (isSOAPHeader(obj)) {
+                    return getProxy(SOAPHeader.class, obj);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    public static SOAPHeader getBindingOutputSOAPHeader(BindingOperation bop) {
+        BindingOutput bindingOutput = bop.getBindingOutput();
+        if (bindingOutput != null) {
+            for (Object obj : bindingOutput.getExtensibilityElements()) {
+                if (isSOAPHeader(obj)) {
+                    return getProxy(SOAPHeader.class, obj);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    public static SOAPBinding getSoapBinding(List<ExtensibilityElement> exts) {
+        for (ExtensibilityElement ext : exts) {
+            if (isSOAPBinding(ext)) {
+                return getSoapBinding(ext);
+            }
+        }
+        return null;
+    }
+
+    public static SOAPBinding getSoapBinding(Object obj) {
+        if (isSOAPBinding(obj)) {
+            return getProxy(SOAPBinding.class, obj);
+        }
+        return null;
+    }
+
+    public static boolean isSOAPBinding(Object obj) {
+        return obj instanceof SOAPBinding || obj instanceof SOAP12Binding;
+    }
+
+    public static List<SOAPFault> getBindingOperationSoapFaults(BindingOperation bop) {
+        List<SOAPFault> faults = new ArrayList<SOAPFault>();
+        for (Object obj : bop.getBindingFaults().values()) {
+            if (!(obj instanceof BindingFault)) {
+                continue;
+            }
+            BindingFault faultElement = (BindingFault) obj;
+            for (Object flt : faultElement.getExtensibilityElements()) {
+                SOAPFault fault = getSoapFault(flt);
+                if (fault != null) {
+                    faults.add(fault);
+                }
+            }
+        }
+        return faults;
+    }
+
+    public static SOAPFault getSoapFault(Object obj) {
+        if (isSOAPFault(obj)) {
+            return getProxy(SOAPFault.class, obj);
+        }
+        return null;
+    }
+
+    public static boolean isMixedStyle(Binding binding) {
+        String bindingStyle = "";
+        String previousOpStyle = "";
+        String style = "";
+        
+        for (Object obj : binding.getExtensibilityElements()) {
+            if (isSOAPBinding(obj)) {
+                SOAPBinding soapBinding = getSoapBinding(obj);
+                bindingStyle = soapBinding.getStyle();
+                if (bindingStyle == null) {
+                    bindingStyle = "";
+                }
+            }
+        }
+        for (Object bobj : binding.getBindingOperations()) {
+            BindingOperation bop = (BindingOperation)bobj;
+            for (Object obj : bop.getExtensibilityElements()) {
+                if (isSOAPOperation(obj)) {
+                    SOAPOperation soapOperation = getSoapOperation(obj);
+                    style = soapOperation.getStyle();
+                    if (style == null) {
+                        style = "";
+                    }
+
+                    if ("".equals(bindingStyle) && "".equals(previousOpStyle) || "".equals(bindingStyle)
+                        && previousOpStyle.equalsIgnoreCase(style)) {
+                        previousOpStyle = style;
+
+                    } else if (!"".equals(bindingStyle) && "".equals(previousOpStyle)
+                               && bindingStyle.equalsIgnoreCase(style)
+                               || bindingStyle.equalsIgnoreCase(previousOpStyle)
+                               && bindingStyle.equalsIgnoreCase(style)) {
+                        previousOpStyle = style;
+                    } else if (!"".equals(bindingStyle) && "".equals(style) && "".equals(previousOpStyle)) {
+                        continue;
+                    } else {
+                        return true;
+                    }
+
+                }
+
+            }
+        }
+        return false;
+    }
+
+    public static String getCanonicalBindingStyle(Binding binding) {
+        String bindingStyle = getBindingStyle(binding);
+        if (!StringUtils.isEmpty(bindingStyle)) {
+            return bindingStyle;
+        }
+        for (Object bobj : binding.getBindingOperations()) {
+            BindingOperation bindingOp = (BindingOperation)bobj;
+            String bopStyle = getSOAPOperationStyle(bindingOp);
+            if (!StringUtils.isEmpty(bopStyle)) {
+                return bopStyle;
+            }
+        }
+        return "";
+
+    }
+
+    public static boolean isSOAPOperation(Object obj) {
+        return obj instanceof SOAPOperation || obj instanceof SOAP12Operation;
+    }
+
+    public static boolean isSOAPFault(Object obj) {
+        return obj instanceof SOAPFault || obj instanceof SOAP12Fault;
+    }
+
+    public static SOAPAddress createSoapAddress(ExtensionRegistry extReg, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(Port.class,
+                                                               WSDLConstants.QNAME_SOAP12_BINDING_ADDRESS);
+        } else {
+            extElement = extReg.createExtension(Port.class,
+                                                             WSDLConstants.QNAME_SOAP_BINDING_ADDRESS);
+        }
+        return getSoapAddress(extElement);
+    }
+
+    public static SOAPBody createSoapBody(ExtensionRegistry extReg, Class<?> clz, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(clz, new QName(WSDLConstants.NS_SOAP12,
+                                                                           "body"));
+        } else {
+            extElement = extReg.createExtension(clz, new QName(WSDLConstants.NS_SOAP11,
+                                                                         "body"));
+        }
+        return getSoapBody(extElement);
+    }
+
+    public static SOAPBinding createSoapBinding(ExtensionRegistry extReg, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(Binding.class,
+                                                               new QName(WSDLConstants.NS_SOAP12,
+                                                                         "binding"));
+            ((SOAP12Binding)extElement).setTransportURI(WSDLConstants.NS_SOAP_HTTP_TRANSPORT);
+        } else {
+            extElement = extReg.createExtension(Binding.class,
+                                                             new QName(WSDLConstants.NS_SOAP11,
+                                                                       "binding"));
+            ((SOAPBinding)extElement).setTransportURI(WSDLConstants.NS_SOAP_HTTP_TRANSPORT);
+        }
+        return getSoapBinding(extElement);
+    }
+
+    public static SOAPOperation createSoapOperation(ExtensionRegistry extReg, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(BindingOperation.class,
+                                                                 new QName(WSDLConstants.NS_SOAP12,
+                                                                           "operation"));
+        } else {
+            extElement = extReg.createExtension(BindingOperation.class,
+                                                               new QName(WSDLConstants.NS_SOAP11,
+                                                                         "operation"));
+        }
+        return getSoapOperation(extElement);
+    }
+
+    public static SOAPFault createSoapFault(ExtensionRegistry extReg, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(BindingFault.class,
+                                                             new QName(WSDLConstants.NS_SOAP12,
+                                                                       "fault"));
+        } else {
+            extElement = extReg.createExtension(BindingFault.class,
+                                                           new QName(WSDLConstants.NS_SOAP11,
+                                                                     "fault"));
+        }
+        return getSoapFault(extElement);
+    }
+
+    public static SOAPHeader createSoapHeader(ExtensionRegistry extReg, Class<?> clz, boolean isSOAP12)
+        throws WSDLException {
+        ExtensibilityElement extElement = null;
+        if (isSOAP12) {
+            extElement = extReg.createExtension(clz,
+                                                              new QName(WSDLConstants.NS_SOAP12,
+                                                                        "header"));
+        } else {
+            extElement = extReg.createExtension(clz,
+                                                            new QName(WSDLConstants.NS_SOAP11,
+                                                                      "header"));
+        }
+        return getSoapHeader(extElement);
+    }
+
+
+    public static void addSOAPNamespace(Definition definition, boolean isSOAP12) {
+        Map<?, ?> namespaces = definition.getNamespaces();
+        if (isSOAP12
+            && !namespaces.values().contains(WSDLConstants.NS_SOAP12)) {
+            definition.addNamespace("soap12", WSDLConstants.NS_SOAP12);
+        } else if (!namespaces.values().contains(WSDLConstants.NS_SOAP11)) {
+            definition.addNamespace("soap", WSDLConstants.NS_SOAP11);
+        }
+    }
+
+    public static javax.jws.soap.SOAPBinding.Style getSoapStyle(String soapStyle) {
+        if ("".equals(soapStyle)) {
+            return null;
+        } else if ("RPC".equalsIgnoreCase(soapStyle)) {
+            return javax.jws.soap.SOAPBinding.Style.RPC;
+        } else {
+            return javax.jws.soap.SOAPBinding.Style.DOCUMENT;
+        }
+    }
+
+    public static javax.jws.soap.SOAPBinding.Use getSoapUse(String soapUse) {
+        if ("".equals(soapUse)) {
+            return null;
+        } else if ("ENCODED".equalsIgnoreCase(soapUse)) {
+            return javax.jws.soap.SOAPBinding.Use.ENCODED;
+        } else {
+            return javax.jws.soap.SOAPBinding.Use.LITERAL;
+        }
+    }
+
+}

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java?rev=1432798&r1=1432797&r2=1432798&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java Mon Jan 14 04:32:40 2013
@@ -22,15 +22,21 @@ package org.apache.cxf.wsdl11;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.logging.Logger;
 
+import javax.wsdl.Binding;
 import javax.wsdl.Definition;
+import javax.wsdl.PortType;
 import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.factory.WSDLFactory;
 import javax.xml.namespace.QName;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.ServiceImpl;
 import org.apache.cxf.service.factory.AbstractServiceFactoryBean;
@@ -136,7 +142,34 @@ public class WSDLServiceFactory extends 
         } else {
             javax.wsdl.Service wsdlService = definition.getService(serviceName);
             if (wsdlService == null) {
-                throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
+                if ((!PartialWSDLProcessor.isServiceExisted(definition, serviceName))
+                    && (!PartialWSDLProcessor.isBindingExisted(definition, serviceName))
+                    && (PartialWSDLProcessor.isPortTypeExisted(definition, serviceName))) {
+                    try {
+                        Map<QName, PortType> portTypes = CastUtils.cast(definition.getPortTypes());
+                        String existPortName = null;
+                        PortType portType = null;
+                        for (QName existPortQName : portTypes.keySet()) {
+                            existPortName = existPortQName.getLocalPart();
+                            if (serviceName.getLocalPart().contains(existPortName)) {
+                                portType = portTypes.get(existPortQName);
+                                break;
+                            }
+                        }
+                        WSDLFactory factory = WSDLFactory.newInstance();
+                        ExtensionRegistry extReg = factory.newPopulatedExtensionRegistry();
+                        Binding binding = PartialWSDLProcessor.doAppendBinding(definition, 
+                                                                               existPortName, portType, extReg);
+                        definition.addBinding(binding);
+                        wsdlService = PartialWSDLProcessor.doAppendService(definition, 
+                                                                           existPortName, extReg, binding);
+                        definition.addService(wsdlService);
+                    } catch (Exception e) {
+                        throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
+                    }
+                } else {
+                    throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE_EXC", LOG, serviceName));
+                }
             }
             try {
                 services = new WSDLServiceBuilder(getBus()).buildServices(definition, 

Added: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial1.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial1.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial1.java (added)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial1.java Mon Jan 14 04:32:40 2013
@@ -0,0 +1,29 @@
+/**
+ * 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.jaxws;
+
+import javax.jws.WebService;
+
+@WebService(wsdlLocation = "partialwsdl/AddNumbersImplPartial1Service.wsdl")
+public class AddNumbersImplPartial1 {
+    public int addTwoNumbers(int number1, int number2) {
+        return number1 + number2;
+    }
+}

Added: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial2.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial2.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial2.java (added)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/AddNumbersImplPartial2.java Mon Jan 14 04:32:40 2013
@@ -0,0 +1,28 @@
+/**
+ * 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.jaxws;
+import javax.jws.WebService;
+@WebService(wsdlLocation = "partialwsdl/AddNumbersImplPartial2Service.wsdl")
+
+public class AddNumbersImplPartial2 {
+    public int addTwoNumbers(int number1, int number2) {
+        return number1 + number2;
+    }
+}

Added: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ClientServerPartialWsdlTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ClientServerPartialWsdlTest.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ClientServerPartialWsdlTest.java (added)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ClientServerPartialWsdlTest.java Mon Jan 14 04:32:40 2013
@@ -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.systest.jaxws;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;
+
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class ClientServerPartialWsdlTest extends AbstractBusClientServerTestBase {
+    static final String PORT = allocatePort(ServerPartialWsdl.class); 
+    
+    private final QName serviceName1 = new QName("http://jaxws.systest.cxf.apache.org/",
+                                                "AddNumbersImplPartial1Service");    
+    private final QName portName1 = new QName("http://jaxws.systest.cxf.apache.org/",
+                                             "AddNumbersImplPartial1Port");
+    private final QName serviceName2 = new QName("http://jaxws.systest.cxf.apache.org/",
+                                                "AddNumbersImplPartial2Service");    
+    private final QName portName2 = new QName("http://jaxws.systest.cxf.apache.org/",
+                                             "AddNumbersImplPartial2Port");
+    
+
+
+    @BeforeClass
+    public static void startServers() throws Exception {                    
+       
+        assertTrue("server did not launch correctly", launchServer(ServerPartialWsdl.class, true));
+        
+    }
+    
+    @Test
+    public void testCXF4676Partial1() throws Exception {
+        DynamicClientFactory dcf = DynamicClientFactory.newInstance();
+        Client client = dcf.createClient("http://localhost:"
+            + PORT + "/AddNumbersImplPartial1Service?wsdl", serviceName1, portName1);    
+        updateAddressPort(client, PORT);
+        Object[] result = client.invoke("addTwoNumbers", 10, 20);
+        assertNotNull("no response received from service", result);
+        assertEquals(30, result[0]);
+    }
+    
+    @Test
+    public void testCXF4676partial2() throws Exception {
+        DynamicClientFactory dcf = DynamicClientFactory.newInstance();
+        Client client = dcf.createClient("http://localhost:"
+            + PORT + "/AddNumbersImplPartial2Service?wsdl", serviceName2, portName2);
+        updateAddressPort(client, PORT);
+        Object[] result = client.invoke("addTwoNumbers", 10, 20);
+        assertNotNull("no response received from service", result);
+        assertEquals(30, result[0]);
+                    
+    }
+
+}

Added: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ServerPartialWsdl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ServerPartialWsdl.java?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ServerPartialWsdl.java (added)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/ServerPartialWsdl.java Mon Jan 14 04:32:40 2013
@@ -0,0 +1,53 @@
+/**
+ * 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.jaxws;
+
+import javax.xml.ws.Endpoint;
+
+
+//import org.apache.cxf.greeter_control.GreeterImplBase;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+
+public class ServerPartialWsdl extends AbstractBusTestServerBase {
+    static final String PORT = allocatePort(ServerPartialWsdl.class);
+
+    protected void run() {
+        Object implementor1 = new AddNumbersImplPartial1();
+        String address1 = "http://localhost:"
+            + PORT + "/AddNumbersImplPartial1Service";
+        Endpoint.publish(address1, implementor1);
+        Object implementor2 = new AddNumbersImplPartial2();
+        String address2 = "http://localhost:"
+            + PORT + "/AddNumbersImplPartial2Service";
+        Endpoint.publish(address2, implementor2);
+    }
+
+    public static void main(String[] args) {
+        try {
+            ServerPartialWsdl s = new ServerPartialWsdl();
+            s.start();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.exit(-1);
+        } finally {
+            System.out.println("done!");
+        }
+    }
+}

Added: cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service.wsdl?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service.wsdl (added)
+++ cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service.wsdl Mon Jan 14 04:32:40 2013
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- a partial wsdl to test jsr 224 5.2.5.5 -->
+<!--
+                * 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.
+        -->
+
+<definitions 
+targetNamespace="http://jaxws.systest.cxf.apache.org/" 
+name="AddNumbersImplPartial1Service" 
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+xmlns:tns="http://jaxws.systest.cxf.apache.org/"
+xmlns="http://schemas.xmlsoap.org/wsdl/">
+  <types>
+    <xsd:schema>
+      <xsd:import namespace="http://jaxws.systest.cxf.apache.org/" schemaLocation="AddNumbersImplPartial1Service_schema1.xsd"/>
+    </xsd:schema>
+  </types>
+  <message name="addTwoNumbers">
+    <part name="parameters" element="tns:addTwoNumbers"/>
+  </message>
+  <message name="addTwoNumbersResponse">
+    <part name="parameters" element="tns:addTwoNumbersResponse"/>
+  </message>
+  <portType name="AddNumbersImplPartial1">
+    <operation name="addTwoNumbers">
+      <input message="tns:addTwoNumbers"/>
+      <output message="tns:addTwoNumbersResponse"/>
+    </operation>
+  </portType>
+  <!-- end here -->
+</definitions>

Added: cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service_schema1.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service_schema1.xsd?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service_schema1.xsd (added)
+++ cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial1Service_schema1.xsd Mon Jan 14 04:32:40 2013
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+                * 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.
+        -->
+
+<xs:schema version="1.0"
+	targetNamespace="http://jaxws.systest.cxf.apache.org/"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+	<xs:element name="addTwoNumbers"
+		xmlns:ns1="http://jaxws.systest.cxf.apache.org/">
+
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="arg0" type="xs:int" />
+				<xs:element name="arg1" type="xs:int" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="addTwoNumbersResponse"
+		xmlns:ns2="http://jaxws.systest.cxf.apache.org/">
+
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="return" type="xs:int" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
+

Added: cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service.wsdl?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service.wsdl (added)
+++ cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service.wsdl Mon Jan 14 04:32:40 2013
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- should cause dynamic wsdl gen from code-->
+<!--
+                * 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.
+        -->
+
+<!--
+                * 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.
+        -->
+
+<definitions targetNamespace="http://jaxws.systest.cxf.apache.org/" 
+             name="WebResultCheckService" 
+             xmlns:tns="http://jaxws.systest.cxf.apache.org/"
+             xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+             xmlns="http://schemas.xmlsoap.org/wsdl/">
+</definitions>
+

Added: cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service_schema1.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service_schema1.xsd?rev=1432798&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service_schema1.xsd (added)
+++ cxf/trunk/systests/jaxws/src/test/resources/partialwsdl/AddNumbersImplPartial2Service_schema1.xsd Mon Jan 14 04:32:40 2013
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+                * 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.
+        -->
+
+<xs:schema version="1.0"
+	targetNamespace="http://jaxws.systest.cxf.apache.org/"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+	<xs:element name="addTwoNumbers"
+		xmlns:ns1="http://jaxws.systest.cxf.apache.org/">
+
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="arg0" type="xs:int" />
+				<xs:element name="arg1" type="xs:int" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="addTwoNumbersResponse"
+		xmlns:ns2="http://jaxws.systest.cxf.apache.org/">
+
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="return" type="xs:int" />
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
+



Mime
View raw message