Author: richard.opalka(a)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);
Show replies by date