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 2009/12/11 19:33:07 UTC
svn commit: r889753 - in /cxf/branches/2.2.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: Fri Dec 11 18:33:04 2009
New Revision: 889753
URL: http://svn.apache.org/viewvc?rev=889753&view=rev
Log:
Merged revisions 889740 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r889740 | sergeyb | 2009-12-11 18:18:03 +0000 (Fri, 11 Dec 2009) | 1 line
JAXRS : better nested beans support in WADLGenerator
........
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 18:33:04 2009
@@ -1 +1 @@
-/cxf/trunk:889426,889595,889601
+/cxf/trunk:889426,889595,889601,889740
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.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.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=889753&r1=889752&r2=889753&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Fri Dec 11 18:33:04 2009
@@ -309,18 +309,30 @@
private void writeParam(StringBuilder sb, Parameter pm, OperationResourceInfo ori) {
Class<?> type = ori.getMethodToInvoke().getParameterTypes()[pm.getIndex()];
if (!"".equals(pm.getName())) {
- doWriteParam(sb, pm, type);
+ doWriteParam(sb, pm, type, pm.getName());
} else {
- Map<Parameter, Class<?>> pms = InjectionUtils.getParametersFromBeanClass(type, pm.getType());
- for (Map.Entry<Parameter, Class<?>> entry : pms.entrySet()) {
- doWriteParam(sb, entry.getKey(), entry.getValue());
+ doWriteBeanParam(sb, type, pm, null);
+ }
+ }
+
+ private void doWriteBeanParam(StringBuilder sb, Class<?> type, Parameter pm, String parentName) {
+ Map<Parameter, Class<?>> pms = InjectionUtils.getParametersFromBeanClass(type, pm.getType());
+ for (Map.Entry<Parameter, Class<?>> entry : pms.entrySet()) {
+ String name = entry.getKey().getName();
+ if (parentName != null) {
+ name = parentName + "." + name;
+ }
+ if (InjectionUtils.isPrimitive(entry.getValue())) {
+ doWriteParam(sb, entry.getKey(), entry.getValue(), name);
+ } else {
+ doWriteBeanParam(sb, entry.getValue(), entry.getKey(), name);
}
}
}
- private void doWriteParam(StringBuilder sb, Parameter pm, Class<?> type) {
+ private void doWriteParam(StringBuilder sb, Parameter pm, Class<?> type, String paramName) {
- sb.append("<param name=\"").append(pm.getName()).append("\" ");
+ sb.append("<param name=\"").append(paramName).append("\" ");
String style = ParameterType.PATH == pm.getType() ? "template"
: ParameterType.FORM == pm.getType() ? "query"
: pm.getType().toString().toLowerCase();
Modified: cxf/branches/2.2.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.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java?rev=889753&r1=889752&r2=889753&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java Fri Dec 11 18:33:04 2009
@@ -50,16 +50,18 @@
@POST
@Path("books/{bookid}")
+ //CHECKSTYLE:OFF
public Book addBook(@PathParam("id") int id,
@PathParam("bookid") int bookId,
@MatrixParam("mid") int matrixId,
@HeaderParam("hid") int headerId,
@CookieParam("cid") int cookieId,
+ @QueryParam("provider.bar") int queryParam,
@Context HttpHeaders headers,
Book b) {
return new Book(1);
}
-
+ //CHECKSTYLE:ON
@Path("booksubresource")
public Book getBook() {
return new Book(1);
@@ -85,6 +87,50 @@
public static class QueryBean {
private int a;
private int b;
+ private QueryBean2 bean;
+
+ public int getA() {
+ return a;
+ }
+
+ public int getB() {
+ return b;
+ }
+
+ public QueryBean2 getC() {
+ return bean;
+ }
+
+ public void setC(QueryBean2 c) {
+ bean = c;
+ }
+ }
+
+ public static class QueryBean2 {
+ private int a;
+ private int b;
+ private QueryBean3 bean;
+
+ public int getA() {
+ return a;
+ }
+
+ public int getB() {
+ return b;
+ }
+
+ public QueryBean3 getD() {
+ return bean;
+ }
+
+ public void setD(QueryBean3 d) {
+ bean = d;
+ }
+ }
+
+ public static class QueryBean3 {
+ private int a;
+ private int b;
public int getA() {
return a;
Modified: cxf/branches/2.2.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.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java?rev=889753&r1=889752&r2=889753&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java Fri Dec 11 18:33:04 2009
@@ -18,6 +18,8 @@
*/
package org.apache.cxf.jaxrs.model.wadl;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
@@ -82,14 +84,14 @@
assertNotNull(r);
assertEquals(WadlGenerator.WADL_TYPE.toString(),
r.getMetadata().getFirst(HttpHeaders.CONTENT_TYPE));
-// File f = new File("test.xml");
-// f.delete();
-// f.createNewFile();
-// System.out.println(f.getAbsolutePath());
-// FileOutputStream fos = new FileOutputStream(f);
-// fos.write(r.getEntity().toString().getBytes());
-// fos.flush();
-// fos.close();
+ File f = new File("test.xml");
+ f.delete();
+ f.createNewFile();
+ System.out.println(f.getAbsolutePath());
+ FileOutputStream fos = new FileOutputStream(f);
+ fos.write(r.getEntity().toString().getBytes());
+ fos.flush();
+ fos.close();
}
@Test
@@ -165,9 +167,13 @@
paramsEls = DOMUtils.getChildrenWithName(requestEls.get(0),
WadlGenerator.WADL_NS, "param");
- assertEquals(2, paramsEls.size());
+ assertEquals(6, paramsEls.size());
checkParameter(paramsEls.get(0), "a", "query");
checkParameter(paramsEls.get(1), "b", "query");
+ checkParameter(paramsEls.get(2), "c.a", "query");
+ checkParameter(paramsEls.get(3), "c.b", "query");
+ checkParameter(paramsEls.get(4), "c.d.a", "query");
+ checkParameter(paramsEls.get(5), "c.d.b", "query");
paramsEls = DOMUtils.getChildrenWithName(resourceEls.get(2),
WadlGenerator.WADL_NS, "param");