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:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2010-04-27 21:43:08 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2010-04-27 21:43:08 +0000
commitf67991dfc3c5a924e684b7071810dca7055d2fe6 (patch)
tree4d07fa3444e0dbbd7738bea4622d00928ce32181 /sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
parent3f0c8d9c3553f5f49e79c35f0c269983db9adeb8 (diff)
Operation selector implementation that uses JAX-RS annotations to map http requests to properly annotated REST interfaces
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@938687 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java15
1 files changed, 8 insertions, 7 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 e70aed8680..a037e6e45c 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
@@ -105,7 +105,7 @@ public class RESTServiceBindingProvider implements EndpointProvider {
// configure data binding
if (this.wfProvider != null) {
- wfProvider.configureWireFormatInterfaceContract(service.getInterfaceContract());
+ wfProvider.configureWireFormatInterfaceContract(serviceContract);
}
} catch(CloneNotSupportedException e) {
this.serviceContract = service.getInterfaceContract();
@@ -116,7 +116,8 @@ public class RESTServiceBindingProvider implements EndpointProvider {
public void start() {
// Get the invokers for the supported operations
Servlet servlet = null;
- bindingListenerServlet = new RESTBindingListenerServlet(binding, messageFactory );
+ Invoker bindingInvoker = endpoint.getBindingInvocationChain().getHeadInvoker();
+ bindingListenerServlet = new RESTBindingListenerServlet(binding, bindingInvoker, messageFactory );
for (InvocationChain invocationChain : endpoint.getInvocationChains()) {
Operation operation = invocationChain.getTargetOperation();
String operationName = operation.getName();
@@ -181,7 +182,7 @@ public class RESTServiceBindingProvider implements EndpointProvider {
}
public InterfaceContract getBindingInterfaceContract() {
- return service.getInterfaceContract();
+ return serviceContract;
}
public boolean supportsOneWayInvocation() {
@@ -195,13 +196,13 @@ public class RESTServiceBindingProvider implements EndpointProvider {
InvocationChain bindingChain = endpoint.getBindingInvocationChain();
- if(osProvider != null) {
- bindingChain.addInterceptor(Phase.SERVICE_BINDING_OPERATION_SELECTOR, osProvider.createInterceptor());
- }
-
if (wfProvider != null) {
bindingChain.addInterceptor(Phase.SERVICE_BINDING_WIREFORMAT, wfProvider.createInterceptor());
}
+
+ if(osProvider != null) {
+ bindingChain.addInterceptor(Phase.SERVICE_BINDING_OPERATION_SELECTOR, osProvider.createInterceptor());
+ }
}