You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/10/18 00:34:53 UTC

svn commit: r1185410 - /openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java

Author: rmannibucau
Date: Mon Oct 17 22:34:53 2011
New Revision: 1185410

URL: http://svn.apache.org/viewvc?rev=1185410&view=rev
Log:
managing inheritance in rest path

Modified:
    openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java

Modified: openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1185410&r1=1185409&r2=1185410&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Mon Oct 17 22:34:53 2011
@@ -39,6 +39,7 @@ import org.apache.openejb.util.Logger;
 
 import javax.naming.Context;
 import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
 import javax.ws.rs.core.UriBuilder;
 import java.io.IOException;
@@ -276,8 +277,17 @@ public abstract class RESTService implem
         if (context != null) {
             root += context;
         }
+
+        Class<?> usedClass = clazz;
+        while (usedClass.getAnnotation(Path.class) == null && usedClass.getSuperclass() != null) {
+            usedClass = usedClass.getSuperclass();
+        }
+        if (usedClass == null) {
+            throw new IllegalArgumentException("no @Path annotation on " + clazz.getName());
+        }
+
         try {
-            return UriBuilder.fromUri(new URI(root)).path(clazz).build().toURL().toString();
+            return UriBuilder.fromUri(new URI(root)).path(usedClass).build().toURL().toString();
         } catch (MalformedURLException e) {
             throw new OpenEJBRestRuntimeException("url is malformed", e);
         } catch (URISyntaxException e) {