[jbossws-commits] JBossWS SVN: r4702 - stack/native/trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Tue Oct 9 07:07:28 EDT 2007


Author: richard.opalka at jboss.com
Date: 2007-10-09 07:07:28 -0400 (Tue, 09 Oct 2007)
New Revision: 4702

Modified:
   stack/native/trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
Log:
[JBWS-1799] fix of the issue

Modified: stack/native/trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
===================================================================
--- stack/native/trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java	2007-10-09 10:58:37 UTC (rev 4701)
+++ stack/native/trunk/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java	2007-10-09 11:07:28 UTC (rev 4702)
@@ -362,7 +362,7 @@
       if (requestWrapperType == null)
       {
          String packageName = JavaUtils.getPackageName(method.getDeclaringClass());
-         requestWrapperType = packageName + ".jaxws." + JavaUtils.capitalize(method.getName());
+         requestWrapperType = packageName + ".jaxws." + generateId(method) + "." + JavaUtils.capitalize(method.getName());
       }
 
       // JAX-WS p.37 pg.1, the annotation only affects the element name, not the type name
@@ -372,7 +372,29 @@
 
       return wrapperParameter;
    }
-
+   
+   /**
+    * Generates unique string used for package name creation
+    */
+   private static String generateId(Method method)
+   {
+      int hashCode = 17;
+      hashCode = 37 * hashCode + method.getDeclaringClass().getName().hashCode();
+      hashCode = 37 * hashCode + method.getName().hashCode(); 
+      hashCode = 37 * hashCode + generateId(method.getParameterTypes()); 
+      return ("generated_" + hashCode).replace('-', '_');
+   }
+   
+   private static int generateId(Class<?>[] args)
+   {
+      int result = 17;
+      for (int i = 0; i < args.length; i++)
+      {
+         result = 37 * result + args[i].getName().hashCode();
+      }
+      return result;
+   }
+   
    private ParameterMetaData createResponseWrapper(OperationMetaData operation, Method method)
    {
       QName operationQName = operation.getQName();
@@ -395,7 +417,7 @@
       if (responseWrapperType == null)
       {
          String packageName = JavaUtils.getPackageName(method.getDeclaringClass());
-         responseWrapperType = packageName + ".jaxws." + JavaUtils.capitalize(method.getName()) + "Response";
+         responseWrapperType = packageName + ".jaxws." + generateId(method) + "." + JavaUtils.capitalize(method.getName()) + "Response";
       }
 
       ParameterMetaData retMetaData = new ParameterMetaData(operation, xmlName, xmlType, responseWrapperType);




More information about the jbossws-commits mailing list