You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2011/02/16 17:09:24 UTC
svn commit: r1071299 -
/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java
Author: bluk
Date: Wed Feb 16 16:09:24 2011
New Revision: 1071299
URL: http://svn.apache.org/viewvc?rev=1071299&view=rev
Log:
Update WADLGenerator to handle DynamicResources
See [WINK-333]
Thanks to Jim Long for reporting the issue.
Modified:
incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java
Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java?rev=1071299&r1=1071298&r2=1071299&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/model/wadl/WADLGenerator.java Wed Feb 16 16:09:24 2011
@@ -37,6 +37,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.xml.namespace.QName;
+import org.apache.wink.common.DynamicResource;
import org.apache.wink.common.internal.registry.Injectable;
import org.apache.wink.common.internal.registry.Injectable.ParamType;
import org.apache.wink.common.internal.registry.metadata.ClassMetadata;
@@ -113,6 +114,19 @@ public class WADLGenerator {
/* set the path */
String path = metadata.getPath();
+
+ if (path == null) {
+ Class<?> resClass = metadata.getResourceClass();
+ if (DynamicResource.class.isAssignableFrom(resClass)) {
+ try {
+ DynamicResource dynRes = (DynamicResource)resClass.newInstance();
+ path = dynRes.getPath();
+ } catch (Exception e) {
+ // Drop through and look for @Path annotation.
+ }
+ }
+ }
+
UriTemplateProcessor processor = JaxRsUriTemplateProcessor.newNormalizedInstance(path);
String pathStr = processor.getTemplate();
for (String var : processor.getVariableNames()) {