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 2011/03/15 19:48:13 UTC
svn commit: r1081901 - in /cxf/trunk:
rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/
rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/
rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/
systests/databin...
Author: dkulp
Date: Tue Mar 15 18:48:13 2011
New Revision: 1081901
URL: http://svn.apache.org/viewvc?rev=1081901&view=rev
Log:
[CXF-3402] Don't use the WebParam info for the type names. That's
against jaxws spec. Thus, collections and arrays get mapped the same.
Modified:
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/DefaultTypeMapping.java
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/Java5TypeCreator.java
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbXmlParamTypeTest.java
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XFireXmlParamTypeTest.java
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/AegisJaxWs.java
cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/mtom/fortest/MtomTestService.java
Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/DefaultTypeMapping.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/DefaultTypeMapping.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/DefaultTypeMapping.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/DefaultTypeMapping.java Tue Mar 15 18:48:13 2011
@@ -99,7 +99,7 @@ public class DefaultTypeMapping implemen
}
public DefaultTypeMapping(String identifierURI) {
- this.identifierURI = identifierURI;
+ this.identifierURI = identifierURI == null ? DEFAULT_MAPPING_URI : identifierURI;
class2Type = Collections.synchronizedMap(new HashMap<Type, AegisType>());
class2xml = Collections.synchronizedMap(new HashMap<Type, QName>());
xml2Type = Collections.synchronizedMap(new HashMap<QName, AegisType>());
Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/AnnotationReader.java Tue Mar 15 18:48:13 2011
@@ -140,22 +140,20 @@ public class AnnotationReader {
}
@SuppressWarnings("unchecked")
- public String getParamName(Method method, int index) {
+ public String getParamTypeName(Method method, int index) {
return (String) getAnnotationValue("name",
method,
index,
AegisType.class,
- XmlParamType.class,
- WEB_PARAM);
+ XmlParamType.class);
}
@SuppressWarnings("unchecked")
- public String getReturnName(AnnotatedElement element) {
+ public String getReturnTypeName(AnnotatedElement element) {
return (String) getAnnotationValue("name",
element,
"",
- XmlReturnType.class,
- WEB_RESULT);
+ XmlReturnType.class);
}
@SuppressWarnings("unchecked")
Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/Java5TypeCreator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/Java5TypeCreator.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/Java5TypeCreator.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/Java5TypeCreator.java Tue Mar 15 18:48:13 2011
@@ -24,6 +24,7 @@ import java.lang.reflect.ParameterizedTy
import java.lang.reflect.Type;
import java.lang.reflect.WildcardType;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -74,14 +75,13 @@ public class Java5TypeCreator extends Ab
Class paramTypeClass = annotationReader.getParamType(m, index);
info.setAegisTypeClass(castToAegisTypeClass(paramTypeClass));
-
- String paramName = annotationReader.getParamName(m, index);
+ String paramName = annotationReader.getParamTypeName(m, index);
if (paramName != null) {
info.setTypeName(createQName(m.getParameterTypes()[index],
- paramName,
- annotationReader.getParamNamespace(m, index)));
+ genericType,
+ paramName,
+ annotationReader.getParamNamespace(m, index)));
}
-
return info;
} else {
Type genericReturnType = m.getGenericReturnType();
@@ -99,14 +99,14 @@ public class Java5TypeCreator extends Ab
}
info.setAegisTypeClass(castToAegisTypeClass(annotationReader.getReturnType(m)));
-
- String returnName = annotationReader.getReturnName(m);
+ String returnName = annotationReader.getReturnTypeName(m);
if (returnName != null) {
info.setTypeName(createQName(m.getReturnType(),
- returnName,
- annotationReader.getReturnNamespace(m)));
+ genericReturnType,
+ returnName,
+ annotationReader.getReturnNamespace(m)));
+
}
-
return info;
}
}
@@ -243,14 +243,24 @@ public class Java5TypeCreator extends Ab
public QName createQName(Class typeClass) {
String name = annotationReader.getName(typeClass);
String ns = annotationReader.getNamespace(typeClass);
- return createQName(typeClass, name, ns);
+ return createQName(typeClass, null, name, ns);
}
- private QName createQName(Class typeClass, String name, String ns) {
+ private QName createQName(Class typeClass, Type type, String name, String ns) {
+ if (typeClass.isArray()) {
+ typeClass = typeClass.getComponentType();
+ }
+ if (List.class.isAssignableFrom(typeClass)
+ && type instanceof ParameterizedType) {
+ type = ((ParameterizedType)type).getActualTypeArguments()[0];
+ if (type instanceof Class) {
+ typeClass = (Class)type;
+ }
+ }
+
if (name == null || name.length() == 0) {
name = ServiceUtils.makeServiceNameFromClassName(typeClass);
}
-
//check from aegis type annotation
if (ns == null || ns.length() == 0) {
ns = annotationReader.getNamespace(typeClass);
Modified: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbXmlParamTypeTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbXmlParamTypeTest.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbXmlParamTypeTest.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/JaxbXmlParamTypeTest.java Tue Mar 15 18:48:13 2011
@@ -18,14 +18,11 @@
*/
package org.apache.cxf.aegis.type.java5;
-import java.lang.reflect.Method;
import javax.jws.WebParam;
import javax.jws.WebResult;
-import javax.xml.namespace.QName;
import org.apache.cxf.aegis.AbstractAegisTest;
-import org.apache.cxf.aegis.type.AegisType;
import org.apache.cxf.aegis.type.DefaultTypeCreator;
import org.apache.cxf.aegis.type.DefaultTypeMapping;
import org.apache.cxf.aegis.type.TypeCreationOptions;
@@ -41,27 +38,14 @@ public class JaxbXmlParamTypeTest extend
public void setUp() throws Exception {
super.setUp();
- tm = new DefaultTypeMapping();
+ tm = new DefaultTypeMapping(null,
+ DefaultTypeMapping.createDefaultTypeMapping(false, false));
creator = new Java5TypeCreator();
creator.setNextCreator(new DefaultTypeCreator());
creator.setConfiguration(new TypeCreationOptions());
tm.setTypeCreator(creator);
}
- @Test
- public void testType() throws Exception {
- Method m = CustomTypeService.class.getMethod("doFoo", new Class[] {String.class});
-
- AegisType type = creator.createType(m, 0);
- tm.register(type);
- assertTrue(type instanceof org.apache.cxf.aegis.type.basic.BeanType);
- assertEquals(new QName("urn:xfire:foo", "custom"), type.getSchemaType());
-
- type = creator.createType(m, -1);
- tm.register(type);
- assertTrue(type instanceof org.apache.cxf.aegis.type.basic.BeanType);
- assertEquals(new QName("urn:xfire:foo", "custom"), type.getSchemaType());
- }
@Test
public void testMapServiceWSDL() throws Exception {
Modified: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XFireXmlParamTypeTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XFireXmlParamTypeTest.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XFireXmlParamTypeTest.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XFireXmlParamTypeTest.java Tue Mar 15 18:48:13 2011
@@ -41,7 +41,7 @@ public class XFireXmlParamTypeTest exten
public void setUp() throws Exception {
super.setUp();
- tm = new DefaultTypeMapping();
+ tm = new DefaultTypeMapping(null, DefaultTypeMapping.createDefaultTypeMapping(false, false));
creator = new Java5TypeCreator();
creator.setNextCreator(new DefaultTypeCreator());
creator.setConfiguration(new org.apache.cxf.aegis.type.Configuration());
Modified: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java Tue Mar 15 18:48:13 2011
@@ -41,7 +41,7 @@ public class XmlParamTypeTest extends Ab
public void setUp() throws Exception {
super.setUp();
- tm = new DefaultTypeMapping();
+ tm = new DefaultTypeMapping(null, DefaultTypeMapping.createDefaultTypeMapping(false, false));
creator = new Java5TypeCreator();
creator.setNextCreator(new DefaultTypeCreator());
creator.setConfiguration(new TypeCreationOptions());
@@ -55,7 +55,7 @@ public class XmlParamTypeTest extends Ab
AegisType type = creator.createType(m, 0);
tm.register(type);
assertTrue(type instanceof CustomStringType);
- assertEquals(new QName("urn:xfire:foo", "custom"), type.getSchemaType());
+ //assertEquals(new QName("urn:xfire:foo", "custom"), type.getSchemaType());
type = creator.createType(m, -1);
tm.register(type);
Modified: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/AegisJaxWs.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/AegisJaxWs.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/AegisJaxWs.java (original)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/AegisJaxWs.java Tue Mar 15 18:48:13 2011
@@ -56,7 +56,7 @@ public interface AegisJaxWs {
java.util.List<String> getStringList();
@WebMethod
- java.util.List<String> echoBigList(java.util.List<String> l);
+ java.util.List<String> echoBigList(@WebParam(name = "foo") java.util.List<String> l);
@WebMethod
byte[] export(java.util.List<java.lang.Integer> integers);
Modified: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/mtom/fortest/MtomTestService.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/mtom/fortest/MtomTestService.java?rev=1081901&r1=1081900&r2=1081901&view=diff
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/mtom/fortest/MtomTestService.java (original)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/aegis/mtom/fortest/MtomTestService.java Tue Mar 15 18:48:13 2011
@@ -23,12 +23,16 @@ import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.soap.MTOM;
+import org.apache.cxf.aegis.type.java5.XmlParamType;
+
/**
*
*/
@WebService(name = "MtomTestService", serviceName = "MtomTestService")
@MTOM
public interface MtomTestService {
- void acceptDataHandler(@WebParam(name = "inputDhBean") DataHandlerBean dhBean);
+ void acceptDataHandler(@WebParam(name = "inputDhBean")
+ @XmlParamType(name = "inputDhBean")
+ DataHandlerBean dhBean);
DataHandlerBean produceDataHandlerBean();
}