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()) {