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/05/17 00:23:05 UTC

svn commit: r538764 - in /incubator/cxf/trunk: rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/ rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/j...

Author: dkulp
Date: Wed May 16 15:22:53 2007
New Revision: 538764

URL: http://svn.apache.org/viewvc?view=rev&rev=538764
Log:
Updates to get the right wrapper classnames

Modified:
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.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/ReflectionServiceFactoryBean.java
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/RequestWrapper.java
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ResponseWrapper.java
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java

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=538764&r1=538763&r2=538764
==============================================================================
--- 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 Wed May 16 15:22:53 2007
@@ -413,6 +413,34 @@
     }
 
     @Override
+    public String getResponseWrapperClassName(Method selected) {
+        Method m = getDeclaredMethod(selected);
+
+        ResponseWrapper rw = m.getAnnotation(ResponseWrapper.class);
+        String clsName = "";
+        if (rw != null) {
+            clsName = rw.className();
+        }
+        if (clsName.length() > 0) {
+            return clsName;
+        }
+        return null;
+    }
+    public String getRequestWrapperClassName(Method selected) {
+        Method m = getDeclaredMethod(selected);
+
+        RequestWrapper rw = m.getAnnotation(RequestWrapper.class);
+        String clsName = "";
+        if (rw != null) {
+            clsName = rw.className();
+        }
+        if (clsName.length() > 0) {
+            return clsName;
+        }
+        return null;
+    }
+    
+    @Override
     public Class getRequestWrapper(Method selected) {
         Method m = getDeclaredMethod(selected);
 

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=538764&r1=538763&r2=538764
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Wed May 16 15:22:53 2007
@@ -220,10 +220,18 @@
         if (responseWrapper != null) {
             o.getOutput().getMessageParts().get(0).setTypeClass(responseWrapper);
         }
+        if (getResponseWrapperClassName(selected) != null) {
+            o.getOutput().getMessageParts().get(0).setProperty("RESPONSE.WRAPPER.CLASSNAME",
+                                                           getResponseWrapperClassName(selected));
+        }
         Class<?> requestWrapper = getRequestWrapper(selected);
         if (requestWrapper != null) {
             o.getInput().getMessageParts().get(0).setTypeClass(requestWrapper);
         }
+        if (getRequestWrapperClassName(selected) != null) {
+            o.getInput().getMessageParts().get(0).setProperty("REQUEST.WRAPPER.CLASSNAME",
+                                                           getRequestWrapperClassName(selected));
+        }
     }
 
     /**
@@ -319,12 +327,14 @@
                 MessageInfo input = o.getInput();
                 MessagePartInfo part = input.getMessageParts().get(0);                
                 part.setTypeClass(getRequestWrapper(method));
+                part.setProperty("REQUEST.WRAPPER.CLASSNAME", getRequestWrapperClassName(method));
             }
 
             if (o.hasOutput()) {
                 MessageInfo input = o.getOutput();
                 MessagePartInfo part = input.getMessageParts().get(0);                
                 part.setTypeClass(getResponseWrapper(method));
+                part.setProperty("RESPONSE.WRAPPER.CLASSNAME", getResponseWrapperClassName(method));
                 part.setIndex(-1);
             }
 

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=538764&r1=538763&r2=538764
==============================================================================
--- 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 Wed May 16 15:22:53 2007
@@ -160,6 +160,12 @@
     public Class getRequestWrapper(Method selected) {
         return null;
     }
+    public String getResponseWrapperClassName(Method selected) {
+        return null;
+    }
+    public String getRequestWrapperClassName(Method selected) {
+        return null;
+    }
     
     public Boolean isRPC(Method selected) {
         return null;

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=538764&r1=538763&r2=538764
==============================================================================
--- 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 Wed May 16 15:22:53 2007
@@ -754,6 +754,8 @@
         }
         if (getRequestWrapper(method) != null) {
             part.setTypeClass(this.getRequestWrapper(method));
+        } else if (getRequestWrapperClassName(method) != null) {
+            part.setProperty("REQUEST.WRAPPER.CLASSNAME", getRequestWrapperClassName(method));
         }
 
         for (MessagePartInfo mpart : op.getInput().getMessageParts()) {
@@ -785,6 +787,8 @@
 
         if (this.getResponseWrapper(method) != null) {
             part.setTypeClass(this.getResponseWrapper(method));
+        } else if (getResponseWrapperClassName(method) != null) {
+            part.setProperty("RESPONSE.WRAPPER.CLASSNAME", getResponseWrapperClassName(method));
         }
     }
 
@@ -1157,6 +1161,15 @@
         }
         return null;
     }
+    protected String getResponseWrapperClassName(Method selected) {
+        for (AbstractServiceConfiguration c : serviceConfigurations) {
+            String cls = c.getResponseWrapperClassName(selected);
+            if (cls != null) {
+                return cls;
+            }
+        }
+        return null;
+    }
 
     protected Class getRequestWrapper(Method selected) {
         for (AbstractServiceConfiguration c : serviceConfigurations) {
@@ -1167,7 +1180,16 @@
         }
         return null;
     }
-
+    protected String getRequestWrapperClassName(Method selected) {
+        for (AbstractServiceConfiguration c : serviceConfigurations) {
+            String cls = c.getRequestWrapperClassName(selected);
+            if (cls != null) {
+                return cls;
+            }
+        }
+        return null;
+    }
+    
     protected SimpleMethodDispatcher getMethodDispatcher() {
         return methodDispatcher;
     }

Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/RequestWrapper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/RequestWrapper.java?view=diff&rev=538764&r1=538763&r2=538764
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/RequestWrapper.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/RequestWrapper.java Wed May 16 15:22:53 2007
@@ -36,12 +36,13 @@
     public void setOperationInfo(final OperationInfo op) {
         super.setOperationInfo(op);
         setName(op.getInput().getMessageParts().get(0).getElementQName());
+        setClassName((String)op.getInput().getMessageParts().get(0).getProperty("REQUEST.WRAPPER.CLASSNAME"));
     }
 
     @Override
     public boolean isWrapperAbsent(final Method method) {
         javax.xml.ws.RequestWrapper reqWrapper = method.getAnnotation(javax.xml.ws.RequestWrapper.class);
-        return reqWrapper == null || StringUtils.isEmpty(reqWrapper.className());
+        return getClassName() == null && (reqWrapper == null || StringUtils.isEmpty(reqWrapper.className()));
     }
 
     @Override
@@ -79,13 +80,14 @@
     @Override
     public WrapperBeanClass getWrapperBeanClass(final Method method) {
         javax.xml.ws.RequestWrapper reqWrapper = method.getAnnotation(javax.xml.ws.RequestWrapper.class);
-        String reqClassName = "";
+        String reqClassName = getClassName();
         String reqNs = null;
         
-        if (!isWrapperAbsent(method)) {
+        if (reqWrapper != null) {
             reqClassName = reqWrapper.className().length() > 0 ? reqWrapper.className() : reqClassName;
-            reqNs = reqWrapper.targetNamespace();
-        } else {
+            reqNs = reqWrapper.targetNamespace().length() > 0 ? reqWrapper.targetNamespace() : null;
+        } 
+        if (reqClassName == null) {
             reqClassName = getPackageName(method) + ".jaxws." + AnnotationUtil.capitalize(method.getName());
         }
 

Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ResponseWrapper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ResponseWrapper.java?view=diff&rev=538764&r1=538763&r2=538764
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ResponseWrapper.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ResponseWrapper.java Wed May 16 15:22:53 2007
@@ -38,12 +38,14 @@
     public void setOperationInfo(final OperationInfo op) {
         super.setOperationInfo(op);
         setName(op.getOutput().getMessageParts().get(0).getElementQName());
+        setClassName((String)op.getOutput().getMessageParts().get(0)
+                         .getProperty("RESPONSE.WRAPPER.CLASSNAME"));
     }
    
     @Override
     public boolean isWrapperAbsent(final Method method) {
         javax.xml.ws.ResponseWrapper resWrapper = method.getAnnotation(javax.xml.ws.ResponseWrapper.class);
-        return resWrapper == null || StringUtils.isEmpty(resWrapper.className());
+        return getClassName() == null && (resWrapper == null || StringUtils.isEmpty(resWrapper.className()));
     }
 
     @Override
@@ -103,13 +105,14 @@
     @Override
     public WrapperBeanClass getWrapperBeanClass(final Method method) {
         javax.xml.ws.ResponseWrapper resWrapper = method.getAnnotation(javax.xml.ws.ResponseWrapper.class);
-        String resClassName = "";
+        String resClassName = getClassName();
         String resNs = null;
         
-        if (!isWrapperAbsent(method)) {
-            resClassName = resWrapper.className();
-            resNs = resWrapper.targetNamespace();
-        } else {
+        if (resWrapper != null) {
+            resClassName = resWrapper.className().length() > 0 ? resWrapper.className() : resClassName;
+            resNs = resWrapper.targetNamespace().length() > 0 ? resWrapper.targetNamespace() : null;
+        }  
+        if (resClassName == null) {
             resClassName = getPackageName(method) + ".jaxws." 
                 + AnnotationUtil.capitalize(method.getName())
                 + "Response";

Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java?view=diff&rev=538764&r1=538763&r2=538764
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java Wed May 16 15:22:53 2007
@@ -48,6 +48,7 @@
     private boolean isSamePackage;
 
     private OperationInfo operationInfo;
+    private String className;
 
     public void setOperationInfo(final OperationInfo op) {
         this.operationInfo = op;
@@ -60,6 +61,12 @@
 
     public void setName(QName n) {
         this.name = n;
+    }
+    public void setClassName(String s) {
+        className = s;
+    }
+    public String getClassName() {
+        return className;
     }
 
     public WrapperBeanClass getWrapperBeanClass(final Method m) {