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 2010/02/19 11:21:59 UTC
svn commit: r911772 - in /cxf/trunk/rt/frontend/jaxrs/src:
main/java/org/apache/cxf/jaxrs/model/wadl/
main/java/org/apache/cxf/jaxrs/utils/
test/java/org/apache/cxf/jaxrs/model/wadl/
Author: sergeyb
Date: Fri Feb 19 10:21:59 2010
New Revision: 911772
URL: http://svn.apache.org/viewvc?rev=911772&view=rev
Log:
JAXRS : minor update to WADLGenerator for it not to list ignorable query properties
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=911772&r1=911771&r2=911772&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Fri Feb 19 10:21:59 2010
@@ -401,7 +401,7 @@
}
private void doWriteBeanParam(StringBuilder sb, Class<?> type, Parameter pm, String parentName) {
- Map<Parameter, Class<?>> pms = InjectionUtils.getParametersFromBeanClass(type, pm.getType());
+ Map<Parameter, Class<?>> pms = InjectionUtils.getParametersFromBeanClass(type, pm.getType(), true);
for (Map.Entry<Parameter, Class<?>> entry : pms.entrySet()) {
String name = entry.getKey().getName();
if (parentName != null) {
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=911772&r1=911771&r2=911772&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java Fri Feb 19 10:21:59 2010
@@ -19,6 +19,7 @@
package org.apache.cxf.jaxrs.utils;
+import java.lang.annotation.Annotation;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
@@ -845,13 +846,15 @@
}
public static Map<Parameter, Class<?>> getParametersFromBeanClass(Class<?> beanClass,
- ParameterType type) {
+ ParameterType type,
+ boolean checkIgnorable) {
Map<Parameter, Class<?>> params = new LinkedHashMap<Parameter, Class<?>>();
for (Method m : beanClass.getMethods()) {
if (m.getName().startsWith("get") && m.getParameterTypes().length == 0
&& m.getName().length() > 3) {
String propertyName = m.getName().substring(3).toLowerCase();
- if ("class".equals(propertyName)) {
+ if ("class".equals(propertyName)
+ || checkIgnorable && canPropertyBeIgnored(m, propertyName)) {
continue;
}
params.put(new Parameter(type, propertyName), m.getReturnType());
@@ -860,6 +863,16 @@
return params;
}
+ private static boolean canPropertyBeIgnored(Method m, String propertyName) {
+ for (Annotation ann : m.getAnnotations()) {
+ String annType = ann.annotationType().getName();
+ if ("org.apache.cxf.aegis.type.java5.IgnoreProperty".equals(annType)
+ || "javax.xml.bind.annotation.XmlTransient".equals(annType)) {
+ return true;
+ }
+ }
+ return false;
+ }
public static boolean isPrimitive(Class<?> type) {
return type.isPrimitive()
Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java?rev=911772&r1=911771&r2=911772&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java Fri Feb 19 10:21:59 2010
@@ -31,7 +31,9 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
+import javax.xml.bind.annotation.XmlTransient;
+import org.apache.cxf.aegis.type.java5.IgnoreProperty;
import org.apache.cxf.jaxrs.ext.Description;
import org.apache.cxf.jaxrs.ext.xml.XMLName;
import org.apache.cxf.jaxrs.fortest.jaxb.packageinfo.Book2;
@@ -121,6 +123,7 @@
return a;
}
+ @IgnoreProperty
public int getB() {
return b;
}
@@ -129,9 +132,6 @@
return bean;
}
- public void setC(QueryBean2 c) {
- bean = c;
- }
}
public static class QueryBean2 {
@@ -151,9 +151,6 @@
return bean;
}
- public void setD(QueryBean3 d) {
- bean = d;
- }
}
public static class QueryBean3 {
@@ -164,6 +161,7 @@
return a;
}
+ @XmlTransient
public int getB() {
return b;
}
Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java?rev=911772&r1=911771&r2=911772&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java Fri Feb 19 10:21:59 2010
@@ -361,13 +361,11 @@
// 6 parameters are expected
paramsEls = DOMUtils.getChildrenWithName(requestEls.get(0),
WadlGenerator.WADL_NS, "param");
- assertEquals(6, paramsEls.size());
+ assertEquals(4, paramsEls.size());
checkParameter(paramsEls.get(0), "a", "query", "xs:int");
- checkParameter(paramsEls.get(1), "b", "query", "xs:int");
- checkParameter(paramsEls.get(2), "c.a", "query", "xs:int");
- checkParameter(paramsEls.get(3), "c.b", "query", "xs:int");
- checkParameter(paramsEls.get(4), "c.d.a", "query", "xs:int");
- checkParameter(paramsEls.get(5), "c.d.b", "query", "xs:int");
+ checkParameter(paramsEls.get(1), "c.a", "query", "xs:int");
+ checkParameter(paramsEls.get(2), "c.b", "query", "xs:int");
+ checkParameter(paramsEls.get(3), "c.d.a", "query", "xs:int");
assertEquals(0, DOMUtils.getChildrenWithName(requestEls.get(0),
WadlGenerator.WADL_NS, "representation").size());
//check response