diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta3-RC2/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta3-RC2/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3-RC2/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java b/sca-java-2.x/tags/2.0-Beta3-RC2/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java deleted file mode 100644 index f40d1f62ce..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC2/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java +++ /dev/null @@ -1,139 +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.comet.runtime; - -import org.apache.tuscany.sca.host.http.ServletHost; -import org.atmosphere.cpr.AtmosphereServlet; - -/** - * This class adds two servlets to the runtime: one exposing all the comet - * services, the other one exposing the javascript toolkit. - * - * Exposing all comet services through a single servlet is needed as browsers - * are undergone by the two http connection limit per domain so all comet - * services should send their responses via the same http connection to a single - * client. - * - * Dispatching to the corresponding endpoint and operation is done internally - * using Jersey RESTful Web Services integration with the AtmosphereServlet. - * - * The Javascript toolkit is not tied to any of the services so it is exposed by - * a separate servlet. - */ -public final class ServletFactory { - - /** - * Init-param key for the AtmosphereServlet defining where to look for - * Jersey classes. - */ - private static final String PACKAGE_KEY = "com.sun.jersey.config.property.packages"; - - /** - * Package of the class handling dispatching to endpoints. - */ - private static final String HANDLER_PACKAGE = "org.apache.tuscany.sca.binding.comet.runtime.handler"; - - /** - * Package of the class handling Javascript toolkit retrieval. - */ - private static final String JS_PACKAGE = "org.apache.tuscany.sca.binding.comet.runtime.javascript"; - - /** - * Init-param key for Atmosphere filters. - */ - private static final String FILTERS_KEY = "org.atmosphere.cpr.broadcastFilterClasses"; - - /** - * Defined filters. - */ - private static final String FILTERS = "org.atmosphere.client.JavascriptClientFilter"; - - /** - * Path where services will be exposed. - */ - public static final String PATH = "/tuscany-comet/*"; - - /** - * Path where Javascript toolkit will be exposed. - */ - public static final String JS_PATH = "/tuscany-comet-js/*"; - - /** - * The servlet that is exposing the comet services. - */ - private static AtmosphereServlet cometServlet = null; - - /** - * The servlet that is exposing the Javascript toolkit. - */ - private static AtmosphereServlet javascriptServlet = null; - - /** - * Prevent instantiation of singleton class. - */ - private ServletFactory() { - } - - /** - * Adds servlets to the underlying servlet host. No need for thread safety - * as calls to this method are sequentially done for each comet endpoint - * found by the runtime. - * - * @param servletHost - * underlying servlet host - * @return uri where servlet has been mapped - */ - public static String registerServlet(final ServletHost servletHost) { - String uri = registerCometServlet(servletHost); - registerJavascriptServlet(servletHost); - return uri; - } - - private static String registerCometServlet(ServletHost servletHost) { - if (ServletFactory.cometServlet == null) { - ServletFactory.cometServlet = new AtmosphereServlet(); - ServletFactory.cometServlet.addInitParameter(PACKAGE_KEY, HANDLER_PACKAGE); -// ServletFactory.cometServlet.addInitParameter(FILTERS_KEY, FILTERS); - String uri = servletHost.addServletMapping(PATH, cometServlet); - return uri; - } - return null; - } - - private static void registerJavascriptServlet(ServletHost servletHost) { - if (ServletFactory.javascriptServlet == null) { - ServletFactory.javascriptServlet = new AtmosphereServlet(); - ServletFactory.javascriptServlet.addInitParameter(PACKAGE_KEY, JS_PACKAGE); - servletHost.addServletMapping(JS_PATH, javascriptServlet); - } - } - - /** - * Removes servlets from the servlet host. - * - * @param servletHost - * the underlying servlet host. - */ - public static void unregisterServlet(final ServletHost servletHost) { - servletHost.removeServletMapping(PATH); - servletHost.removeServletMapping(JS_PATH); - } - -} |