diff options
Diffstat (limited to 'java')
2 files changed, 2 insertions, 155 deletions
diff --git a/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java b/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java index 1444af4e71..5acc89f8be 100644 --- a/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java +++ b/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java @@ -19,7 +19,6 @@ package org.apache.tuscany.sca.binding.jsonrpc.provider; -import java.net.URI; import java.util.ArrayList; import java.util.List; @@ -45,12 +44,6 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentService; * @version $Rev$ $Date$ */ public class JSONRPCServiceBindingProvider implements ServiceBindingProvider { - - // Path to the scaDomain.js script - // Note: this is the same as the Ajax binding to keep the client code - // the same for clients using either the ajax or jsonrpc binding - private static final String SCA_DOMAIN_SCRIPT = "/SCADomain/scaDomain.js"; - private MessageFactory messageFactory; private Endpoint endpoint; @@ -98,7 +91,7 @@ public class JSONRPCServiceBindingProvider implements ServiceBindingProvider { Class<?> serviceInterface = getTargetJavaClass(serviceContract.getInterface()); // Create a Java proxy to the target service - Object proxy = component.getComponentContext().createSelfReference(serviceInterface, service).getService(); + Object proxy = component.getComponentContext().createSelfReference(serviceInterface, service).getService(); // Create and register a Servlet for this service JSONRPCServiceServlet serviceServlet = @@ -110,32 +103,11 @@ public class JSONRPCServiceBindingProvider implements ServiceBindingProvider { if (!mapping.endsWith("*")) { mapping += "*"; } - + servletHost.addServletMapping(mapping, serviceServlet); servletMappings.add(mapping); servletHost.addServletMapping(binding.getURI(), serviceServlet); servletMappings.add(binding.getURI()); - - // Register service to scaDomain.js - int port; - URI uri = URI.create(servletHost.getURLMapping(binding.getURI()).toString()); - port = uri.getPort(); - if (port == -1) { - port = servletHost.getDefaultPort(); - } - - // get the ScaDomainScriptServlet, if it doesn't yet exist create one - // this uses removeServletMapping / addServletMapping as there is no getServletMapping facility - domainScriptMapping = URI.create("http://localhost:" + port + SCA_DOMAIN_SCRIPT).toString(); - ScaDomainScriptServlet scaDomainServlet = - (ScaDomainScriptServlet)servletHost.getServletMapping(domainScriptMapping); - if (scaDomainServlet == null) { - scaDomainServlet = new ScaDomainScriptServlet(); - servletHost.addServletMapping(domainScriptMapping, scaDomainServlet); - } - - // Add this service to the SCA Domain Script Servlet - scaDomainServlet.addService(binding.getName()); } public void stop() { @@ -145,17 +117,6 @@ public class JSONRPCServiceBindingProvider implements ServiceBindingProvider { servletHost.removeServletMapping(mapping); } - // Unregister the service from the SCA Domain Script Servlet - ScaDomainScriptServlet scaDomainServlet = (ScaDomainScriptServlet) servletHost.getServletMapping(domainScriptMapping); - if (scaDomainServlet != null) { - scaDomainServlet.removeService(binding.getName()); - - // Remove the Servlet if there's no more registered services - if (scaDomainServlet.getServiceNames().isEmpty()) { - servletHost.removeServletMapping(domainScriptMapping); - } - } - } private Class<?> getTargetJavaClass(Interface targetInterface) { diff --git a/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java b/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java deleted file mode 100644 index 999588abf1..0000000000 --- a/java/sca/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tuscany.sca.binding.jsonrpc.provider; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * Servlet to handle requests for the scaDomain.js script. - * - * 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; - - protected transient List<String> serviceNames; - - public ScaDomainScriptServlet() { - serviceNames = new ArrayList<String>(); - } - - @Override - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - - ServletOutputStream os = response.getOutputStream(); - - os.println(); - os.println("/* Apache Tuscany scaDomain.js Header */"); - os.println(); - - writeJSONRPCJavaScript(os); - writeScaDomainCode(os, request.getServletPath()); - } - - /** - * Creates a JavaScript variable within the scaDomain script for each SCA service and - * initializes its value with the JSON-RPC client to invoke the serverside service. - */ - protected void writeScaDomainCode(ServletOutputStream out, String path) throws IOException { - out.println(); - out.println("/* Apache Tuscany scaDomain.js Footer */"); - out.println(); - out.println("function scaDomain() {}"); - - // remove the leading slash '/' character - path = path.substring(1); - - for (String serviceName : serviceNames) { - out.println(); - - // A slight hack to make the service function available with a variable named 'serviceName' - // to do that the JSONRpcClient is added to the scaDomain and then the service function is got from that - out.println("scaDomain." + serviceName + " = " + "new JSONRpcClient(\"" + serviceName + "\");"); - out.println(serviceName + " = scaDomain." + serviceName + ".Service;"); - } - - out.println(); - out.println("/** End of Apache Tuscany scaDomain.js */"); - out.println(); - } - - /** - * Reads the jsonrpc.js script from the classpath and adds its contents to the output stream. - */ - protected void writeJSONRPCJavaScript(ServletOutputStream os) throws IOException { - URL url = getClass().getResource("jsonrpc.js"); - InputStream is = url.openStream(); - int i; - while ((i = is.read()) != -1) { - os.write(i); - } - } - - public void addService(String serviceName) { - serviceNames.add(serviceName); - } - - public void removeService(String serviceName) { - serviceNames.remove(serviceName); - } - - public List<String> getServiceNames() { - return serviceNames; - } - -} |