diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-27 21:43:08 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-27 21:43:08 +0000 |
commit | f67991dfc3c5a924e684b7071810dca7055d2fe6 (patch) | |
tree | 4d07fa3444e0dbbd7738bea4622d00928ce32181 /sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java | |
parent | 3f0c8d9c3553f5f49e79c35f0c269983db9adeb8 (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.java | 15 |
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()); + } } |