You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/05/05 00:01:54 UTC
svn commit: r1099619 - in /cxf/branches/2.3.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/
rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/
Author: sergeyb
Date: Wed May 4 22:01:54 2011
New Revision: 1099619
URL: http://svn.apache.org/viewvc?rev=1099619&view=rev
Log:
Merged revisions 1099611 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1099611 | sergeyb | 2011-05-04 22:28:18 +0100 (Wed, 04 May 2011) | 1 line
[CXF-3490] Updating WADL Generator to handle repeating parameters correctly
........
Modified:
cxf/branches/2.3.x-fixes/ (props changed)
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 4 22:01:54 2011
@@ -1 +1 @@
-/cxf/trunk:1094926,1094992,1095349,1095666,1097071,1097175,1097178,1097816,1099421,1099496
+/cxf/trunk:1094926,1094992,1095349,1095666,1097071,1097175,1097178,1097816,1099421,1099496,1099611
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=1099619&r1=1099618&r2=1099619&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Wed May 4 22:01:54 2011
@@ -26,6 +26,7 @@ import java.io.StringReader;
import java.io.StringWriter;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
+import java.lang.reflect.Type;
import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
@@ -451,7 +452,8 @@ public class WadlGenerator implements Re
private void writeParam(StringBuilder sb, Parameter pm, OperationResourceInfo ori) {
Class<?> type = getMethod(ori).getParameterTypes()[pm.getIndex()];
if (!"".equals(pm.getName())) {
- doWriteParam(sb, pm, type, pm.getName());
+ doWriteParam(sb, pm, type, getMethod(ori).getGenericParameterTypes()[pm.getIndex()],
+ pm.getName());
} else {
doWriteBeanParam(sb, type, pm, null);
}
@@ -464,15 +466,18 @@ public class WadlGenerator implements Re
if (parentName != null) {
name = parentName + "." + name;
}
- if (InjectionUtils.isPrimitive(entry.getValue())) {
- doWriteParam(sb, entry.getKey(), entry.getValue(), name);
+ Class<?> paramCls = entry.getValue();
+ boolean isPrimitive = InjectionUtils.isPrimitive(paramCls);
+ if (isPrimitive || InjectionUtils.isSupportedCollectionOrArray(paramCls)) {
+ doWriteParam(sb, entry.getKey(), paramCls, paramCls, name);
} else {
- doWriteBeanParam(sb, entry.getValue(), entry.getKey(), name);
+ doWriteBeanParam(sb, paramCls, entry.getKey(), name);
}
}
}
-
- protected void doWriteParam(StringBuilder sb, Parameter pm, Class<?> type, String paramName) {
+
+ protected void doWriteParam(StringBuilder sb, Parameter pm, Class<?> type,
+ Type genericType, String paramName) {
sb.append("<param name=\"").append(paramName).append("\" ");
String style = ParameterType.PATH == pm.getType() ? "template"
: ParameterType.FORM == pm.getType() ? "query"
@@ -482,6 +487,10 @@ public class WadlGenerator implements Re
if (pm.getDefaultValue() != null) {
sb.append(" default=\"").append(pm.getDefaultValue()).append("\"");
}
+ if (InjectionUtils.isSupportedCollectionOrArray(type)) {
+ type = InjectionUtils.getActualType(genericType);
+ sb.append(" repeating=\"true\"");
+ }
String value = XmlSchemaPrimitiveUtils.getSchemaRepresentation(type);
if (value != null) {
sb.append(" type=\"").append(value).append("\"");
@@ -510,7 +519,7 @@ public class WadlGenerator implements Re
sb.append(">");
Parameter p = inbound ? getRequestBodyParam(ori)
: new Parameter(ParameterType.REQUEST_BODY, 0, "result");
- doWriteParam(sb, p, type, p.getName() == null ? "request" : p.getName());
+ doWriteParam(sb, p, type, type, p.getName() == null ? "request" : p.getName());
sb.append("</representation>");
} else {
type = getActualJaxbType(type, getMethod(ori), inbound);
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java?rev=1099619&r1=1099618&r2=1099619&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java Wed May 4 22:01:54 2011
@@ -18,6 +18,8 @@
*/
package org.apache.cxf.jaxrs.model.wadl;
+import java.util.List;
+
import javax.ws.rs.Consumes;
import javax.ws.rs.CookieParam;
import javax.ws.rs.GET;
@@ -75,6 +77,7 @@ public class BookStore {
@HeaderParam("hid") int headerId,
@CookieParam("cid") int cookieId,
@QueryParam("provider.bar") int queryParam,
+ @QueryParam("a") List<String> queryList,
@Context HttpHeaders headers,
@XMLName(value = "{http://books}thesuperbook2", prefix = "p1")
Book2 b) {
@@ -99,14 +102,14 @@ public class BookStore {
@GET
@Path("chapter")
- public Chapter getChaper() {
+ public Chapter getChapter() {
return new Chapter(1);
}
@GET
@Path("chapter2")
@WadlElement(response = Chapter.class)
- public Response getChaper2() {
+ public Response getChapter2() {
return Response.ok().entity(new Chapter(1)).build();
}
Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java?rev=1099619&r1=1099618&r2=1099619&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java (original)
+++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java Wed May 4 22:01:54 2011
@@ -408,9 +408,10 @@ public class WadlGeneratorTest extends A
WadlGenerator.WADL_NS, "request");
assertEquals(1, requestEls.size());
- verifyParameters(requestEls.get(0), 2,
+ verifyParameters(requestEls.get(0), 3,
new Param("hid", "header", "xs:int"),
- new Param("provider.bar", "query", "xs:int"));
+ new Param("provider.bar", "query", "xs:int"),
+ new Param("a", "query", "xs:string"));
verifyXmlJsonRepresentations(requestEls.get(0), book2El);
// PUT