Author: slaws
Date: Thu Nov 1 14:56:04 2007
New Revision: 591151
URL: http://svn.apache.org/viewvc?rev=591151&view=rev
Log:
revert back JSONRPC changes to r586698, i.e. V1.0
Added:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBindingActivator.java
- copied unchanged from r586698,
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBindingActivator.java
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCService.java
- copied unchanged from r586698,
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCService.java
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.extension.helper.BindingActivator
- copied unchanged from r586698,
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.extension.helper.BindingActivator
Removed:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
Modified:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/pom.xml
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceServlet.java
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/ScaDomainScriptServlet.java
Modified:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/pom.xml?rev=591151&r1=591150&r2=591151&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/pom.xml
(original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/pom.xml
Thu Nov 1 14:56:04 2007
@@ -43,79 +43,47 @@
<version>0.8</version>
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly</artifactId>
+ <artifactId>tuscany-extension-helper</artifactId>
<version>1.0.1-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface-java</artifactId>
- <version>1.0.1-incubating-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core-spi</artifactId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
<version>1.0.1-incubating-SNAPSHOT</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core</artifactId>
+ <artifactId>tuscany-interface-java</artifactId>
<version>1.0.1-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-databinding</artifactId>
- <version>1.0.1-incubating-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-databinding-json</artifactId>
- <version>1.0.1-incubating-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-host-http</artifactId>
<version>1.0.1-incubating-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-jetty</artifactId>
- <version>1.0.1-incubating-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version> <!-- to keep compatible with older servlet
containers -->
<scope>provided</scope>
</dependency>
-
- <!-- Test Dependencies -->
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-embedded</artifactId>
+ <artifactId>tuscany-host-jetty</artifactId>
<version>1.0.1-incubating-SNAPSHOT</version>
<scope>test</scope>
</dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-implementation-java-runtime</artifactId>
- <version>1.0.1-incubating-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
+
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Modified:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java?rev=591151&r1=591150&r2=591151&view=diff
==============================================================================
---
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java
(original)
+++
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCBinding.java
Thu Nov 1 14:56:04 2007
@@ -19,40 +19,12 @@
package org.apache.tuscany.sca.binding.jsonrpc;
-import org.apache.tuscany.sca.assembly.Binding;
/**
* A model for the JSONRPC binding.
- *
- * @version $Rev$ $Date$
*/
-public class JSONRPCBinding implements Binding {
- private String name;
- private String uri;
-
- public String getName() {
- return name;
- }
-
- public String getURI() {
- return uri;
- }
-
- public void setURI(String uri) {
- this.uri = uri;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public boolean isUnresolved() {
- // The binding is always resolved
- return false;
- }
-
- public void setUnresolved(boolean unresolved) {
- // The binding is always resolved
- }
-
+public class JSONRPCBinding {
+
+ // empty as right now the json-rpc binding has no attributes
+
}
Modified:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceServlet.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceServlet.java?rev=591151&r1=591150&r2=591151&view=diff
==============================================================================
---
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceServlet.java
(original)
+++
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceServlet.java
Thu Nov 1 14:56:04 2007
@@ -24,24 +24,17 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
+import java.text.ParseException;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.apache.tuscany.sca.assembly.Binding;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.runtime.RuntimeComponentService;
-import org.apache.tuscany.sca.runtime.RuntimeWire;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONException;
-import org.osoa.sca.ServiceRuntimeException;
+import org.json.JSONObject;
import com.metaparadigm.jsonrpc.JSONRPCBridge;
+import com.metaparadigm.jsonrpc.JSONRPCResult;
import com.metaparadigm.jsonrpc.JSONRPCServlet;
/**
@@ -52,22 +45,12 @@
public class JSONRPCServiceServlet extends JSONRPCServlet {
private static final long serialVersionUID = 1L;
- transient Binding binding;
transient String serviceName;
transient Object serviceInstance;
- transient RuntimeComponentService componentService;
- transient InterfaceContract serviceContract;
transient Class<?> serviceInterface;
- public JSONRPCServiceServlet(Binding binding,
- RuntimeComponentService componentService,
- InterfaceContract serviceContract,
- Class<?> serviceInterface,
- Object serviceInstance) {
- this.binding = binding;
- this.serviceName = binding.getName();
- this.componentService = componentService;
- this.serviceContract = serviceContract;
+ public JSONRPCServiceServlet(String serviceName, Class<?>
serviceInterface, Object serviceInstance) {
+ this.serviceName = serviceName;
this.serviceInterface = serviceInterface;
this.serviceInstance = serviceInstance;
}
@@ -82,6 +65,7 @@
@Override
public void service(HttpServletRequest request, HttpServletResponse
response) throws IOException {
+
if (request.getParameter("smd") != null) {
handleSMDRequest(request, response);
} else {
@@ -96,8 +80,17 @@
}
}
- private void handleServiceRequest(HttpServletRequest request,
HttpServletResponse response)
- throws IOException {
+ private void handleServiceRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException {
+ /*
+ * Create a new bridge for every request to aviod all the problems
with
+ * JSON-RPC-Java storing the bridge in the session
+ */
+ HttpSession session = request.getSession();
+
+ JSONRPCBridge jsonrpcBridge = new JSONRPCBridge();
+ jsonrpcBridge.registerObject(serviceName, serviceInstance,
serviceInterface);
+ session.setAttribute("JSONRPCBridge", jsonrpcBridge);
+
// Encode using UTF-8, although We are actually ASCII clean as
// all unicode data is JSON escaped using backslash u. This is
// less data efficient for foreign character sets but it is
@@ -125,26 +118,24 @@
data.write(buf, 0, ret);
}
- org.codehaus.jettison.json.JSONObject jsonReq = null;
- String method = null;
+ JSONObject jsonReq = null;
+ JSONRPCResult jsonResp = null;
try {
- jsonReq = new
org.codehaus.jettison.json.JSONObject(data.toString());
- method = jsonReq.getString("method");
- } catch (JSONException e) {
+ jsonReq = new JSONObject(data.toString());
+ } catch (ParseException e) {
throw new RuntimeException("Unable to parse request", e);
}
-
- // check if it's a system request
- // or a method invocation
- byte[] bout;
- if (method.startsWith("system.")) {
- bout = handleJSONRPCSystemInvocation(request, response,
data.toString());
- } else {
- bout = handleJSONRPCMethodInvocation(request, response, jsonReq);
+ String method = jsonReq.getString("method");
+ if ((method != null) && (method.indexOf('.') < 0)) {
+ jsonReq.putOpt("method", serviceName + "." + method);
}
- // Send response to client
+ // invoke the request
+ jsonResp = jsonrpcBridge.call(new Object[] {request}, jsonReq);
+
+ byte[] bout = jsonResp.toString().getBytes("UTF-8");
+
out.write(bout);
out.flush();
out.close();
@@ -153,8 +144,7 @@
/**
* handles requests for the SMD descriptor for a service
*/
- protected void handleSMDRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException,
- UnsupportedEncodingException {
+ protected void handleSMDRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException, UnsupportedEncodingException {
String serviceUrl = request.getRequestURL().toString();
String smd = JavaToSmd.interfaceToSmd(serviceInterface, serviceUrl);
@@ -166,112 +156,5 @@
out.flush();
out.close();
}
-
- protected byte[] handleJSONRPCSystemInvocation(HttpServletRequest request,
HttpServletResponse response, String requestData) throws IOException,
- UnsupportedEncodingException {
- /*
- * Create a new bridge for every request to avoid all the problems
with
- * JSON-RPC-Java storing the bridge in the session
- */
- HttpSession session = request.getSession();
-
- JSONRPCBridge jsonrpcBridge = new JSONRPCBridge();
- jsonrpcBridge.registerObject(serviceName, serviceInstance,
serviceInterface);
- session.setAttribute("JSONRPCBridge", jsonrpcBridge);
-
- org.json.JSONObject jsonReq = null;
- com.metaparadigm.jsonrpc.JSONRPCResult jsonResp = null;
- try {
- jsonReq = new org.json.JSONObject(requestData);
- } catch (java.text.ParseException e) {
- throw new RuntimeException("Unable to parse request", e);
- }
-
- String method = jsonReq.getString("method");
- if ((method != null) && (method.indexOf('.') < 0)) {
- jsonReq.putOpt("method", serviceName + "." + method);
- }
-
- // invoke the request
- jsonResp = jsonrpcBridge.call(new Object[] {request}, jsonReq);
-
- return jsonResp.toString().getBytes("UTF-8");
- }
-
- protected byte[] handleJSONRPCMethodInvocation(HttpServletRequest request,
HttpServletResponse response, org.codehaus.jettison.json.JSONObject jsonReq)
throws IOException,
- UnsupportedEncodingException {
-
- String method = null;
- Object[] args = null;
- Object id = null;
- try {
- // Extract the method
- method = jsonReq.getString("method");
- if ((method != null) && (method.indexOf('.') < 0)) {
- jsonReq.putOpt("method", serviceName + "." + method);
- }
-
- // Extract the arguments
- JSONArray array = jsonReq.getJSONArray("params");
- args = new Object[array.length()];
- for (int i = 0; i < args.length; i++) {
- args[i] = array.get(i);
- }
- id = jsonReq.get("id");
-
- } catch (JSONException e) {
- throw new RuntimeException("Unable to find json method name", e);
- }
-
- // invoke the request
- RuntimeWire wire = componentService.getRuntimeWire(binding,
serviceContract);
- Operation jsonOperation = findOperation(method);
- Object result = null;
- org.codehaus.jettison.json.JSONObject jsonResponse = new
org.codehaus.jettison.json.JSONObject();
- try {
- result = wire.invoke(jsonOperation, args);
- try {
- jsonResponse.put("result", result);
- jsonResponse.putOpt("id", id);
- } catch (JSONException e) {
- throw new ServiceRuntimeException(e);
- }
- } catch (InvocationTargetException e) {
- try {
- jsonResponse.put("error", e.getCause());
- jsonResponse.putOpt("id", id);
- } catch (JSONException e1) {
- throw new ServiceRuntimeException(e);
- }
- }
-
- //get response to send to client
- return jsonResponse.toString().getBytes("UTF-8");
- }
- /**
- * Find the operation from the component service contract
- * @param componentService
- * @param method
- * @return
- */
- private Operation findOperation(String method) {
- if (method.contains(".")) {
- method = method.substring(method.lastIndexOf(".") + 1);
- }
-
- List<Operation> operations =
serviceContract.getInterface().getOperations();
-
//componentService.getBindingProvider(binding).getBindingInterfaceContract().getInterface().getOperations();
-
-
- Operation result = null;
- for (Operation o : operations) {
- if (o.getName().equalsIgnoreCase(method)) {
- result = o;
- break;
- }
- }
-
- return result;
- }
}
Modified:
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/ScaDomainScriptServlet.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/ScaDomainScriptServlet.java?rev=591151&r1=591150&r2=591151&view=diff
==============================================================================
---
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/ScaDomainScriptServlet.java
(original)
+++
incubator/tuscany/branches/sca-java-1.0.1/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/ScaDomainScriptServlet.java
Thu Nov 1 14:56:04 2007
@@ -35,8 +35,6 @@
* This script wrappers the JSON-RPC-Java jsonrpc.js script
* adding in at the bottom the JavaScript to create and initialize
* the variables representing the SCA services.
- *
- * @version $Rev$ $Date$
*/
public class ScaDomainScriptServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]