From ee14a5168606daa06748d32216535f96e8a7416a Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 12 May 2010 06:21:38 +0000 Subject: Adding generated eTag to RPC style invocations git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@943389 13f79535-47bb-0310-9956-ffa450edef68 --- .../provider/RPCOperationSelectorInterceptor.java | 42 +++++++++++++++++----- .../apache/tuscany/sca/common/http/HTTPUtil.java | 19 ++++++++++ 2 files changed, 52 insertions(+), 9 deletions(-) (limited to 'sca-java-2.x/trunk') diff --git a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorInterceptor.java b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorInterceptor.java index 20878696d4..0eb81cfda5 100644 --- a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorInterceptor.java +++ b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/operationselector/rpc/provider/RPCOperationSelectorInterceptor.java @@ -23,14 +23,15 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.net.URLDecoder; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.QueryParam; import org.apache.tuscany.sca.common.http.HTTPContext; import org.apache.tuscany.sca.common.http.HTTPUtil; import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.interfacedef.DataType; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.java.JavaOperation; @@ -76,11 +77,16 @@ public class RPCOperationSelectorInterceptor implements Interceptor { try { HTTPContext bindingContext = (HTTPContext)msg.getBindingContext(); + if(! "get".equalsIgnoreCase(bindingContext.getHttpRequest().getMethod())) { + throw new RuntimeException("RPC Invocation only allowed over HTTP GET operations"); + } + String path = URLDecoder.decode(HTTPUtil.getRequestPath(bindingContext.getHttpRequest()), "UTF-8"); if (path.startsWith("/")) { path = path.substring(1); } + String operationName = bindingContext.getHttpRequest().getParameter("method"); Operation operation = findOperation( operationName ); @@ -92,12 +98,6 @@ public class RPCOperationSelectorInterceptor implements Interceptor { final JavaOperation javaOperation = (JavaOperation)operation; final Method method = javaOperation.getJavaMethod(); - List operationInputType = operation.getInputType().getLogical(); - int size = operationInputType.size(); - for (int i = 0; i < size; i++) { - System.out.println(operationInputType.get(i)); - } - List messageParameters = new ArrayList(); for(int i=0; i