You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/04/09 23:16:56 UTC

svn commit: r526923 - in /incubator/cxf/trunk/rt: bindings/soap/src/main/java/org/apache/cxf/binding/soap/ bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/ core/src/main/java/org/apache/cxf/interceptor/ frontend/jaxws/src/main/java/org/ap...

Author: dkulp
Date: Mon Apr  9 14:16:44 2007
New Revision: 526923

URL: http://svn.apache.org/viewvc?view=rev&rev=526923
Log:
Better support for code first cases that have headers or are "bare"


Modified:
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/SoapHeaderInfo.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/JaxWsClientTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java Mon Apr  9 14:16:44 2007
@@ -31,7 +31,9 @@
     private boolean mtomEnabled;
     
 
-
+    public SoapBindingInfoConfigBean() {
+        
+    }
 
     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
         return false;

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/SoapHeaderInfo.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/SoapHeaderInfo.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/SoapHeaderInfo.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/model/SoapHeaderInfo.java Mon Apr  9 14:16:44 2007
@@ -25,6 +25,10 @@
     
     private MessagePartInfo part;
     private String use;
+    
+    public SoapHeaderInfo() {
+        
+    }
 
     public MessagePartInfo getPart() {
         return part;

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 14:16:44 2007
@@ -162,20 +162,21 @@
      * @param client
      * @return
      */
-    protected BindingOperationInfo getBindingOperationInfoForWrapped(Exchange exchange, QName name,
-                                                                     boolean client) {
+    protected BindingOperationInfo getBindingOperationInfo(Exchange exchange, QName name,
+                                                              boolean client) {
         String local = name.getLocalPart();
         if (client && local.endsWith("Response")) {
             local = local.substring(0, local.length() - 8);
         }
 
         // TODO: Allow overridden methods.
-        BindingOperationInfo operation = ServiceModelUtil.getOperation(exchange, local);
-        if (operation != null && operation.isUnwrappedCapable()) {
-            return operation;
+        BindingOperationInfo bop = ServiceModelUtil.getOperation(exchange, local);
+        
+        if (bop != null) {
+            exchange.put(BindingOperationInfo.class, bop);
+            exchange.put(OperationInfo.class, bop.getOperationInfo());
         }
-
-        return null;
+        return bop;
     }
     
     protected MessageInfo getMessageInfo(Message message, BindingOperationInfo operation) {

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java Mon Apr  9 14:16:44 2007
@@ -87,7 +87,7 @@
 
         if (bop == null) {
             QName startQName = xmlReader.getName();
-            bop = getBindingOperationInfoForWrapped(exchange, startQName, client);
+            bop = getBindingOperationInfo(exchange, startQName, client);
         }
 
         if (bop != null && bop.isUnwrappedCapable()) {
@@ -132,7 +132,6 @@
                 } else {
                     msgInfo = bop.getInput();
                 }
-
             }
 
             Collection<OperationInfo> operations = null;

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 14:16:44 2007
@@ -425,6 +425,7 @@
         if (!getServiceFactory().isWrapped()) {
             return Boolean.FALSE;
         }
+        m = getDeclaredMethod(m);
 
         SOAPBinding ann = m.getAnnotation(SOAPBinding.class);
         if (ann != null) {

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 14:16:44 2007
@@ -26,9 +26,9 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.model.MessagePartInfo;
 import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.transport.local.LocalTransportFactory;
@@ -41,7 +41,7 @@
     
     @Test
     public void testInvocation() throws Exception {
-        ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean();
+        JaxWsServiceFactoryBean bean = new JaxWsServiceFactoryBean();
 
         Bus bus = getBus();
         bean.setBus(bus);
@@ -76,6 +76,8 @@
         ServerFactoryBean svr = new ServerFactoryBean();
         svr.setBus(bus);
         svr.setServiceFactory(bean);
+        svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
+        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
         
         svr.create();
         

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/JaxWsClientTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/JaxWsClientTest.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/JaxWsClientTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/JaxWsClientTest.java Mon Apr  9 14:16:44 2007
@@ -84,8 +84,9 @@
     
     @Test
     public void testRequestContext() throws Exception {
+        URL url = getClass().getResource("/wsdl/hello_world.wsdl");
         javax.xml.ws.Service s = javax.xml.ws.Service
-            .create(serviceName);
+            .create(url, serviceName);
         Greeter greeter = s.getPort(portName, Greeter.class);
         InvocationHandler handler  = Proxy.getInvocationHandler(greeter);
         BindingProvider  bp = null;

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java Mon Apr  9 14:16:44 2007
@@ -78,7 +78,6 @@
         e = (EndpointImpl)Endpoint.publish(address, implementor);        
         e.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
         e.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
-        
     }
 
     @Test
@@ -317,4 +316,5 @@
   //         proxy.sendReceiveAnyType(simpleAll, new SimpleChoice());    
   
   //     }
+   
 }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java?view=diff&rev=526923&r1=526922&r2=526923
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBeanTest.java Mon Apr  9 14:16:44 2007
@@ -27,7 +27,6 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.jaxws.AbstractJaxWsTest;
-import org.apache.cxf.mime.types.XopType;
 import org.apache.cxf.mtom_xop.TestMtomImpl;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
@@ -102,13 +101,22 @@
             new QName("http://cxf.apache.org/mime", "testXop"));
         assertNotNull(op);
         
-        // test setup of input parts
+        
         Iterator<MessagePartInfo> itr = op.getInput().getMessageParts().iterator();
         assertTrue(itr.hasNext());
         MessagePartInfo part = itr.next();
-        assertEquals("data", part.getName().getLocalPart());
-        assertEquals(XopType.class, part.getTypeClass());
-
+        assertEquals("testXop", part.getElementQName().getLocalPart());
+        
+        op = op.getUnwrappedOperation();
+        assertNotNull(op);
+        
+        // test setup of input parts
+        itr = op.getInput().getMessageParts().iterator();
+        assertTrue(itr.hasNext());
+        part = itr.next();
+        assertEquals("name", part.getName().getLocalPart());
+        assertEquals(String.class, part.getTypeClass());
+        
         /*
          * revisit, try to use other wsdl operation rewrite test in future 
         assertTrue(itr.hasNext());
@@ -125,6 +133,5 @@
         part = itr.next();
         assertEquals(Boolean.TRUE, part.getProperty(JaxWsServiceFactoryBean.MODE_INOUT));
         */
-        assertFalse(itr.hasNext());
     }
 }

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=526923&r1=526922&r2=526923
==============================================================================
--- 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 Apr  9 14:16:44 2007
@@ -434,8 +434,9 @@
 
         for (int j = 0; j < paramClasses.length; j++) {
             if (isInParam(method, j)) {
-                final QName q = getInParameterName(op, method, j);                
-                MessagePartInfo part = inMsg.addMessagePart(q);
+                final QName q = getInParameterName(op, method, j);
+                final QName q2 = getInPartName(op, method, j);
+                MessagePartInfo part = inMsg.addMessagePart(q2);
                 initializeParameter(part, paramClasses[j], method.getGenericParameterTypes()[j]);
                 //TODO - RPC vs DOC (type vs element)
                 if (isHeader(method, j)) {
@@ -452,7 +453,7 @@
 
             final Class<?> returnType = method.getReturnType();
             if (!returnType.isAssignableFrom(void.class)) {
-                final QName q = getOutParameterName(op, method, -1);                
+                final QName q = getOutPartName(op, method, -1);                
                 MessagePartInfo part = outMsg.addMessagePart(q);
                 initializeParameter(part, method.getReturnType(), method.getGenericReturnType());
                 part.setIndex(-1);
@@ -460,7 +461,8 @@
 
             for (int j = 0; j < paramClasses.length; j++) {
                 if (isOutParam(method, j)) {
-                    final QName q = getInParameterName(op, method, j);
+                    final QName q = getOutPartName(op, method, j);
+                    final QName q2 = getOutParameterName(op, method, j);
                     MessagePartInfo part = outMsg.addMessagePart(q);
                     initializeParameter(part, paramClasses[j], method.getGenericParameterTypes()[j]);
                     part.setIndex(j);
@@ -469,7 +471,7 @@
                         part.setProperty(MODE_INOUT, Boolean.TRUE);
                     }
                     if (isHeader(method, j)) {
-                        part.setElementQName(q);
+                        part.setElementQName(q2);
                     }
                 }
             }