You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fm...@apache.org on 2011/05/31 12:47:41 UTC
svn commit: r1129611 - in
/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main:
java/org/apache/tuscany/sca/sample/comet/ webapp/WEB-INF/
Author: fmoga
Date: Tue May 31 10:47:41 2011
New Revision: 1129611
URL: http://svn.apache.org/viewvc?rev=1129611&view=rev
Log:
Code cleanup.
Modified:
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Event.java
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/EventProcessor.java
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/webapp/WEB-INF/web.composite
Modified: tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Event.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Event.java?rev=1129611&r1=1129610&r2=1129611&view=diff
==============================================================================
--- tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Event.java (original)
+++ tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Event.java Tue May 31 10:47:41 2011
@@ -1,3 +1,21 @@
+/*
+ * 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.sample.comet;
public class Event {
Modified: tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/EventProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/EventProcessor.java?rev=1129611&r1=1129610&r2=1129611&view=diff
==============================================================================
--- tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/EventProcessor.java (original)
+++ tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/EventProcessor.java Tue May 31 10:47:41 2011
@@ -22,9 +22,9 @@ package org.apache.tuscany.sca.sample.co
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
import org.apache.tuscany.sca.binding.comet.runtime.callback.Status;
@@ -42,66 +42,66 @@ import com.google.common.collect.Multima
@Scope("COMPOSITE")
public class EventProcessor implements EventProcessorConsumerService, EventProcessorProducerService {
- @Context
- protected ComponentContext componentContext;
+ @Context
+ protected ComponentContext componentContext;
- private Map<String, CometCallback> clients = new ConcurrentHashMap<String, CometCallback>();
- private Multimap<String, String> eventListeners = Multimaps.synchronizedMultimap(HashMultimap
- .<String, String> create());
-
- @Override
- public void onEvent(String eventName, String eventData) {
- // System.out.println("EventProcessor: Received event " + eventName +
- // "...");
- List<String> destinations = new ArrayList<String>();
- synchronized (eventListeners) {
- destinations.addAll(eventListeners.get(eventName));
- }
- Event event = new Event();
- event.setName(eventName);
- event.setData(eventData);
- for (String registrationId : destinations) {
- CometCallback client = clients.get(registrationId);
- if (client == null) {
- // client has unregistered from this event
- synchronized (eventListeners) {
- eventListeners.remove(eventName, registrationId);
- }
- } else {
- Status status = client.sendMessage(event);
- if (status == Status.CLIENT_DISCONNECTED) {
- unregister(registrationId);
- }
- }
- }
- }
-
- @Override
- public void register(String eventName) {
- String registrationId = UUID.randomUUID().toString();
- CometCallback callback = componentContext.getRequestContext().getCallback();
- clients.put(registrationId, callback);
- synchronized (eventListeners) {
- eventListeners.put(eventName, registrationId);
- }
- Event event = new Event();
- event.setId(registrationId);
- event.setName(eventName);
- event.setData(new Date().toString());
- callback.sendMessage(event);
- }
-
- @Override
- public void unregister(String registrationId) {
- clients.remove(registrationId);
- // unregistration from eventListeners done during onEvent
- }
-
- @Destroy
- public void shutdown() {
- clients.clear();
- eventListeners.clear();
- clients = null;
- eventListeners = null;
- }
+ private ConcurrentMap<String, CometCallback> clients = new ConcurrentHashMap<String, CometCallback>();
+ private Multimap<String, String> eventListeners = Multimaps.synchronizedMultimap(HashMultimap
+ .<String, String> create());
+
+ @Override
+ public void onEvent(String eventName, String eventData) {
+ // System.out.println("EventProcessor: Received event " + eventName +
+ // "...");
+ List<String> destinations = new ArrayList<String>();
+ synchronized (eventListeners) {
+ destinations.addAll(eventListeners.get(eventName));
+ }
+ Event event = new Event();
+ event.setName(eventName);
+ event.setData(eventData);
+ for (String registrationId : destinations) {
+ CometCallback client = clients.get(registrationId);
+ if (client == null) {
+ // client has unregistered from this event
+ synchronized (eventListeners) {
+ eventListeners.remove(eventName, registrationId);
+ }
+ } else {
+ Status status = client.sendMessage(event);
+ if (status == Status.CLIENT_DISCONNECTED) {
+ unregister(registrationId);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void register(String eventName) {
+ String registrationId = UUID.randomUUID().toString();
+ CometCallback callback = componentContext.getRequestContext().getCallback();
+ clients.put(registrationId, callback);
+ synchronized (eventListeners) {
+ eventListeners.put(eventName, registrationId);
+ }
+ Event event = new Event();
+ event.setId(registrationId);
+ event.setName(eventName);
+ event.setData(new Date().toString());
+ callback.sendMessage(event);
+ }
+
+ @Override
+ public void unregister(String registrationId) {
+ clients.remove(registrationId);
+ // unregistration from eventListeners done during onEvent
+ }
+
+ @Destroy
+ public void shutdown() {
+ clients.clear();
+ eventListeners.clear();
+ clients = null;
+ eventListeners = null;
+ }
}
Modified: tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/webapp/WEB-INF/web.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/webapp/WEB-INF/web.composite?rev=1129611&r1=1129610&r2=1129611&view=diff
==============================================================================
--- tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/webapp/WEB-INF/web.composite (original)
+++ tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/pubsub-webapp/src/main/webapp/WEB-INF/web.composite Tue May 31 10:47:41 2011
@@ -1,15 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- * 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. -->
+<!--
+ * 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.
+-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://samples" name="Event">