diff options
author | fmoga <fmoga@13f79535-47bb-0310-9956-ffa450edef68> | 2010-08-14 08:34:04 +0000 |
---|---|---|
committer | fmoga <fmoga@13f79535-47bb-0310-9956-ffa450edef68> | 2010-08-14 08:34:04 +0000 |
commit | f76d1a0e59602bb2c6d513a909c67c012ff95091 (patch) | |
tree | 76e68c5d7355f49960bbc2fbbe4660ec688697c1 /sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany | |
parent | f6570c4883b596edb5c4111fad32439b8342c8ee (diff) |
Added singleton servlet to serve javascript files.
Added sequential loading of javascript dependencies.
Changed snapshot version of atmosphere to stable 0.6.1.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@985445 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany')
-rw-r--r-- | sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java | 1 | ||||
-rw-r--r-- | sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java | 29 | ||||
-rw-r--r-- | sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java (renamed from sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingHandler.java) | 6 | ||||
-rw-r--r-- | sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java | 31 |
4 files changed, 53 insertions, 14 deletions
diff --git a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java index bd7a570955..5ad23097b5 100644 --- a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java +++ b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java @@ -26,7 +26,6 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeEndpoint; -import org.atmosphere.cpr.AtmosphereServlet; public class CometServiceBindingProvider implements ServiceBindingProvider { diff --git a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java index 6a89bf8a06..62e90693fa 100644 --- a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java +++ b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java @@ -11,33 +11,42 @@ import org.atmosphere.cpr.AtmosphereServlet; public class ServletFactory { private static final String PACKAGE_KEY = "com.sun.jersey.config.property.packages"; - private static final String PACKAGE_VALUE = "org.apache.tuscany.sca.binding.comet.runtime"; + private static final String PACKAGE_VALUE = "org.apache.tuscany.sca.binding.comet.runtime.handler"; + private static final String JS_PACKAGE_VALUE = "org.apache.tuscany.sca.binding.comet.runtime.javascript"; public static final String ENDPOINTS_KEY = "org.apache.tuscany.sca.binding.comet.endpoints"; public static final String OPERATIONS_KEY = "org.apache.tuscany.sca.binding.comet.operations"; public static final String PATH = "/tuscany-comet/*"; + public static final String JS_PATH = "/org.apache.tuscany.sca.cometComponentContext.js/*"; - private static AtmosphereServlet servlet = null; + private static AtmosphereServlet cometServlet = null; + private static AtmosphereServlet javascriptServlet = null; public static synchronized void registerServlet(ServletHost servletHost, RuntimeEndpoint endpoint, Operation operation) { - if (servlet == null) { - servlet = new AtmosphereServlet(); - servlet.addInitParameter(PACKAGE_KEY, PACKAGE_VALUE); - servletHost.addServletMapping(PATH, servlet); + if (cometServlet == null) { + cometServlet = new AtmosphereServlet(); + cometServlet.addInitParameter(PACKAGE_KEY, PACKAGE_VALUE); + servletHost.addServletMapping(PATH, cometServlet); Map<String, RuntimeEndpoint> endpoints = new HashMap<String, RuntimeEndpoint>(); - servlet.getServletContext().setAttribute(ENDPOINTS_KEY, endpoints); + cometServlet.getServletContext().setAttribute(ENDPOINTS_KEY, endpoints); Map<String, Operation> operations = new HashMap<String, Operation>(); - servlet.getServletContext().setAttribute(OPERATIONS_KEY, operations); + cometServlet.getServletContext().setAttribute(OPERATIONS_KEY, operations); } String url = endpoint.getBinding().getURI() + "/" + operation.getName(); System.out.println("Adding endpoint and operation for url: " + url); Map<String, RuntimeEndpoint> endpoints = - (Map<String, RuntimeEndpoint>)servlet.getServletContext().getAttribute(ENDPOINTS_KEY); + (Map<String, RuntimeEndpoint>)cometServlet.getServletContext().getAttribute(ENDPOINTS_KEY); endpoints.put(url, endpoint); Map<String, Operation> operations = - (Map<String, Operation>)servlet.getServletContext().getAttribute(OPERATIONS_KEY); + (Map<String, Operation>)cometServlet.getServletContext().getAttribute(OPERATIONS_KEY); operations.put(url, operation); + + if (javascriptServlet == null) { + javascriptServlet = new AtmosphereServlet(); + javascriptServlet.addInitParameter(PACKAGE_KEY, JS_PACKAGE_VALUE); + servletHost.addServletMapping(JS_PATH, javascriptServlet); + } } } diff --git a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingHandler.java b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java index f8e6470c4c..88f0460839 100644 --- a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingHandler.java +++ b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java @@ -1,4 +1,4 @@ -package org.apache.tuscany.sca.binding.comet.runtime; +package org.apache.tuscany.sca.binding.comet.runtime.handler; import java.lang.reflect.InvocationTargetException; import java.util.Map; @@ -10,10 +10,10 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; -import javax.ws.rs.core.Request; +import org.apache.tuscany.sca.binding.comet.runtime.EventsLogger; +import org.apache.tuscany.sca.binding.comet.runtime.ServletFactory; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.runtime.RuntimeEndpoint; import org.atmosphere.annotation.Broadcast; diff --git a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java new file mode 100644 index 0000000000..92aac9ca80 --- /dev/null +++ b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java @@ -0,0 +1,31 @@ +package org.apache.tuscany.sca.binding.comet.runtime.javascript; + +import java.io.InputStream; +import java.io.SequenceInputStream; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.PathSegment; + +@Path("/") +@Produces("text/javascript") +public class JavascriptResource { + + private static final String[] DEPENDENCIES = {"/jquery-1.4.2.js", "/jquery.atmosphere.js", + "/org.apache.tuscany.sca.cometComponentContext.js"}; + + @GET + public InputStream getJavascript(@PathParam("file") PathSegment fileName) { + InputStream stream = null; + for (String dependency : DEPENDENCIES) { + if (stream == null) { + stream = getClass().getResourceAsStream(dependency); + } else { + stream = new SequenceInputStream(stream, getClass().getResourceAsStream(dependency)); + } + } + return stream; + } +} |