summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java')
-rw-r--r--sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
index 2b3d0f7e41..7e8f473117 100644
--- a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
+++ b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
@@ -28,6 +28,7 @@ import java.util.Set;
import javax.servlet.Servlet;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.Path;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.binding.rest.RESTBinding;
@@ -354,6 +355,15 @@ public class RESTServiceBindingProvider implements EndpointProvider {
if (path.startsWith(servletHost.getContextPath())) {
path = path.substring(servletHost.getContextPath().length());
}
+ // Try to append the interface level @Path
+ Path p = interfaze.getAnnotation(Path.class);
+ String cp = p == null ? "" : p.value().trim();
+ if(cp.startsWith("/")) {
+ cp = cp.substring(1);
+ }
+ if(!"".equals(cp)) {
+ path = path +"/" + cp;
+ }
Class<?> cls =
RootResourceClassGenerator.generateRootResourceClass(interfaze,
path,