You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2006/10/09 21:19:19 UTC

svn commit: r454465 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/phase/ api/src/main/java/org/apache/cxf/service/model/ api/src/test/java/org/apache/cxf/service/model/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/ rt/bindin...

Author: dandiep
Date: Mon Oct  9 12:19:18 2006
New Revision: 454465

URL: http://svn.apache.org/viewvc?view=rev&rev=454465
Log:
o Simple WSDL generation now works. However, schemas still aren't generated.
o Add a convenience constructor to WSDLServiceFactor.
o Remove getWSDL11Extensors from the service model as its really only needed
  in the ServiceWSDLBuilder and I'd rather not put the WSDL 2 stuff there too.
o Fix a few bugs with namespaces in service generation.

Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/MessagePartInfo.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/UnwrappedOperationInfo.java
    incubator/cxf/trunk/api/src/test/java/org/apache/cxf/service/model/MessagePartInfoTest.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/HeaderUtil.java
    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/SoapDestinationFactory.java
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java
    incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java
    incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBServiceModelInitializer.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/servlet/ServletDestination.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstTest.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SoapBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/JettyHTTPDestination.java

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java Mon Oct  9 12:19:18 2006
@@ -126,8 +126,8 @@
             try {
                 Interceptor currentInterceptor = iterator.next();
                
-                if (LOG.isLoggable(Level.FINE)) {
-                    LOG.fine("Invoking handleMessage on interceptor " + currentInterceptor);
+                if (LOG.isLoggable(Level.INFO)) {
+                    LOG.info("Invoking handleMessage on interceptor " + currentInterceptor);
                 }
                 currentInterceptor.handleMessage(message);
             } catch (Exception ex) {

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java Mon Oct  9 12:19:18 2006
@@ -20,14 +20,11 @@
 package org.apache.cxf.service.model;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicReference;
 
-import javax.wsdl.extensions.ExtensibilityElement;
-
 public abstract class AbstractPropertiesHolder {
     private AtomicReference<Map<String, Object>> propertyMap = new AtomicReference<Map<String, Object>>();
     private AtomicReference<Object[]> extensors = new AtomicReference<Object[]>();
@@ -99,34 +96,8 @@
         return list;
     }
 
-    public List<ExtensibilityElement> getWSDL11Extensors() {
-        if (extensors.get() == null) {
-            return null;
-        }
-        List<ExtensibilityElement> list
-            = new ArrayList<ExtensibilityElement>(extensors.get().length);
-        for (Object obj : extensors.get()) {
-            if (obj instanceof ExtensibilityElement) {
-                list.add((ExtensibilityElement)obj);
-            }
-        }
-        return Collections.unmodifiableList(list);
-    }
-    /*
-    //eventually for wsdl20 support
-    public List<org.apache.woden.wsdl20.extensions.ExtensionElement> getWSDL12Extensors() {
-        if (extensors.get() == null) {
-            return null;
-        }
-        List<ExtensionElement> list
-            = new ArrayList<ExtensionElement>(extensors.get().length);
-        for (Object obj : extensors.get()) {
-            if (obj instanceof ExtensionElement) {
-                list.add((ExtensionElement)obj);
-            }
-        }
-        return Collections.unmodifiableList(list);
+    public AtomicReference<Object[]> getExtensors() {
+        return extensors;
     }
-    */
 
 }

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/MessagePartInfo.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/MessagePartInfo.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/MessagePartInfo.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/MessagePartInfo.java Mon Oct  9 12:19:18 2006
@@ -27,6 +27,7 @@
     
     private boolean isElement;
     private QName typeName;
+    private QName elementName;
     private boolean isInSoapHeader;
 
     MessagePartInfo(QName n, AbstractMessageContainer info) {
@@ -49,7 +50,7 @@
     
     public QName getConcreteName() {
         if (isElement) {
-            return typeName;
+            return elementName;
         } else {
             return pname;
         }
@@ -63,16 +64,10 @@
     }
     
     public QName getElementQName() {
-        if (isElement) {
-            return typeName; 
-        }
-        return null;
+        return elementName;
     }
     public QName getTypeQName() {
-        if (!isElement) {
-            return typeName; 
-        }
-        return null;
+        return typeName;
     }
     public void setTypeQName(QName qn) {
         isElement = false;
@@ -80,7 +75,7 @@
     }
     public void setElementQName(QName qn) {
         isElement = true;
-        typeName = qn;
+        elementName = qn;
     }
     
     public AbstractMessageContainer getMessageInfo() {

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/UnwrappedOperationInfo.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/UnwrappedOperationInfo.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/UnwrappedOperationInfo.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/UnwrappedOperationInfo.java Mon Oct  9 12:19:18 2006
@@ -21,8 +21,6 @@
 
 import java.util.List;
 
-import javax.wsdl.extensions.ExtensibilityElement;
-
 public class UnwrappedOperationInfo extends OperationInfo {
     OperationInfo wrappedOp;
 
@@ -64,7 +62,4 @@
         return wrappedOp.getExtensors(cls);
     }
 
-    public List<ExtensibilityElement> getWSDL11Extensors() {
-        return wrappedOp.getWSDL11Extensors();
-    }
 }

Modified: incubator/cxf/trunk/api/src/test/java/org/apache/cxf/service/model/MessagePartInfoTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/test/java/org/apache/cxf/service/model/MessagePartInfoTest.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/api/src/test/java/org/apache/cxf/service/model/MessagePartInfoTest.java (original)
+++ incubator/cxf/trunk/api/src/test/java/org/apache/cxf/service/model/MessagePartInfoTest.java Mon Oct  9 12:19:18 2006
@@ -34,8 +34,6 @@
         messagePartInfo = new MessagePartInfo(new QName(
             "http://apache.org/hello_world_soap_http", "testMessagePart"), null);
         messagePartInfo.setIsElement(true);
-        messagePartInfo.setElementQName(new QName(
-            "http://apache.org/hello_world_soap_http/types", "testElement"));
     }
     
     public void tearDown() throws Exception {
@@ -55,6 +53,8 @@
     }
 
     public void testElement() {
+        messagePartInfo.setElementQName(new QName("http://apache.org/hello_world_soap_http/types",
+                                                  "testElement"));
         assertTrue(messagePartInfo.isElement());
         assertEquals(messagePartInfo.getElementQName().getLocalPart(), "testElement");
         assertEquals(messagePartInfo.getElementQName().getNamespaceURI(),

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/HeaderUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/HeaderUtil.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/HeaderUtil.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/HeaderUtil.java Mon Oct  9 12:19:18 2006
@@ -44,7 +44,7 @@
         if (obj == null) {
             Set<QName> set = new HashSet<QName>();
             List<MessagePartInfo> mps = bmi.getMessageInfo().getMessageParts();
-            for (ExtensibilityElement ext : bmi.getWSDL11Extensors()) {
+            for (ExtensibilityElement ext : bmi.getExtensors(ExtensibilityElement.class)) {
                 if (SOAPBindingUtil.isSOAPHeader(ext)) {
                     SoapHeader header = SOAPBindingUtil.getSoapHeader(ext);
                     String pn = header.getPart();

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=454465&r1=454464&r2=454465
==============================================================================
--- 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 Mon Oct  9 12:19:18 2006
@@ -181,7 +181,7 @@
         initializeBindingInfo(service, binding, bi);
 
         org.apache.cxf.tools.common.extensions.soap.SoapBinding wSoapBinding
-            = SOAPBindingUtil.getSoapBinding(bi.getWSDL11Extensors());
+            = SOAPBindingUtil.getSoapBinding(bi.getExtensors(ExtensibilityElement.class));
         
         bi.setTransportURI(wSoapBinding.getTransportURI());
         bi.setStyle(wSoapBinding.getStyle());
@@ -196,7 +196,8 @@
     private void initializeBindingOperation(SoapBindingInfo bi, BindingOperationInfo boi) {
         SoapOperationInfo soi = new SoapOperationInfo();
 
-        SoapOperation soapOp = SOAPBindingUtil.getSoapOperation(boi.getWSDL11Extensors());
+        SoapOperation soapOp = 
+            SOAPBindingUtil.getSoapOperation(boi.getExtensors(ExtensibilityElement.class));
         
         if (soapOp != null) {
             String action = soapOp.getSoapActionURI();
@@ -226,7 +227,8 @@
         List<MessagePartInfo> messageParts = new ArrayList<MessagePartInfo>();
         messageParts.addAll(msg.getMessageParts());
 
-        List<SoapHeader> headers = SOAPBindingUtil.getSoapHeaders(bmsg.getWSDL11Extensors());
+        List<SoapHeader> headers = 
+            SOAPBindingUtil.getSoapHeaders(bmsg.getExtensors(ExtensibilityElement.class));
         if (headers != null) {
             for (SoapHeader header : headers) {
                 SoapHeaderInfo headerInfo = new SoapHeaderInfo();
@@ -245,7 +247,7 @@
         }
 
         SoapBodyInfo bodyInfo = new SoapBodyInfo();
-        SoapBody soapBody = SOAPBindingUtil.getSoapBody(bmsg.getWSDL11Extensors());
+        SoapBody soapBody = SOAPBindingUtil.getSoapBody(bmsg.getExtensors(ExtensibilityElement.class));
         List parts = null;
         if (soapBody == null) {
             MIMEMultipartRelated mmr = bmsg.getExtensor(MIMEMultipartRelated.class);

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapDestinationFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapDestinationFactory.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapDestinationFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapDestinationFactory.java Mon Oct  9 12:19:18 2006
@@ -30,12 +30,16 @@
 import javax.wsdl.extensions.soap.SOAPAddress;
 
 import com.ibm.wsdl.extensions.soap.SOAPAddressImpl;
+import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
+import com.ibm.wsdl.extensions.soap.SOAPOperationImpl;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
+import org.apache.cxf.binding.soap.model.SoapOperationInfo;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.tools.common.extensions.soap.SoapAddress;
@@ -91,11 +95,33 @@
     }
 
     public void createPortExtensors(EndpointInfo ei, Service service) {
+        SoapBindingInfo bi = (SoapBindingInfo) ei.getBinding();
+        if (bi.getSoapVersion() instanceof Soap11) {
+            createSoap11Extensors(ei, bi);
+        }
+    }
+
+    private void createSoap11Extensors(EndpointInfo ei, SoapBindingInfo bi) {
         SOAPAddress address = new SOAPAddressImpl();
         address.setLocationURI(ei.getAddress());
-        address.setRequired(Boolean.TRUE);
-
+        
         ei.addExtensor(address);
+        
+        
+        SOAPBindingImpl sbind = new SOAPBindingImpl();
+        sbind.setStyle(bi.getStyle());
+        sbind.setTransportURI(bi.getTransportURI());
+        bi.addExtensor(sbind);
+        
+        for (BindingOperationInfo b : bi.getOperations()) {
+            SoapOperationInfo soi = b.getExtensor(SoapOperationInfo.class);
+            
+            SOAPOperationImpl op = new SOAPOperationImpl();
+            op.setSoapActionURI(soi.getAction());
+            op.setStyle(soi.getStyle());
+            
+            b.addExtensor(op);
+        }
     }
 
     public EndpointInfo createEndpointInfo(ServiceInfo serviceInfo, BindingInfo b, Port port) {

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBinding.java Mon Oct  9 12:19:18 2006
@@ -18,33 +18,15 @@
  */
 package org.apache.cxf.binding.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.cxf.binding.Binding;
-import org.apache.cxf.binding.xml.interceptor.XMLFaultInInterceptor;
-import org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor;
 import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
-import org.apache.cxf.interceptor.Interceptor;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.message.XMLMessage;
 
 public class XMLBinding extends AbstractBasicInterceptorProvider implements Binding {
 
-    private List<Interceptor> in;
-    private List<Interceptor> out;
-    private List<Interceptor> fault;
-    private Interceptor outFaultInterceptor;
-    private Interceptor inFaultInterceptor;
-    
     public XMLBinding() {
-        in = new ArrayList<Interceptor>();
-        out = new ArrayList<Interceptor>();
-        fault = new ArrayList<Interceptor>();
-        
-        outFaultInterceptor = new XMLFaultOutInterceptor();
-        inFaultInterceptor = new XMLFaultInInterceptor();
     }
     
     public Message createMessage() {
@@ -54,25 +36,4 @@
     public Message createMessage(Message m) {
         return new XMLMessage(m);
     }
-
-    public List<Interceptor> getFaultInterceptors() {
-        return fault;
-    }
-
-    public List<Interceptor> getInInterceptors() {
-        return in;
-    }
-
-    public List<Interceptor> getOutInterceptors() {
-        return out;
-    }
-
-    public Interceptor getInFaultInterceptor() {
-        return inFaultInterceptor;
-    }
-
-    public Interceptor getOutFaultInterceptor() {
-        return outFaultInterceptor;
-    }
-
 }

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java Mon Oct  9 12:19:18 2006
@@ -77,13 +77,11 @@
         xb.getInInterceptors().add(new XMLMessageInInterceptor());
         
         xb.getInFaultInterceptors().add(new StaxInInterceptor());
-        xb.getInFaultInterceptors().add(xb.getInFaultInterceptor());
         
         xb.getOutInterceptors().add(new StaxOutInterceptor());
         xb.getOutInterceptors().add(new XMLMessageOutInterceptor());
         
         xb.getOutFaultInterceptors().add(new StaxOutInterceptor());
-        xb.getOutFaultInterceptors().add(xb.getOutFaultInterceptor());
 
         return xb;
     }

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java Mon Oct  9 12:19:18 2006
@@ -90,7 +90,7 @@
     private void writeMessage(Message message, QName name, boolean executeBare) {
         XMLStreamWriter xmlWriter = message.getContent(XMLStreamWriter.class);
         try {
-            StaxUtils.writeStartElement(xmlWriter, "xmlroot", name.getLocalPart(), name.getNamespaceURI());
+            StaxUtils.writeStartElement(xmlWriter, "", name.getLocalPart(), name.getNamespaceURI());
             if (executeBare) {
                 new BareOutInterceptor().handleMessage(message);
             }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java Mon Oct  9 12:19:18 2006
@@ -29,6 +29,8 @@
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Exchange;
+import org.apache.cxf.service.Service;
+import org.apache.cxf.service.factory.MethodDispatcher;
 import org.apache.cxf.service.model.BindingOperationInfo;
 
 /**
@@ -44,8 +46,10 @@
         final Object serviceObject = getServiceObject(exchange);
 
         BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
-
-        Method m = (Method)bop.getOperationInfo().getProperty(Method.class.getName());
+        MethodDispatcher md = (MethodDispatcher) 
+            exchange.get(Service.class).get(MethodDispatcher.class.getName());
+        Method m = md.getMethod(bop);
+        //Method m = (Method)bop.getOperationInfo().getProperty(Method.class.getName());
         m = matchMethod(m, serviceObject);
         List<Object> params = CastUtils.cast((List<?>)o);
 

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java Mon Oct  9 12:19:18 2006
@@ -66,7 +66,12 @@
     public void setUp() throws Exception {
         bus = createBus();
         
-        namespaces.put("s", "http://schemas.xmlsoap.org/soap/envelope/");
+        addNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/");
+        addNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
+        addNamespace("wsdl", "http://schemas.xmlsoap.org/wsdl/");
+        addNamespace("wsdlsoap", "http://schemas.xmlsoap.org/wsdl/soap/");
+        addNamespace("soap", "http://schemas.xmlsoap.org/soap/");
+        
     }
     
     public Bus getBus() {
@@ -99,7 +104,7 @@
             throw new RuntimeException("Could not find resource " + message);
         }
         
-        copy(is, os, 8096);
+        copy(is, os);
 
         byte[] bs = obs.getResponseStream().toByteArray();
         
@@ -111,9 +116,10 @@
                                             + obs.getResponseStream().toString());
         }
     }
-
-    private void copy(final InputStream input, final OutputStream output, final int bufferSize)
+   
+    protected void copy(final InputStream input, final OutputStream output)
         throws IOException {
+        int bufferSize = 1024;
         try {
             final byte[] buffer = new byte[bufferSize];
 
@@ -215,7 +221,7 @@
 
         public void onMessage(Message message) {
             try {
-                copy(message.getContent(InputStream.class), response, 1024);
+                copy(message.getContent(InputStream.class), response);
             } catch (IOException e) {
                 e.printStackTrace();
                 fail();

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java Mon Oct  9 12:19:18 2006
@@ -20,7 +20,9 @@
 package org.apache.cxf.wsdl11;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.wsdl.Binding;
 import javax.wsdl.BindingFault;
@@ -48,6 +50,7 @@
 
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.service.model.AbstractMessageContainer;
+import org.apache.cxf.service.model.AbstractPropertiesHolder;
 import org.apache.cxf.service.model.BindingFaultInfo;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingMessageInfo;
@@ -63,20 +66,61 @@
 
 public final class ServiceWSDLBuilder {
     
-    private static ServiceWSDLBuilder serviceWSDLBuilder;       
+    private Map<String, String> prefix2ns;
+    private Map<String, String> ns2prefix;
+    private Definition definition;
+    private ServiceInfo service;
     
-    private ServiceWSDLBuilder() {
-        
+    public ServiceWSDLBuilder(ServiceInfo service) {
+        this.service = service;
+        prefix2ns = new HashMap<String, String>();
+        ns2prefix = new HashMap<String, String>();
     }
 
-    public static synchronized ServiceWSDLBuilder getServiceWSDLBuilder() {
-        if (serviceWSDLBuilder == null) {
-            serviceWSDLBuilder = new ServiceWSDLBuilder();
+    public Definition build() throws WSDLException {
+        try {
+            definition = service.getProperty(WSDLServiceBuilder.WSDL_DEFINITION, Definition.class);
+        } catch (ClassCastException e) {
+            //ignore
         }
-        return serviceWSDLBuilder;
+        if (definition == null) {
+            definition = WSDLFactory.newInstance().newDefinition();
+
+            addNamespace("wsdlsoap", "http://schemas.xmlsoap.org/wsdl/soap/");
+            addNamespace("soap", "http://schemas.xmlsoap.org/soap/");
+            addNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
+            
+            definition.setQName(service.getName());
+            definition.setTargetNamespace(service.getTargetNamespace());
+            addExtensibiltyElements(definition, getWSDL11Extensors(service));
+            if (service.getTypeInfo() != null) {
+                buildTypes(service.getTypeInfo());
+            }
+            buildPortType(service.getInterface());
+            buildBinding(service.getBindings());
+            buildService(service);
+        }
+        return definition;
+    }
+
+
+    public List<ExtensibilityElement> getWSDL11Extensors(AbstractPropertiesHolder holder) {
+//        List<?> extensors = holder.getExtensors()
+//        if (extensors.get() == null) {
+//            return null;
+//        }
+//        List<ExtensibilityElement> list
+//            = new ArrayList<ExtensibilityElement>(extensors.get().length);
+//        for (Object obj : extensors.get()) {
+//            if (obj instanceof ExtensibilityElement) {
+//                list.add((ExtensibilityElement)obj);
+//            }
+//        }
+//        return Collections.unmodifiableList(list);
+        return holder.getExtensors(ExtensibilityElement.class);
     }
     
-    private void addExtensibiltyElements(ElementExtensible elementExtensible, 
+    protected void addExtensibiltyElements(ElementExtensible elementExtensible, 
         List<ExtensibilityElement> extensibilityElements) {
         if (extensibilityElements != null) {
             for (ExtensibilityElement element : extensibilityElements) {
@@ -84,60 +128,38 @@
             }
         }
     }
-    
-    public Definition buildDefinition(ServiceInfo service) throws WSDLException {
-        Definition def = null;
-        try {
-            def = service.getProperty(WSDLServiceBuilder.WSDL_DEFINITION, Definition.class);
-        } catch (ClassCastException e) {
-            //ignore
-        }
-        if (def == null) {
-            def = WSDLFactory.newInstance().newDefinition();
-            def.setQName(service.getName());
-            def.setTargetNamespace(service.getTargetNamespace());
-            addExtensibiltyElements(def, service.getWSDL11Extensors());
-            if (service.getTypeInfo() != null) {
-                buildTypes(def, service.getTypeInfo());
-            }
-            buildPortType(def, service.getInterface());
-            buildBinding(def, service.getBindings());
-            buildService(def, service);
-        }
-        return def;
-    }
-
 
-    private void buildTypes(Definition def, TypeInfo typeInfo) {
-        Types types = def.createTypes();
+    protected void buildTypes(TypeInfo typeInfo) {
+        Types types = definition.createTypes();
         for (SchemaInfo schemaInfo : typeInfo.getSchemas()) {
             SchemaImpl schemaImpl = new SchemaImpl();
             schemaImpl.setElement(schemaInfo.getElement());
             types.addExtensibilityElement(schemaImpl);
         }
         
-        def.setTypes(types);
+        definition.setTypes(types);
     }
 
-    private void buildBinding(Definition def, Collection<BindingInfo> bindingInfos) {
+    protected void buildBinding(Collection<BindingInfo> bindingInfos) {
         Binding binding = null;
         for (BindingInfo bindingInfo : bindingInfos) {
-            binding = def.createBinding();
+            binding = definition.createBinding();
+            binding.setUndefined(false);
             for (PortType portType 
-                    : CastUtils.cast(def.getPortTypes().values(), PortType.class)) {
+                    : CastUtils.cast(definition.getPortTypes().values(), PortType.class)) {
                 if (portType.getQName().equals(bindingInfo.getInterface().getName())) {
                     binding.setPortType(portType);
                     break;
                 }
             }
             binding.setQName(bindingInfo.getName());
-            buildBindingOperation(def, binding, bindingInfo.getOperations());
-            addExtensibiltyElements(binding, bindingInfo.getWSDL11Extensors());
-            def.addBinding(binding);
+            buildBindingOperation(definition, binding, bindingInfo.getOperations());
+            addExtensibiltyElements(binding, getWSDL11Extensors(bindingInfo));
+            definition.addBinding(binding);
         }
     }
 
-    private void buildBindingOperation(Definition def, Binding binding, 
+    protected void buildBindingOperation(Definition def, Binding binding, 
                                        Collection<BindingOperationInfo> bindingOperationInfos) {
         BindingOperation bindingOperation = null;
         for (BindingOperationInfo bindingOperationInfo : bindingOperationInfos) {
@@ -153,12 +175,12 @@
             buildBindingInput(def, bindingOperation, bindingOperationInfo.getInput());
             buildBindingOutput(def, bindingOperation, bindingOperationInfo.getOutput());
             buildBindingFault(def, bindingOperation, bindingOperationInfo.getFaults());
-            addExtensibiltyElements(bindingOperation, bindingOperationInfo.getWSDL11Extensors());
+            addExtensibiltyElements(bindingOperation, getWSDL11Extensors(bindingOperationInfo));
             binding.addBindingOperation(bindingOperation);
         }
     }
 
-    private void buildBindingFault(Definition def, BindingOperation bindingOperation, 
+    protected void buildBindingFault(Definition def, BindingOperation bindingOperation, 
                                    Collection<BindingFaultInfo> bindingFaultInfos) {
         BindingFault bindingFault = null;
         for (BindingFaultInfo bindingFaultInfo 
@@ -166,48 +188,51 @@
             bindingFault = def.createBindingFault();
             bindingFault.setName(bindingFaultInfo.getFaultInfo().getFaultName().getLocalPart());
             bindingOperation.addBindingFault(bindingFault);
-            addExtensibiltyElements(bindingFault, bindingFaultInfo.getWSDL11Extensors());
+            addExtensibiltyElements(bindingFault, getWSDL11Extensors(bindingFaultInfo));
         }
         
     }
 
-    private void buildBindingInput(Definition def, BindingOperation bindingOperation, 
+    protected void buildBindingInput(Definition def, BindingOperation bindingOperation, 
                                          BindingMessageInfo bindingMessageInfo) {
         BindingInput bindingInput = null;
         if (bindingMessageInfo != null) {
             bindingInput = def.createBindingInput();
             bindingInput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart());
             bindingOperation.setBindingInput(bindingInput);
-            addExtensibiltyElements(bindingInput, bindingMessageInfo.getWSDL11Extensors());
+            addExtensibiltyElements(bindingInput, getWSDL11Extensors(bindingMessageInfo));
         }
     }
     
-    private void buildBindingOutput(Definition def, BindingOperation bindingOperation, 
+    protected void buildBindingOutput(Definition def, BindingOperation bindingOperation, 
                                    BindingMessageInfo bindingMessageInfo) {
         BindingOutput bindingOutput = null;
         if (bindingMessageInfo != null) {
             bindingOutput = def.createBindingOutput();
             bindingOutput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart());
             bindingOperation.setBindingOutput(bindingOutput);
-            addExtensibiltyElements(bindingOutput, bindingMessageInfo.getWSDL11Extensors());
+            addExtensibiltyElements(bindingOutput, getWSDL11Extensors(bindingMessageInfo));
         }
     }
 
-    private void buildService(Definition def, ServiceInfo service) {
-        Service serv = def.createService();
-        serv.setQName(service.getName());
-        def.addService(serv);
+    protected void buildService(ServiceInfo serviceInfo) {
+        Service serv = definition.createService();
+        serv.setQName(serviceInfo.getName());
+        addNamespace(serviceInfo.getName().getNamespaceURI());
+        definition.addService(serv);
 
-        for (EndpointInfo ei : service.getEndpoints()) {
-            Port port = def.createPort();
+        for (EndpointInfo ei : serviceInfo.getEndpoints()) {
+            addNamespace(ei.getTransportId());
+            addNamespace(ei.getBinding().getBindingId());
+            Port port = definition.createPort();
             port.setName(ei.getName().getLocalPart());
-            port.setBinding(def.getBinding(ei.getBinding().getName()));
-            addExtensibiltyElements(port, ei.getWSDL11Extensors());
+            port.setBinding(definition.getBinding(ei.getBinding().getName()));
+            addExtensibiltyElements(port, getWSDL11Extensors(ei));
             serv.addPort(port);
         }
     }
 
-    private void buildPortType(Definition def, InterfaceInfo intf) {
+    protected void buildPortType(InterfaceInfo intf) {
         PortType portType = null;
         try {
             portType = intf.getProperty(WSDLServiceBuilder.WSDL_PORTTYPE, PortType.class);
@@ -216,17 +241,27 @@
         }
         
         if (portType == null) {
-            portType = def.createPortType();
+            portType = definition.createPortType();
             portType.setQName(intf.getName());
-            buildPortTypeOperation(def, portType, intf.getOperations());
+            addNamespace(intf.getName().getNamespaceURI());
+            portType.setUndefined(false);
+            buildPortTypeOperation(portType, intf.getOperations());
         }
 
-        def.addPortType(portType);
+        definition.addPortType(portType);
     }
 
+    protected void addNamespace(String namespaceURI) {
+        addNamespace(getPrefix(namespaceURI), namespaceURI);
+    }
 
-    private void buildPortTypeOperation(Definition def, 
-                                        PortType portType, Collection<OperationInfo> operationInfos) {
+    protected void addNamespace(String prefix, String namespaceURI) {
+        prefix2ns.put(prefix, namespaceURI);
+        ns2prefix.put(namespaceURI, prefix);
+        definition.addNamespace(prefix, namespaceURI);
+    }
+
+    protected void buildPortTypeOperation(PortType portType, Collection<OperationInfo> operationInfos) {
         for (OperationInfo operationInfo : operationInfos) {
             Operation operation = null;
             try {
@@ -237,32 +272,34 @@
             }
             
             if (operation == null) {
-                operation = def.createOperation();
+                operation = definition.createOperation();
+                operation.setUndefined(false);
                 operation.setName(operationInfo.getName().getLocalPart());
+                addNamespace(operationInfo.getName().getNamespaceURI());
                 if (operationInfo.isOneWay()) {
                     operation.setStyle(OperationType.ONE_WAY);
                 }
-                Input input = def.createInput();
+                Input input = definition.createInput();
                 input.setName(operationInfo.getInputName());
-                Message message = def.createMessage();
-                buildMessage(def, message, operationInfo.getInput());
+                Message message = definition.createMessage();
+                buildMessage(message, operationInfo.getInput());
                 input.setMessage(message);
                 operation.setInput(input);
                 
-                Output output = def.createOutput();
+                Output output = definition.createOutput();
                 output.setName(operationInfo.getOutputName());
-                message = def.createMessage();
-                buildMessage(def, message, operationInfo.getOutput());
+                message = definition.createMessage();
+                buildMessage(message, operationInfo.getOutput());
                 output.setMessage(message);
                 operation.setOutput(output);
                 //loop to add fault
                 Collection<FaultInfo> faults = operationInfo.getFaults();
                 Fault fault = null;
                 for (FaultInfo faultInfo : faults) {
-                    fault = def.createFault();
+                    fault = definition.createFault();
                     fault.setName(faultInfo.getFaultName().getLocalPart());
-                    message = def.createMessage();
-                    buildMessage(def, message, faultInfo);
+                    message = definition.createMessage();
+                    buildMessage(message, faultInfo);
                     fault.setMessage(message);
                     operation.addFault(fault);
                 }
@@ -271,18 +308,41 @@
         }
     }
 
+    protected String getPrefix(String ns) {
+        String prefix = ns2prefix.get(ns);
+        if (prefix == null) {
+            prefix = getNewPrefix();
+            ns2prefix.put(ns, prefix);
+        }
+        return prefix;
+    }
+    
+    protected String getNewPrefix() {
+        String prefix = "ns1";
+        int i = 0;
+        while (prefix2ns.get(prefix) != null) {
+            i++;
+            prefix = "ns" + i;
+        }
+        return prefix;
+    }
 
-    private void buildMessage(Definition def, Message message,  AbstractMessageContainer messageContainer) {
+    protected void buildMessage(Message message, AbstractMessageContainer messageContainer) {
         message.setQName(messageContainer.getName());
+        message.setUndefined(false);
+        definition.addMessage(message);
+        
         List<MessagePartInfo> messageParts = messageContainer.getMessageParts();
         Part messagePart = null;
         for (MessagePartInfo messagePartInfo : messageParts) {
-            messagePart = def.createPart();
+            messagePart = definition.createPart();
             messagePart.setName(messagePartInfo.getName().getLocalPart());
             if (messagePartInfo.isElement()) {
                 messagePart.setElementName(messagePartInfo.getElementQName());
-            } else {
+                addNamespace(messagePartInfo.getElementQName().getNamespaceURI());
+            } else if (messagePartInfo.getTypeQName() != null) {
                 messagePart.setTypeName(messagePartInfo.getTypeQName());
+                addNamespace(messagePartInfo.getTypeQName().getNamespaceURI());
             }
             message.addPart(messagePart);
         }

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=454465&r1=454464&r2=454465
==============================================================================
--- 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 Mon Oct  9 12:19:18 2006
@@ -283,7 +283,8 @@
 
     private void handleHeader(BindingMessageInfo bindingMessageInfo) {
         // mark all message part which should be in header
-        List<ExtensibilityElement> extensiblilityElement = bindingMessageInfo.getWSDL11Extensors();
+        List<ExtensibilityElement> extensiblilityElement = 
+            bindingMessageInfo.getExtensors(ExtensibilityElement.class);
         // for non-soap binding, the extensiblilityElement could be null
         if (extensiblilityElement == null) {
             return;

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceFactory.java Mon Oct  9 12:19:18 2006
@@ -42,23 +42,28 @@
     
     private URL wsdlUrl;
     private QName serviceName;
-        
-    public WSDLServiceFactory(Bus b, URL url, QName sn) {
+    private Definition definition;
+    
+    public WSDLServiceFactory(Bus b, Definition d, QName sn) {
         setBus(b);
-        wsdlUrl = url;
+        definition = d;
         serviceName = sn;        
     }
     
-    public Service create() {
-        // use wsdl manager to parse wsdl or get cached definition
+    public WSDLServiceFactory(Bus b, URL url, QName sn) {
+        setBus(b);
+        wsdlUrl = url;
+        serviceName = sn;        
         
-        Definition definition = null;
         try {
+            // use wsdl manager to parse wsdl or get cached definition
             definition = getBus().getExtension(WSDLManager.class).getDefinition(wsdlUrl);
         } catch (WSDLException ex) {
             throw new ServiceConstructionException(new Message("SERVICE_CREATION_MSG", LOG), ex);
         }
-        
+    }
+    
+    public Service create() {
         javax.wsdl.Service wsdlService = definition.getService(serviceName);
         if (wsdlService == null) {
             throw new ServiceConstructionException(new Message("NO_SUCH_SERVICE", LOG, serviceName));

Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/wsdl11/ServiceWSDLBuilderTest.java Mon Oct  9 12:19:18 2006
@@ -99,7 +99,7 @@
         serviceInfo = wsdlServiceBuilder.buildService(def, service);
         serviceInfo.setProperty(WSDLServiceBuilder.WSDL_DEFINITION, null);
         serviceInfo.setProperty(WSDLServiceBuilder.WSDL_SERVICE, null);
-        newDef = ServiceWSDLBuilder.getServiceWSDLBuilder().buildDefinition(serviceInfo);
+        newDef = new ServiceWSDLBuilder(serviceInfo).build();
         
     }
     

Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBServiceModelInitializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBServiceModelInitializer.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBServiceModelInitializer.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBServiceModelInitializer.java Mon Oct  9 12:19:18 2006
@@ -44,7 +44,7 @@
     @Override
     public void begin(MessagePartInfo part) {
         // Check to see if the WSDL information has been filled in for us.
-        if (part.getConcreteName() != null) {
+        if (part.getTypeQName() != null || part.getElementQName() != null) {
             return;
         }
         

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/servlet/ServletDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/servlet/ServletDestination.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/servlet/ServletDestination.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/servlet/ServletDestination.java Mon Oct  9 12:19:18 2006
@@ -293,10 +293,8 @@
             OutputStream os = resp.getOutputStream();
             
             WSDLWriter wsdlWriter = WSDLFactory.newInstance().newWSDLWriter();
-            Definition def = 
-                ServiceWSDLBuilder.getServiceWSDLBuilder().buildDefinition(endpointInfo.getService());
-            Port port = def.getService(
-                                       endpointInfo.getService().getName()).getPort(
+            Definition def = new ServiceWSDLBuilder(endpointInfo.getService()).build();
+            Port port = def.getService(endpointInfo.getService().getName()).getPort(
                                        endpointInfo.getName().getLocalPart());
             List<?> exts = port.getExtensibilityElements();
             if (exts.size() > 0) {

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstTest.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstTest.java Mon Oct  9 12:19:18 2006
@@ -20,6 +20,10 @@
 
 import java.util.Collection;
 
+import javax.wsdl.Definition;
+import javax.wsdl.factory.WSDLFactory;
+
+import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
 import org.apache.cxf.Bus;
@@ -30,15 +34,19 @@
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.InterfaceInfo;
 import org.apache.cxf.transport.local.LocalTransportFactory;
+import org.apache.cxf.wsdl11.ServiceWSDLBuilder;
 
 public class CodeFirstTest extends AbstractJaxWsTest {
+    String address = "http://localhost:9000/Hello";
+    
     public void testModel() throws Exception {
         JaxWsServiceFactoryBean bean = new JaxWsServiceFactoryBean();
 
         Bus bus = getBus();
         bean.setBus(bus);
         bean.setServiceClass(Hello.class);
-
+        bean.setWrapped(false);
+        
         Service service = bean.create();
 
         InterfaceInfo i = service.getServiceInfo().getInterface();
@@ -48,10 +56,26 @@
         svrFactory.setBus(bus);
         svrFactory.setServiceFactory(bean);
         svrFactory.setTransportId("http://schemas.xmlsoap.org/soap/");
+        svrFactory.setAddress(address);
         svrFactory.create();
         
         Collection<BindingInfo> bindings = service.getServiceInfo().getBindings();
         assertEquals(1, bindings.size());
+        
+        ServiceWSDLBuilder wsdlBuilder = 
+            new ServiceWSDLBuilder(service.getServiceInfo());
+        Definition d = wsdlBuilder.build();
+        
+        Document wsdl = WSDLFactory.newInstance().newWSDLWriter().getDocument(d);
+        
+        addNamespace("svc", "http://service.jaxws.cxf.apache.org");
+        
+        assertValid("/wsdl:definitions/wsdl:service[@name='Hello']", wsdl);
+        assertValid("//wsdl:port/wsdlsoap:address[@location='" + address + "']", wsdl);
+        assertValid("//wsdl:portType[@name='HelloPortType']", wsdl);
+        assertValid("/wsdl:definitions/wsdl:message[@name='sayHi']"
+                    + "/wsdl:part[@type='xsd:string'][@name='text']",
+                    wsdl);
     }
 
     public void testEndpoint() throws Exception {

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java Mon Oct  9 12:19:18 2006
@@ -55,6 +55,10 @@
         return null;
     }
 
+    public Boolean isWrapped(Method m) { 
+        return null;
+    }
+    
     public Boolean isOutParam(Method method, int j) {
         return null;
     }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java Mon Oct  9 12:19:18 2006
@@ -90,12 +90,12 @@
 
     @Override
     public QName getInterfaceName() {
-        return new QName(getServiceNamespace(), getServiceName() + "PortType");
+        return new QName(getServiceFactory().getServiceNamespace(), getServiceName() + "PortType");
     }
 
     @Override
     public QName getEndpointName() {
-        return new QName(getServiceNamespace(), getServiceName() + "Port");
+        return new QName(getServiceFactory().getServiceNamespace(), getServiceName() + "Port");
     }
 
     @Override
@@ -148,4 +148,8 @@
         return j < 0;
     }
 
+    @Override
+    public Boolean isWrapped(Method m) {
+        return getServiceFactory().isWrapped();
+    }
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Mon Oct  9 12:19:18 2006
@@ -77,6 +77,7 @@
     private Executor executor;
     private List<String> ignoredClasses = new ArrayList<String>();
     private SimpleMethodDispatcher methodDispatcher = new SimpleMethodDispatcher();
+    private boolean wrappedStyle = true;
     
     public ReflectionServiceFactoryBean() {
         getServiceConfigurations().add(0, new DefaultServiceConfiguration());
@@ -374,12 +375,12 @@
     }
     
     protected boolean isWrapped(final Method method) {
-//        for (AbstractServiceConfiguration c : serviceConfigurations) {
-//            Boolean b = c.isOperation(method);
-//            if (b != null) {
-//                return b.booleanValue();
-//            }
-//        }
+        for (AbstractServiceConfiguration c : serviceConfigurations) {
+            Boolean b = c.isWrapped(method);
+            if (b != null) {
+                return b.booleanValue();
+            }
+        }
         return true;
     }
 
@@ -661,4 +662,13 @@
     public void setIgnoredClasses(List<String> ignoredClasses) {
         this.ignoredClasses = ignoredClasses;
     }
+
+    public boolean isWrapped() {
+        return wrappedStyle;
+    }
+
+    public void setWrapped(boolean style) {
+        this.wrappedStyle = style;
+    }
+    
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ServerFactoryBean.java Mon Oct  9 12:19:18 2006
@@ -44,10 +44,15 @@
     private Bus bus;
     private String address;
     private String transportId; // where should this come from???
-    private AbstractBindingInfoFactoryBean bindingFactory = new SoapBindingInfoFactoryBean();
+    private AbstractBindingInfoFactoryBean bindingFactory;
     private QName endpointName;
     private boolean start = true;
     
+    public ServerFactoryBean() {
+        super();
+        bindingFactory = new SoapBindingInfoFactoryBean();
+    }
+
     public Server create() {
         try {
             service = serviceFactory.getService();
@@ -107,6 +112,7 @@
         } else {
             // ?
         }
+        service.getServiceInfo().addEndpoint(ei);
         return ei;
     }
 
@@ -172,6 +178,14 @@
 
     public void setStart(boolean start) {
         this.start = start;
+    }
+
+    public AbstractBindingInfoFactoryBean getBindingFactory() {
+        return bindingFactory;
+    }
+
+    public void setBindingFactory(AbstractBindingInfoFactoryBean bindingFactory) {
+        this.bindingFactory = bindingFactory;
     }
     
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SoapBindingInfoFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SoapBindingInfoFactoryBean.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SoapBindingInfoFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SoapBindingInfoFactoryBean.java Mon Oct  9 12:19:18 2006
@@ -31,7 +31,9 @@
 
 public class SoapBindingInfoFactoryBean extends AbstractBindingInfoFactoryBean {
     private SoapVersion soapVersion = Soap11.getInstance();
-
+    private String style = "document";
+    private String use;
+    
     @Override
     public BindingInfo create() {
         ServiceInfo si = getServiceInfo();
@@ -66,11 +68,11 @@
     }
 
     protected String getStyle() {
-        return "document";
+        return style;
     }
 
     protected String getStyle(OperationInfo op) {
-        return "document";
+        return getStyle();
     }
 
     protected QName getBindingName() {
@@ -86,4 +88,17 @@
     public void setSoapVersion(SoapVersion soapVersion) {
         this.soapVersion = soapVersion;
     }
+
+    public String getUse() {
+        return use;
+    }
+
+    public void setUse(String use) {
+        this.use = use;
+    }
+
+    public void setStyle(String style) {
+        this.style = style;
+    }
+    
 }

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/JettyHTTPDestination.java?view=diff&rev=454465&r1=454464&r2=454465
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/JettyHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/JettyHTTPDestination.java Mon Oct  9 12:19:18 2006
@@ -118,7 +118,8 @@
                             public void handle(String pathInContext, String pathParams,
                                                HttpRequest req, HttpResponse resp)
                                 throws IOException {
-                                if (pathInContext.startsWith(getName())) {
+                                String name = getName();
+                                if (pathInContext.startsWith(name)) {
                                     doService(req, resp);                    
                                 }
                             }
@@ -265,8 +266,7 @@
                 OutputStream os = resp.getOutputStream();
                 
                 WSDLWriter wsdlWriter = WSDLFactory.newInstance().newWSDLWriter();
-                Definition def = 
-                    ServiceWSDLBuilder.getServiceWSDLBuilder().buildDefinition(endpointInfo.getService());
+                Definition def = new ServiceWSDLBuilder(endpointInfo.getService()).build();
                 wsdlWriter.writeWSDL(def, os);
                 resp.getOutputStream().flush();
                 resp.commit();