summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-07-28 10:58:07 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-07-28 10:58:07 +0000
commit04dcd09976ecc5aa2948993b9a9a2d90d239ee44 (patch)
treef3d3148a4c4ae6d56185cbd55333aaf119532d26 /sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main
parent19aadc9a267456fe8b84a9a4d3afca74ba9ef969 (diff)
Delete old beta3 branch as its going to be recreated from the current trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1151789 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingProviderFactory.java69
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometCallbackInvoker.java69
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometReferenceBindingProvider.java67
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java88
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/JSONUtil.java145
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java139
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/CometCallback.java39
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/Status.java27
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java168
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptGenerator.java91
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java62
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometEndpointManager.java51
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometOperationManager.java51
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometSessionManager.java51
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory20
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/cometComponentContext.js53
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.atmosphere.js703
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.guid.js75
-rw-r--r--sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.json-2.2.min.js45
19 files changed, 0 insertions, 2013 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingProviderFactory.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingProviderFactory.java
deleted file mode 100644
index f6c393dcb4..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometBindingProviderFactory.java
+++ /dev/null
@@ -1,69 +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.binding.comet.CometBinding;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.host.http.ServletHost;
-import org.apache.tuscany.sca.host.http.ServletHostHelper;
-import org.apache.tuscany.sca.provider.BindingProviderFactory;
-import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
-import org.apache.tuscany.sca.provider.ServiceBindingProvider;
-import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
-
-/**
- * Factory for binding providers.
- */
-public class CometBindingProviderFactory implements BindingProviderFactory<CometBinding> {
-
- /**
- * Underlying servlet host.
- */
- private final ServletHost servletHost;
-
- public CometBindingProviderFactory(final ExtensionPointRegistry extensionPoints) {
- this.servletHost = ServletHostHelper.getServletHost(extensionPoints);
- }
-
- @Override
- public Class<CometBinding> getModelType() {
- return CometBinding.class;
- }
-
- /**
- * Creates a provider for a reference that has comet binding specified in
- * the scdl.
- */
- @Override
- public ReferenceBindingProvider createReferenceBindingProvider(final RuntimeEndpointReference endpoint) {
- return new CometReferenceBindingProvider(endpoint);
- }
-
- /**
- * Creates a provider for a service that has comet binding specified in the
- * scdl.
- */
- @Override
- public ServiceBindingProvider createServiceBindingProvider(final RuntimeEndpoint endpoint) {
- return new CometServiceBindingProvider(endpoint, this.servletHost);
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometCallbackInvoker.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometCallbackInvoker.java
deleted file mode 100644
index b973c90728..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometCallbackInvoker.java
+++ /dev/null
@@ -1,69 +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.assembly.EndpointReference;
-import org.apache.tuscany.sca.binding.comet.runtime.callback.Status;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometSessionManager;
-import org.apache.tuscany.sca.core.invocation.Constants;
-import org.apache.tuscany.sca.core.invocation.impl.MessageImpl;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.Message;
-import org.atmosphere.cpr.Broadcaster;
-
-/**
- * Receives callback invocations and sends messages back to the browser.
- */
-public class CometCallbackInvoker implements Invoker {
-
- protected Operation operation;
- protected EndpointReference endpoint;
-
- public CometCallbackInvoker(final Operation operation, final EndpointReference endpoint) {
- this.operation = operation;
- this.endpoint = endpoint;
- }
-
- /**
- * Sends message back to the browser client and reports connection status to
- * the runtime.
- *
- * @param msg
- * message to send to the browser
- * @return the connection status
- */
- @Override
- public Message invoke(final Message msg) {
- String sessionId = (String) msg.getHeaders().get(Constants.RELATES_TO);
- Broadcaster broadcaster = CometSessionManager.get(sessionId);
- Message response = new MessageImpl();
- if (broadcaster == null) {
- response.setBody(Status.CLIENT_DISCONNECTED);
- } else {
- String callbackMethod = msg.getTo().getURI();
- Object[] body = msg.getBody();
- broadcaster.broadcast(callbackMethod + "($.secureEvalJSON('" + JSONUtil.encodeResponse(body[0]) + "'))");
- response.setBody(Status.OK);
- }
- return response;
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometReferenceBindingProvider.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometReferenceBindingProvider.java
deleted file mode 100644
index 9777b0c82c..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometReferenceBindingProvider.java
+++ /dev/null
@@ -1,67 +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.assembly.EndpointReference;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
-
-/**
- * Provider for references and callbacks that have comet binding specified in
- * the scdl. Used by callbacks to create invokers. Not used for comet
- * references as they are javascript proxies not Java objects.
- */
-public class CometReferenceBindingProvider implements ReferenceBindingProvider {
-
- /**
- * Endpoint for which the binding provider is created.
- */
- private final EndpointReference endpoint;
-
- public CometReferenceBindingProvider(final EndpointReference endpoint) {
- this.endpoint = endpoint;
- }
-
- @Override
- public Invoker createInvoker(final Operation operation) {
- return new CometCallbackInvoker(operation, endpoint);
- }
-
- @Override
- public void start() {
- }
-
- @Override
- public void stop() {
- }
-
- @Override
- public InterfaceContract getBindingInterfaceContract() {
- return endpoint.getReference().getInterfaceContract();
- }
-
- @Override
- public boolean supportsOneWayInvocation() {
- return false;
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
deleted file mode 100644
index 58f422c01b..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
+++ /dev/null
@@ -1,88 +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.assembly.ComponentService;
-import org.apache.tuscany.sca.binding.comet.runtime.javascript.JavascriptGenerator;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometEndpointManager;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometOperationManager;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometSessionManager;
-import org.apache.tuscany.sca.host.http.ServletHost;
-import org.apache.tuscany.sca.interfacedef.Interface;
-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;
-
-/**
- * Provider for services having comet binding specified in the scdl.
- */
-public class CometServiceBindingProvider implements ServiceBindingProvider {
-
- private RuntimeEndpoint endpoint;
- private ServletHost servletHost;
-
- public CometServiceBindingProvider(final RuntimeEndpoint endpoint, final ServletHost servletHost) {
- this.endpoint = endpoint;
- this.servletHost = servletHost;
- }
-
- /**
- * Init the comet binding server-side infrastructure.
- */
- @Override
- public void start() {
- String deployedURI = ServletFactory.registerServlet(this.servletHost);
- endpoint.setDeployedURI(deployedURI);
- final ComponentService service = this.endpoint.getService();
- final Interface serviceInterface = service.getInterfaceContract().getInterface();
- JavascriptGenerator.generateServiceProxy(service);
- for (final Operation operation : serviceInterface.getOperations()) {
- final String url = "/" + endpoint.getService().getName() + "/" + operation.getName();
- CometEndpointManager.add(url, endpoint);
- CometOperationManager.add(url, operation);
- JavascriptGenerator.generateMethodProxy(service, operation);
- }
- }
-
- /**
- * Stop the comet binding server-side infrastructure.
- */
- @Override
- public void stop() {
- ServletFactory.unregisterServlet(this.servletHost);
- CometEndpointManager.clear();
- CometOperationManager.clear();
- CometSessionManager.clear();
- }
-
- @Override
- public InterfaceContract getBindingInterfaceContract() {
- return endpoint.getService().getInterfaceContract();
- }
-
- @Override
- public boolean supportsOneWayInvocation() {
- // set to false so the runtime will add a nonBlocking interceptor to
- // handle @OneWay calls
- return false;
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/JSONUtil.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/JSONUtil.java
deleted file mode 100644
index 79ec156131..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/JSONUtil.java
+++ /dev/null
@@ -1,145 +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 java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-import com.google.gson.Gson;
-
-/**
- * Helper class to facilitate JSON convertions.
- */
-public class JSONUtil {
-
- private static Gson gson = new Gson();
-
- /**
- * Convert request parameters from JSON to operation parameter types.
- *
- * @param jsonData
- * parameters in JSON array format
- * @param operation
- * the operation to invoke
- * @return an array of objects
- */
- public static Object[] decodeJsonParamsForOperation(String jsonData, Operation operation) {
- Object[] args = new Object[operation.getInputType().getLogical().size()];
- final String[] json = parseArray(jsonData);
- int index = 0;
- for (final DataType<?> dataType : operation.getInputType().getLogical()) {
- args[index] = gson.fromJson(json[index], dataType.getPhysical());
- index++;
- }
- return args;
- }
-
- /**
- * Split the JSON array containing the arguments for the method call in
- * order to avoid converting JSON to Object[]. Converting each object
- * separately to it's corresponding type avoids type mismatch problems at
- * service invocation.
- *
- * @param jsonArray
- * the JSON array
- * @return an array of JSON formatted strings
- */
- private static String[] parseArray(String jsonArray) {
- List<String> objects = new ArrayList<String>();
- int bracketNum = 0;
- int parNum = 0;
- int quoteNum = 0;
- int startPos = 1;
- for (int i = 0; i < jsonArray.length(); i++) {
- switch (jsonArray.charAt(i)) {
- case '{':
- bracketNum++;
- break;
- case '}':
- bracketNum--;
- break;
- case '[':
- parNum++;
- break;
- case ']':
- parNum--;
- break;
- case '\"':
- quoteNum++;
- break;
- case ',':
- if ((bracketNum == 0) && (parNum == 1) && quoteNum % 2 == 0) {
- objects.add(jsonArray.substring(startPos, i));
- startPos = i + 1;
- }
- }
- }
- objects.add(jsonArray.substring(startPos, jsonArray.length() - 1));
- return objects.toArray(new String[] {});
- }
-
- private JSONUtil() {
- }
-
- /**
- * Converts a Java object to JSON format.
- *
- * @param response
- * the response to convert
- * @return the object in JSON format
- */
- public static String encodeResponse(Object response) {
- return gson.toJson(response);
- }
-
- /**
- * Convert request parameters as JSON array.
- *
- * @param params
- * request parameters
- * @return request parameters as JSON array
- */
- public static String encodeRequestParams(Object[] params) {
- StringBuilder builder = new StringBuilder();
- for (int index = 0; index < params.length; index++) {
- Object param = params[index];
- builder.append(index == 0 ? "[" : ",");
- builder.append(gson.toJson(param));
- }
- builder.append("]");
- return builder.toString();
- }
-
- /**
- * Decode JSON to a given Java type.
- *
- * @param responseJSON
- * the json to convert
- * @param returnType
- * the return type to convert to
- * @return the converted object
- */
- public static Object decodeResponse(String responseJSON, Class<?> returnType) {
- return gson.fromJson(responseJSON, returnType);
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java b/sca-java-2.x/branches/2.0-Beta3/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/branches/2.0-Beta3/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);
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/CometCallback.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/CometCallback.java
deleted file mode 100644
index 1deefb2afa..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/CometCallback.java
+++ /dev/null
@@ -1,39 +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.callback;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * The comet callback interface.
- */
-@Remotable
-public interface CometCallback {
-
- /**
- * Send message back to the browser client.
- *
- * @param message
- * message to send
- * @return status of the underlying connection with the browser
- */
- Status sendMessage(Object message);
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/Status.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/Status.java
deleted file mode 100644
index 6b479a144a..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/callback/Status.java
+++ /dev/null
@@ -1,27 +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.callback;
-
-/**
- * Status of the connection with the browser client.
- */
-public enum Status {
- OK, CLIENT_DISCONNECTED
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java
deleted file mode 100644
index 0c9902211c..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/handler/CometBindingHandler.java
+++ /dev/null
@@ -1,168 +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.handler;
-
-import java.lang.reflect.InvocationTargetException;
-
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-
-import org.apache.tuscany.sca.assembly.EndpointReference;
-import org.apache.tuscany.sca.binding.comet.runtime.JSONUtil;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometEndpointManager;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometOperationManager;
-import org.apache.tuscany.sca.binding.comet.runtime.manager.CometSessionManager;
-import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl;
-import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointReferenceImpl;
-import org.apache.tuscany.sca.core.invocation.Constants;
-import org.apache.tuscany.sca.core.invocation.impl.MessageImpl;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-import org.atmosphere.cpr.Broadcaster;
-import org.atmosphere.cpr.BroadcasterLifeCyclePolicy;
-import org.atmosphere.cpr.BroadcasterLifeCyclePolicy.ATMOSPHERE_RESOURCE_POLICY;
-import org.atmosphere.cpr.BroadcasterLifeCyclePolicyListener;
-import org.atmosphere.jersey.JerseyBroadcaster;
-import org.atmosphere.jersey.SuspendResponse;
-
-/**
- * Handles requests for comet services and for creating a persistent connection.
- */
-@Path("/")
-public class CometBindingHandler {
-
- /**
- * Suspends the current HTTP connection.
- *
- * @param sessionId
- * session id to identify client
- * @return a response that is not committed, just flushed
- */
- @GET
- @Path("/connect")
- public SuspendResponse<String> connect(@QueryParam("sessionId") String sessionId) {
- Broadcaster broadcaster = CometSessionManager.get(sessionId);
- if (broadcaster == null) {
- broadcaster = new JerseyBroadcaster(sessionId);
- BroadcasterLifeCyclePolicy policy = new BroadcasterLifeCyclePolicy.Builder().policy(
- ATMOSPHERE_RESOURCE_POLICY.EMPTY_DESTROY).build();
- broadcaster.setBroadcasterLifeCyclePolicy(policy);
- broadcaster.addBroadcasterLifeCyclePolicyListener(new CometBroadcasterLifeCyclePolicyListener(sessionId));
- CometSessionManager.add(sessionId, broadcaster);
- }
- return new SuspendResponse.SuspendResponseBuilder<String>().broadcaster(broadcaster).outputComments(true)
- .build();
- }
-
- /**
- * Handles requests for service operations.
- *
- * @param service
- * the service to invoke
- * @param method
- * the method to invoke
- * @param sessionId
- * the client session id
- * @param callbackMethod
- * the callbackMethod to invoke once a response is available
- * @param jsonData
- * method arguments sent by the client in JSON format
- * @throws InvocationTargetException
- * if a problem occurs while invoking the service implementation
- */
- @POST
- @Path("/{service}/{method}")
- public void handleRequest(@PathParam("service") String service, @PathParam("method") String method,
- @FormParam("sessionId") String sessionId, @FormParam("callbackMethod") String callbackMethod,
- @FormParam("params") String jsonData) throws InvocationTargetException {
- String url = "/" + service + "/" + method;
- RuntimeEndpoint wire = CometEndpointManager.get(url);
- Operation operation = CometOperationManager.get(url);
-
- final Object[] args = JSONUtil.decodeJsonParamsForOperation(jsonData, operation);
- Message msg = createMessageWithMockedCometReference(args, sessionId, callbackMethod);
- boolean isVoidReturnType = operation.getOutputType().getLogical().isEmpty();
- if (!isVoidReturnType) {
- Object response = wire.invoke(operation, args);
- Broadcaster broadcaster = CometSessionManager.get(sessionId);
- if (broadcaster != null) {
- broadcaster.broadcast(callbackMethod + "($.secureEvalJSON('" + JSONUtil.encodeResponse(response)
- + "'))");
- }
- } else {
- wire.invoke(operation, msg);
- }
- }
-
- /**
- * Creates a message with a mocked EndpointReference in the 'from' field to
- * simulate a comet reference (because requests are coming from browsers).
- * This is needed by the callback mechanism to have a source for the
- * request.
- *
- * @param args
- * arguments for the method invocation
- * @param sessionId
- * the session id of the client
- * @param callbackMethod
- * method to call once a response is available
- * @return an invocation message
- */
- private Message createMessageWithMockedCometReference(Object[] args, String sessionId, String callbackMethod) {
- Message msg = new MessageImpl();
- msg.getHeaders().put(Constants.MESSAGE_ID, sessionId);
- msg.setBody(args);
- EndpointReference re = new RuntimeEndpointReferenceImpl();
- RuntimeEndpointImpl callbackEndpoint = new RuntimeEndpointImpl();
- callbackEndpoint.setURI(callbackMethod);
- re.setCallbackEndpoint(callbackEndpoint);
- msg.setFrom(re);
- return msg;
- }
-
- public class CometBroadcasterLifeCyclePolicyListener implements BroadcasterLifeCyclePolicyListener {
-
- private String sessionId;
-
- public CometBroadcasterLifeCyclePolicyListener(String sessionId) {
- this.sessionId = sessionId;
- }
-
- @Override
- public void onDestroy() {
- }
-
- @Override
- public void onEmpty() {
- CometSessionManager.remove(sessionId);
- }
-
- @Override
- public void onIdle() {
- }
-
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptGenerator.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptGenerator.java
deleted file mode 100644
index ecf470da2d..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptGenerator.java
+++ /dev/null
@@ -1,91 +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.javascript;
-
-import org.apache.tuscany.sca.assembly.ComponentService;
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * Generates javascript proxies for the comet services.
- */
-public class JavascriptGenerator {
-
- /**
- * Namespace for the Tuscany Comet Javascript toolkit.
- */
- public static final String JS_NAMESPACE = "SCA";
-
- /**
- * Name for the SCA component context.
- */
- private static final String COMPONENT_CONTEXT = "this.CometComponentContext";
-
- /**
- * Name for the object performing comet specific tasks.
- */
- private static final String TUSCANY_COMET = "SCA.TuscanyComet";
-
- private static StringBuffer javascript = new StringBuffer();
-
- private JavascriptGenerator() {
- }
-
- public static StringBuffer getJavascript() {
- return JavascriptGenerator.javascript;
- }
-
- /**
- * Generates the javascript proxy for a service.
- *
- * @param service
- * the service for which generation is performed
- */
- public static void generateServiceProxy(final ComponentService service) {
- JavascriptGenerator.javascript.append(JavascriptGenerator.COMPONENT_CONTEXT + "." + service.getName()
- + " = new Object();\n");
- }
-
- /**
- * Generates the method inside the service proxy for the specified
- * operation.
- *
- * @param service
- * the service containing the operation
- * @param operation
- * the operation
- */
- public static void generateMethodProxy(final ComponentService service, final Operation operation) {
- JavascriptGenerator.javascript.append(JavascriptGenerator.COMPONENT_CONTEXT + "." + service.getName() + "."
- + operation.getName() + " = function(");
- for (int i = 0; i < operation.getInputType().getLogical().size(); i++) {
- JavascriptGenerator.javascript.append("p" + i + ", ");
- }
- JavascriptGenerator.javascript.append("callbackMethod) {\n");
- // send method argumets as JSON array
- JavascriptGenerator.javascript.append(" var params = [];\n");
- for (int i = 0; i < operation.getInputType().getLogical().size(); i++) {
- JavascriptGenerator.javascript.append(" params.push(p" + i + ");\n");
- }
- JavascriptGenerator.javascript.append(" " + JavascriptGenerator.TUSCANY_COMET + ".callAsync('"
- + service.getName() + "/" + operation.getName() + "', $.toJSON(params), callbackMethod);\n");
- JavascriptGenerator.javascript.append("}\n");
- }
-
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java
deleted file mode 100644
index 06f7bfb546..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/javascript/JavascriptResource.java
+++ /dev/null
@@ -1,62 +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.javascript;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.SequenceInputStream;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-/**
- * Handles calls for the retrieving the Javascript toolkit.
- */
-@Path("/")
-@Produces("text/javascript")
-public class JavascriptResource {
-
- /**
- * Dependencies for the Tuscany Comet Javascript API.
- */
- private static final String[] DEPENDENCIES = { "/jquery.atmosphere.js", "/jquery.json-2.2.min.js",
- "/jquery.guid.js", "/cometComponentContext.js" };
-
- /**
- * Method called when the Javascript toolkit is requested.
- *
- * @return InputStream containing the Javascript code.
- */
- @GET
- @Path("/org.apache.tuscany.sca.CometComponentContext.js")
- public InputStream getJavascript() {
- InputStream stream = null;
- for (String dependency : JavascriptResource.DEPENDENCIES) {
- if (stream == null) {
- stream = this.getClass().getResourceAsStream(dependency);
- } else {
- stream = new SequenceInputStream(stream, this.getClass().getResourceAsStream(dependency));
- }
- }
- final String generatedJs = JavascriptGenerator.getJavascript().toString() + "\n}";
- return new SequenceInputStream(stream, new ByteArrayInputStream(generatedJs.getBytes()));
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometEndpointManager.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometEndpointManager.java
deleted file mode 100644
index 3d9707ca8e..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometEndpointManager.java
+++ /dev/null
@@ -1,51 +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.manager;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-
-/**
- * Manager for Tuscany comet endpoints. This is a thread-safe singleton class.
- */
-public class CometEndpointManager {
-
- private static final ConcurrentMap<String, RuntimeEndpoint> endpoints = new ConcurrentHashMap<String, RuntimeEndpoint>();
-
- private CometEndpointManager() {
- }
-
- public static void add(String url, RuntimeEndpoint endpoint) {
- endpoints.put(url, endpoint);
- }
-
- public static RuntimeEndpoint get(String url) {
- return endpoints.get(url);
- }
-
- public static void remove(String url) {
- endpoints.remove(url);
- }
-
- public static void clear() {
- endpoints.clear();
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometOperationManager.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometOperationManager.java
deleted file mode 100644
index ea6657e786..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometOperationManager.java
+++ /dev/null
@@ -1,51 +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.manager;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * Manager for Tuscany comet operations. This is a thread-safe singleton class.
- */
-public class CometOperationManager {
-
- private static final ConcurrentMap<String, Operation> operations = new ConcurrentHashMap<String, Operation>();
-
- private CometOperationManager() {
- }
-
- public static void add(String url, Operation operation) {
- operations.put(url, operation);
- }
-
- public static Operation get(String url) {
- return operations.get(url);
- }
-
- public static void remove(String url) {
- operations.remove(url);
- }
-
- public static void clear() {
- operations.clear();
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometSessionManager.java b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometSessionManager.java
deleted file mode 100644
index 59fe8d8f2d..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/manager/CometSessionManager.java
+++ /dev/null
@@ -1,51 +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.manager;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.atmosphere.cpr.Broadcaster;
-
-/**
- * Manager for Tuscany comet sessions. This is a thread-safe singleton class.
- */
-public class CometSessionManager {
-
- private static final ConcurrentMap<String, Broadcaster> broadcasters = new ConcurrentHashMap<String, Broadcaster>();
-
- private CometSessionManager() {
- }
-
- public static void add(String sessionId, Broadcaster broadcaster) {
- broadcasters.put(sessionId, broadcaster);
- }
-
- public static Broadcaster get(String sessionId) {
- return broadcasters.get(sessionId);
- }
-
- public static void remove(String sessionId) {
- broadcasters.remove(sessionId);
- }
-
- public static void clear() {
- broadcasters.clear();
- }
-}
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
deleted file mode 100644
index cb6db39c4e..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
+++ /dev/null
@@ -1,20 +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.
-
-# Implementation class for the binding extension
-org.apache.tuscany.sca.binding.comet.runtime.CometBindingProviderFactory;model=org.apache.tuscany.sca.binding.comet.CometBinding
-
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/cometComponentContext.js b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/cometComponentContext.js
deleted file mode 100644
index cddbaa3fa0..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/cometComponentContext.js
+++ /dev/null
@@ -1,53 +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.
- */
-
-var SCA = new function() {
-
-this.TuscanyComet = {
- appUrl: 'tuscany-comet',
- connectedEndpoint : null,
- sessionId : $.Guid.New(),
- connect : function(transport) {
- if(transport == null) {
- transport = 'streaming';
- }
- $.atmosphere.subscribe(document.location.toString() + this.appUrl + "/connect?sessionId=" + this.sessionId,
- this.callback,
- $.atmosphere.request = {
- method : 'GET',
- transport : transport,
- maxRequest: 1000000,
- });
- this.connectedEndpoint = $.atmosphere.response;
- },
- callAsync : function(url, params, callbackMethod) {
- this.connectedEndpoint.push(document.location.toString()
- + this.appUrl + '/' + url,
- null,
- $.atmosphere.request = {
- method : 'POST',
- data : 'sessionId=' + this.sessionId + '&callbackMethod=' + callbackMethod.name + '&params=' + params
- });
- },
- callback : function(response) {
- eval(response.responseBody);
- }
-};
-
-
-this.CometComponentContext = new Object();
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.atmosphere.js b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.atmosphere.js
deleted file mode 100644
index a52e0793b7..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.atmosphere.js
+++ /dev/null
@@ -1,703 +0,0 @@
-/**
- * Licensed 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.
- */
-jQuery.atmosphere = function()
-{
- var activeRequest;
- jQuery(window).unload(function()
- {
- if (activeRequest){
- activeRequest.abort();
- }
-
- if( !(typeof(transferDoc) == 'undefined') ){
- if(transferDoc != null){
- transferDoc = null;
- CollectGarbage();
- }
- }
- });
-
- return {
- version : 0.7,
- response : {
- status: 200,
- responseBody : '',
- headers : [],
- state : "messageReceived",
- transport : "polling",
- push : [],
- error: null,
- id : 0
- },
-
- request : {},
- abordingConnection: false,
- logLevel : 'info',
- callbacks: [],
- activeTransport : null,
- websocket : null,
- killHiddenIFrame : null,
-
- subscribe: function(url, callback, request)
- {
- jQuery.atmosphere.request = jQuery.extend({
- timeout: 300000,
- method: 'GET',
- headers: {},
- contentType : '',
- cache: true,
- async: true,
- ifModified: false,
- callback: null,
- dataType: '',
- url : url,
- data : '',
- suspend : true,
- maxRequest : 60,
- lastIndex : 0,
- logLevel : 'info',
- requestCount : 0,
- fallbackTransport : 'streaming',
- transport : 'long-polling',
- webSocketImpl: null
-
- }, request);
-
- logLevel = jQuery.atmosphere.request.logLevel || 'info';
- if (callback != null) {
- jQuery.atmosphere.addCallback(callback);
- jQuery.atmosphere.request.callback = callback;
- }
-
- if (jQuery.atmosphere.request.transport != jQuery.atmosphere.activeTransport) {
- jQuery.atmosphere.closeSuspendedConnection();
- }
- jQuery.atmosphere.activeTransport = jQuery.atmosphere.request.transport;
-
- if (jQuery.atmosphere.request.transport != 'websocket') {
- jQuery.atmosphere.executeRequest();
- } else if (jQuery.atmosphere.request.transport == 'websocket') {
- if (jQuery.atmosphere.request.webSocketImpl == null && !window.WebSocket) {
- jQuery.atmosphere.log(logLevel, ["Websocket is not supported, using request.fallbackTransport"]);
- jQuery.atmosphere.request.transport = jQuery.atmosphere.request.fallbackTransport;
- jQuery.atmosphere.response.transport = jQuery.atmosphere.request.fallbackTransport;
- jQuery.atmosphere.executeRequest();
- }
- else {
- jQuery.atmosphere.executeWebSocket();
- }
- }
- },
-
- /**
- * Always make sure one transport is used, not two at the same time except for Websocket.
- */
- closeSuspendedConnection : function () {
- jQuery.atmosphere.abordingConnection = true;
- if (activeRequest != null) {
- activeRequest.abort();
- }
-
- if (jQuery.atmosphere.websocket != null) {
- jQuery.atmosphere.websocket.close();
- jQuery.atmosphere.websocket = null;
- }
- jQuery.atmosphere.abordingConnection = false;
-
- if (!(typeof(transferDoc) == 'undefined')) {
- if (transferDoc != null) {
- transferDoc = null;
- CollectGarbage();
- }
- }
- },
-
- executeRequest: function()
- {
-
- if (jQuery.atmosphere.request.transport == 'streaming') {
- if (jQuery.browser.msie) {
- jQuery.atmosphere.ieStreaming();
- return;
- } else if (jQuery.browser.opera) {
- jQuery.atmosphere.operaStreaming();
- return;
- }
- }
-
- if (jQuery.atmosphere.request.requestCount++ < jQuery.atmosphere.request.maxRequest) {
- jQuery.atmosphere.response.push = function (url)
- {
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
- };
-
- var request = jQuery.atmosphere.request;
- var response = jQuery.atmosphere.response;
- if (request.transport != 'polling') {
- response.transport = request.transport;
- }
-
- var ajaxRequest;
- var error = false;
- if (jQuery.browser.msie) {
- var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
- for (var i = 0; i < activexmodes.length; i++) {
- try {
- ajaxRequest = new ActiveXObject(activexmodes[i])
- }
- catch(e) {
- }
- }
- } else if (window.XMLHttpRequest) {
- ajaxRequest = new XMLHttpRequest();
- }
-
- if (request.suspend) {
- activeRequest = ajaxRequest;
- }
-
- ajaxRequest.open(request.method, request.url, true);
- ajaxRequest.setRequestHeader("X-Atmosphere-Framework", jQuery.atmosphere.version);
- ajaxRequest.setRequestHeader("X-Atmosphere-Transport", request.transport);
- ajaxRequest.setRequestHeader("X-Cache-Date", new Date().getTime());
-
- if (jQuery.atmosphere.request.contentType != '') {
- ajaxRequest.setRequestHeader("Content-Type", jQuery.atmosphere.request.contentType);
- }
-
- for(var x in request.headers) {
- ajaxRequest.setRequestHeader(x, request.headers[x]);
- }
-
- if (!jQuery.browser.msie) {
- ajaxRequest.onerror = function()
- {
- error = true;
- try {
- response.status = XMLHttpRequest.status;
- }
- catch(e) {
- response.status = 404;
- }
-
- response.state = "error";
- jQuery.atmosphere.invokeCallback(response);
- ajaxRequest.abort();
- activeRequest = null;
- }
- }
-
- ajaxRequest.onreadystatechange = function()
- {
- if (jQuery.atmosphere.abordingConnection) return;
-
- var junkForWebkit = false;
- var update = false;
- if (ajaxRequest.readyState == 4) {
- jQuery.atmosphere.request = request;
- if (request.suspend && ajaxRequest.status == 200) {
- jQuery.atmosphere.executeRequest();
- }
-
- if (jQuery.browser.msie) {
- update = true;
- }
- } else if (!jQuery.browser.msie && ajaxRequest.readyState == 3 && ajaxRequest.status == 200) {
- update = true;
- } else {
- clearTimeout(request.id);
- }
-
- if (update) {
- if (request.transport == 'streaming') {
- response.responseBody = ajaxRequest.responseText.substring(request.lastIndex, ajaxRequest.responseText.length);
-
- if (request.lastIndex == 0 && response.responseBody.indexOf("<!-- Welcome to the Atmosphere Framework.") != -1) {
- var endOfJunk = "<!-- EOD -->";
- var endOfJunkLenght = "<!-- EOD -->".length;
- var junkEnd = response.responseBody.indexOf(endOfJunk) + endOfJunkLenght;
-
- if (junkEnd != ajaxRequest.responseText.length) {
- response.responseBody = response.responseBody.substring(junkEnd);
- } else {
- junkForWebkit = true;
- }
- }
- request.lastIndex = ajaxRequest.responseText.length;
- if (junkForWebkit) return;
- } else {
- response.responseBody = ajaxRequest.responseText;
- }
-
- try {
- response.status = ajaxRequest.status;
- response.headers = ajaxRequest.getAllResponseHeaders();
- }
- catch(e) {
- response.status = 404;
- }
-
- if (request.suspend) {
- response.state = "messageReceived";
- } else {
- response.state = "messagePublished";
- }
-
- if (response.responseBody.indexOf("parent.callback") != -1) {
- var index = 0;
- var responseBody = response.responseBody;
- while ( responseBody.indexOf("('", index) != -1) {
- var start = responseBody.indexOf("('", index) + 2;
- var end = responseBody.indexOf("')", index);
- response.responseBody = responseBody.substring(start, end);
- index = end + 2;
- jQuery.atmosphere.invokeCallback(response);
- }
- } else {
- jQuery.atmosphere.invokeCallback(response);
- }
- }
- };
- ajaxRequest.send(request.data);
-
- if (request.suspend) {
- request.id = setTimeout(function()
- {
- ajaxRequest.abort();
- jQuery.atmosphere.subscribe(request.url, null, request);
-
- }, request.timeout);
- }
- } else {
- jQuery.atmosphere.log(logLevel, ["Max re-connection reached."]);
- }
- },
-
- operaStreaming: function()
- {
-
- jQuery.atmosphere.closeSuspendedConnection();
-
- var url = jQuery.atmosphere.request.url;
- var callback = jQuery.atmosphere.request.callback;
- jQuery.atmosphere.response.push = function (url)
- {
- jQuery.atmosphere.request.transport = 'polling';
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
- };
-
- function init()
- {
- var iframe = document.createElement("iframe");
- iframe.style.width = "0px";
- iframe.style.height = "0px";
- iframe.style.border = "0px";
- iframe.id = "__atmosphere";
- document.body.appendChild(iframe);
- var d;
- if (iframe.contentWindow) {
- d = iframe.contentWindow.document;
- } else if (iframe.document) {
- d = iframe.document;
- } else if (iframe.contentDocument) {
- d = iframe.contentDocument;
- }
-
- if (/\?/i.test(url)) url += "&";
- else url += "?";
- url += "callback=jquery.atmosphere.streamingCallback";
- iframe.src = url;
- }
-
- init();
-
- },
-
- ieStreaming : function()
- {
-
- if (!(typeof(transferDoc) == 'undefined')) {
- if (transferDoc != null) {
- transferDoc = null;
- CollectGarbage();
- }
- }
-
- var url = jQuery.atmosphere.request.url;
- jQuery.atmosphere.response.push = function (url)
- {
- jQuery.atmosphere.request.transport = 'polling';
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
- };
-
- //Must not use var here to avoid IE from disconnecting
- transferDoc = new ActiveXObject("htmlfile");
- transferDoc.open();
- transferDoc.close();
- var ifrDiv = transferDoc.createElement("div");
- transferDoc.body.appendChild(ifrDiv);
- ifrDiv.innerHTML = "<iframe src='" + url + "'></iframe>";
- transferDoc.parentWindow.callback = jQuery.atmosphere.streamingCallback;
- }
- ,
-
- streamingCallback : function(args)
- {
- var response = jQuery.atmosphere.response;
- response.transport = "streaming";
- response.status = 200;
- response.responseBody = args;
- response.state = "messageReceived";
-
- jQuery.atmosphere.invokeCallback(response);
- }
- ,
-
- executeWebSocket : function()
- {
- var request = jQuery.atmosphere.request;
- var success = false;
- jQuery.atmosphere.log(logLevel, ["Invoking executeWebSocket"]);
- jQuery.atmosphere.response.transport = "websocket";
- var url = jQuery.atmosphere.request.url;
- var callback = jQuery.atmosphere.request.callback;
-
- if (url.indexOf("http") == -1 && url.indexOf("ws") == -1) {
- url = jQuery.atmosphere.parseUri(document.location, url);
- }
- var location = url.replace('http:', 'ws:').replace('https:', 'wss:');
-
- var websocket = null;
- if (jQuery.atmosphere.request.webSocketImpl != null) {
- websocket = jQuery.atmosphere.request.webSocketImpl;
- } else {
- websocket = new WebSocket(location);
- }
-
- jQuery.atmosphere.websocket = websocket;
-
- jQuery.atmosphere.response.push = function (url)
- {
- var data;
- var ws = jQuery.atmosphere.websocket;
- try {
- data = jQuery.atmosphere.request.data;
- ws.send(jQuery.atmosphere.request.data);
- } catch (e) {
- jQuery.atmosphere.log(logLevel, ["Websocket failed. Downgrading to Comet and resending " + data]);
- // Websocket is not supported, reconnect using the fallback transport.
- request.transport = request.fallbackTransport;
- jQuery.atmosphere.response.transport = request.fallbackTransport;
- jQuery.atmosphere.request = request;
- jQuery.atmosphere.executeRequest();
-
- ws.onclose = function(message) {
- };
- ws.close();
- }
- };
-
- websocket.onopen = function(message)
- {
- success = true;
- jQuery.atmosphere.response.state = 'openning';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
-
- websocket.onmessage = function(message)
- {
- var data = message.data;
- if (data.indexOf("parent.callback") != -1) {
- var start = data.indexOf("('") + 2;
- var end = data.indexOf("')");
- jQuery.atmosphere.response.responseBody = data.substring(start, end);
- }
- else {
- jQuery.atmosphere.response.responseBody = data;
- }
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
-
- websocket.onerror = function(message)
- {
- jQuery.atmosphere.response.state = 'error';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
-
- websocket.onclose = function(message)
- {
- if (!success) {
- var data = jQuery.atmosphere.request.data;
- jQuery.atmosphere.log(logLevel, ["Websocket failed. Downgrading to Comet and resending " + data]);
- // Websocket is not supported, reconnect using the fallback transport.
- request.transport = request.fallbackTransport;
- jQuery.atmosphere.response.transport = request.fallbackTransport;
-
- jQuery.atmosphere.request = request;
- jQuery.atmosphere.executeRequest();
- } else {
- jQuery.atmosphere.response.state = 'closed';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- }
- };
- }
- ,
-
- addCallback: function(func)
- {
- if (jQuery.inArray(func, jQuery.atmosphere.callbacks) == -1) {
- jQuery.atmosphere.callbacks.push(func);
- }
- }
- ,
-
- removeCallback: function(func)
- {
- if (jQuery.inArray(func, jQuery.atmosphere.callbacks) != -1) {
- jQuery.atmosphere.callbacks.splice(index);
- }
- }
- ,
-
- invokeCallback: function(response)
- {
- var call = function (index, func)
- {
- func(response);
- };
-
- jQuery.atmosphere.log(logLevel, ["Invoking " + jQuery.atmosphere.callbacks.length + " callbacks"]);
- if (jQuery.atmosphere.callbacks.length > 0) {
- jQuery.each(jQuery.atmosphere.callbacks, call);
- }
- }
- ,
-
- publish: function(url, callback, request)
- {
- jQuery.atmosphere.request = jQuery.extend({
- connected: false,
- timeout: 60000,
- method: 'POST',
- contentType : '',
- headers: {},
- cache: true,
- async: true,
- ifModified: false,
- callback: null,
- dataType: '',
- url : url,
- data : '',
- suspend : false,
- maxRequest : 60,
- logLevel : 'info',
- requestCount : 0,
- transport: 'polling'
- }, request);
-
- if (callback != null) {
- jQuery.atmosphere.addCallback(callback);
- }
- jQuery.atmosphere.request.transport = 'polling';
- if (jQuery.atmosphere.request.transport != 'websocket') {
- jQuery.atmosphere.executeRequest();
- } else if (jQuery.atmosphere.request.transport == 'websocket') {
- if (!window.WebSocket) {
- alert("WebSocket not supported by this browser");
- }
- else {
- jQuery.atmosphere.executeWebSocket();
- }
- }
- }
- ,
-
- unload: function (arg) {
- if (window.addEventListener) {
- document.addEventListener('unload', arg, false);
- window.addEventListener('unload', arg, false);
- } else { // IE
- document.attachEvent('onunload', arg);
- window.attachEvent('onunload', arg);
- }
- }
- ,
-
- kill_load_bar : function() {
- if (jQuery.atmosphere.killHiddenIFrame == null) {
- jQuery.atmosphere.killHiddenIFrame = document.createElement('iframe');
- var ifr = jQuery.atmosphere.killHiddenIFrame;
- ifr.style.display = 'block';
- ifr.style.width = '0';
- ifr.style.height = '0';
- ifr.style.border = '0';
- ifr.style.margin = '0';
- ifr.style.padding = '0';
- ifr.style.overflow = 'hidden';
- ifr.style.visibility = 'hidden';
- }
- document.body.appendChild(ifr);
- ifr.src = 'about:blank';
- document.body.removeChild(ifr);
- }
- ,
-
- log: function (level, args)
- {
- if (window.console)
- {
- var logger = window.console[level];
- if (typeof logger == 'function')
- {
- logger.apply(window.console, args);
- }
- }
- }
- ,
-
- warn: function()
- {
- log('warn', arguments);
- }
- ,
-
-
- info :function()
- {
- if (logLevel != 'warn')
- {
- log('info', arguments);
- }
- }
- ,
-
- debug: function()
- {
- if (logLevel == 'debug')
- {
- log('debug', arguments);
- }
- }
- ,
-
- close : function()
- {
- jQuery.atmosphere.closeSuspendedConnection();
- },
-
-
- parseUri : function( baseUrl , uri )
- {
- var protocol = window.location.protocol;
- var host = window.location.host;
- var path = window.location.pathname;
- var parameters = {};
- var anchor = '';
- var pos;
-
- if ( (pos = uri.search( /\:/ )) >= 0 )
- {
- protocol = uri.substring( 0, pos + 1 );
- uri = uri.substring( pos + 1 );
- }
-
- if ( (pos = uri.search( /\#/ )) >= 0 )
- {
- anchor = uri.substring( pos + 1 );
- uri = uri.substring( 0, pos );
- }
-
- if ( (pos = uri.search( /\?/ )) >= 0 )
- {
- var paramsStr = uri.substring( pos + 1 ) + '&;';
- uri = uri.substring( 0, pos );
- while ( (pos = paramsStr.search( /\&/ )) >= 0 )
- {
- var paramStr = paramsStr.substring( 0, pos );
- paramsStr = paramsStr.substring( pos + 1 );
-
- if ( paramStr.length )
- {
- var equPos = paramStr.search( /\=/ );
- if ( equPos < 0 )
- {
- parameters[paramStr] = '';
- }
- else
- {
- parameters[paramStr.substring( 0, equPos )] =
- decodeURIComponent( paramStr.substring( equPos + 1 ) );
- }
- }
- }
- }
-
- if ( uri.search( /\/\// ) == 0 )
- {
- uri = uri.substring( 2 );
- if ( (pos = uri.search( /\// )) >= 0 )
- {
- host = uri.substring( 0, pos );
- path = uri.substring( pos );
- }
- else
- {
- host = uri;
- path = '/';
- }
- } else if ( uri.search( /\// ) == 0 )
- {
- path = uri;
- }
-
- else // relative to directory
- {
- var p = path.lastIndexOf( '/' );
- if ( p < 0 )
- {
- path = '/';
- } else if ( p < path.length - 1 )
- {
- path = path.substring( 0, p + 1 );
- }
-
- while ( uri.search( /\.\.\// ) == 0 )
- {
- var p = path.lastIndexOf( '/', path.lastIndexOf( '/' ) - 1 );
- if ( p>= 0 )
- {
- path = path.substring( 0, p + 1 );
- }
- uri = uri.substring( 3 );
- }
- path = path + uri;
- }
-
- var uri = protocol + '//' + host + path;
- var div = '?';
- for ( var key in parameters )
- {
- uri += div + key + '=' + encodeURIComponent( parameters[key] );
- div = '&';
- }
- return uri;
- }
-
- }
-
-}
- (); \ No newline at end of file
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.guid.js b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.guid.js
deleted file mode 100644
index 1c7ad4e2fb..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.guid.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * jQuery Guid v1.0.0-1
- * Requires jQuery 1.2.6+ (Not tested with earlier versions).
- * Copyright (c) 2010 Aaron E. [jquery at happinessinmycheeks dot com]
- * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
- * Usage:
- * jQuery.Guid.Value() // Returns value of internal Guid. If no guid has been specified, returns a new one (value is then stored internally).
- * jQuery.Guid.New() // Returns a new Guid and sets it's value internally. Also accepts GUID, Sets it internally.
- * jQuery.Guid.Empty() // Returns an empty Guid 00000000-0000-0000-0000-000000000000.
- * jQuery.Guid.IsEmpty() // Returns boolean. True if empty/undefined/blank/null.
- * jQuery.Guid.IsValid() // Returns boolean. True valid guid, false if not.
- * jQuery.Guid.Set() // Retrns Guid. Sets Guid to user specified Guid, if invalid, returns an empty guid.
- *
- */
-
-jQuery.extend({
- Guid: {
- Set: function(val) {
- var value;
- if (arguments.length == 1) {
- if (this.IsValid(arguments[0])) {
- value = arguments[0];
- } else {
- value = this.Empty();
- }
- }
- $(this).data("value", value);
- return value;
- },
-
- Empty: function() {
- return "00000000-0000-0000-0000-000000000000";
- },
-
- IsEmpty: function(gid) {
- return gid == this.Empty() || typeof (gid) == 'undefined' || gid == null || gid == '';
- },
-
- IsValid: function(value) {
- rGx = new RegExp("\\b(?:[A-F0-9]{8})(?:-[A-F0-9]{4}){3}-(?:[A-F0-9]{12})\\b");
- return rGx.exec(value) != null;
- },
-
- New: function() {
- if (arguments.length == 1 && this.IsValid(arguments[0])) {
- $(this).data("value", arguments[0]);
- value = arguments[0];
- return value;
- }
-
- var res = [], hv;
- var rgx = new RegExp("[2345]");
- for (var i = 0; i < 8; i++) {
- hv = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
- if (rgx.exec(i.toString()) != null) {
- if (i == 3) { hv = "6" + hv.substr(1, 3); }
- res.push("-");
- }
- res.push(hv.toUpperCase());
- }
- value = res.join('');
- $(this).data("value", value);
- return value;
- },
-
- Value: function() {
- if ($(this).data("value")) {
- return $(this).data("value");
- }
- var val = this.New();
- $(this).data("value", val);
- return val;
- }
- }
-})(); \ No newline at end of file
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.json-2.2.min.js b/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.json-2.2.min.js
deleted file mode 100644
index dcb67abefe..0000000000
--- a/sca-java-2.x/branches/2.0-Beta3/modules/binding-comet-runtime/src/main/resources/jquery.json-2.2.min.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * jQuery JSON Plugin
- * version: 2.1 (2009-08-14)
- *
- * This document is licensed as free software under the terms of the
- * MIT License: http://www.opensource.org/licenses/mit-license.php
- *
- * Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
- * website's http://www.json.org/json2.js, which proclaims:
- * "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
- * I uphold.
- *
- * It is also influenced heavily by MochiKit's serializeJSON, which is
- * copyrighted 2005 by Bob Ippolito.
- */
-(function($){$.toJSON=function(o)
-{if(typeof(JSON)=='object'&&JSON.stringify)
-return JSON.stringify(o);var type=typeof(o);if(o===null)
-return"null";if(type=="undefined")
-return undefined;if(type=="number"||type=="boolean")
-return o+"";if(type=="string")
-return $.quoteString(o);if(type=='object')
-{if(typeof o.toJSON=="function")
-return $.toJSON(o.toJSON());if(o.constructor===Date)
-{var month=o.getUTCMonth()+1;if(month<10)month='0'+month;var day=o.getUTCDate();if(day<10)day='0'+day;var year=o.getUTCFullYear();var hours=o.getUTCHours();if(hours<10)hours='0'+hours;var minutes=o.getUTCMinutes();if(minutes<10)minutes='0'+minutes;var seconds=o.getUTCSeconds();if(seconds<10)seconds='0'+seconds;var milli=o.getUTCMilliseconds();if(milli<100)milli='0'+milli;if(milli<10)milli='0'+milli;return'"'+year+'-'+month+'-'+day+'T'+
-hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
-if(o.constructor===Array)
-{var ret=[];for(var i=0;i<o.length;i++)
-ret.push($.toJSON(o[i])||"null");return"["+ret.join(",")+"]";}
-var pairs=[];for(var k in o){var name;var type=typeof k;if(type=="number")
-name='"'+k+'"';else if(type=="string")
-name=$.quoteString(k);else
-continue;if(typeof o[k]=="function")
-continue;var val=$.toJSON(o[k]);pairs.push(name+":"+val);}
-return"{"+pairs.join(", ")+"}";}};$.evalJSON=function(src)
-{if(typeof(JSON)=='object'&&JSON.parse)
-return JSON.parse(src);return eval("("+src+")");};$.secureEvalJSON=function(src)
-{if(typeof(JSON)=='object'&&JSON.parse)
-return JSON.parse(src);var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
-return eval("("+src+")");else
-throw new SyntaxError("Error parsing JSON, source is not valid.");};$.quoteString=function(string)
-{if(string.match(_escapeable))
-{return'"'+string.replace(_escapeable,function(a)
-{var c=_meta[a];if(typeof c==='string')return c;c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
-return'"'+string+'"';};var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var _meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};})(jQuery); \ No newline at end of file