Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto E. Escobar2012-04-13 21:22:06 +0000
committerRoberto E. Escobar2012-04-13 21:22:06 +0000
commitf97e58b2c70927a2c896a06d99027ac0b760686f (patch)
tree2301a90de231e1962c7b765a7abc68ad42cf5440 /plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event
parentc3d840e4703cb62d9db92362b737a7f1c7f8ed46 (diff)
downloadorg.eclipse.osee-f97e58b2c70927a2c896a06d99027ac0b760686f.tar.gz
org.eclipse.osee-f97e58b2c70927a2c896a06d99027ac0b760686f.tar.xz
org.eclipse.osee-f97e58b2c70927a2c896a06d99027ac0b760686f.zip
feature[ats_VGR8B]: Convert messaging event res to DS
Diffstat (limited to 'plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event')
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/IOseeCoreModelEventService.java8
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/Activator.java35
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceImpl.java50
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceProxy.java90
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceRegHandler.java67
5 files changed, 127 insertions, 123 deletions
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/IOseeCoreModelEventService.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/IOseeCoreModelEventService.java
index 7b9f383bfab..fec36860eb2 100644
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/IOseeCoreModelEventService.java
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/IOseeCoreModelEventService.java
@@ -18,13 +18,13 @@ import org.eclipse.osee.framework.messaging.ConnectionListener;
*/
public interface IOseeCoreModelEventService {
- void addFrameworkListener(IFrameworkEventListener frameworkEventListener);
+ void addFrameworkListener(IFrameworkEventListener frameworkEventListener) throws OseeCoreException;
- void removeFrameworkListener(IFrameworkEventListener frameworkEventListener);
+ void removeFrameworkListener(IFrameworkEventListener frameworkEventListener) throws OseeCoreException;
- void addConnectionListener(ConnectionListener connectionListener);
+ void addConnectionListener(ConnectionListener connectionListener) throws OseeCoreException;
- void removeConnectionListener(ConnectionListener connectionListener);
+ void removeConnectionListener(ConnectionListener connectionListener) throws OseeCoreException;
void sendRemoteEvent(RemoteEvent remoteEvent) throws OseeCoreException;
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/Activator.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/Activator.java
deleted file mode 100644
index 664ff1b2fde..00000000000
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/Activator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.framework.messaging.event.res.internal;
-
-import org.eclipse.osee.framework.core.util.ServiceDependencyTracker;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author Donald G. Dunne
- */
-public class Activator implements BundleActivator {
-
- private ServiceDependencyTracker tracker;
-
- @Override
- public void start(BundleContext context) throws Exception {
- tracker = new ServiceDependencyTracker(context, new OseeCoreModelEventServiceRegHandler());
- tracker.open();
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- Lib.close(tracker);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceImpl.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceImpl.java
index e3c79050c65..27c0ca5c8e8 100644
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceImpl.java
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceImpl.java
@@ -11,16 +11,17 @@
package org.eclipse.osee.framework.messaging.event.res.internal;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.HashCollection;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.messaging.ConnectionListener;
import org.eclipse.osee.framework.messaging.ConnectionNode;
+import org.eclipse.osee.framework.messaging.MessageService;
import org.eclipse.osee.framework.messaging.OseeMessagingListener;
import org.eclipse.osee.framework.messaging.OseeMessagingStatusCallback;
import org.eclipse.osee.framework.messaging.event.res.IFrameworkEventListener;
@@ -33,15 +34,30 @@ import org.eclipse.osee.framework.messaging.event.res.RemoteEvent;
public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallback, IOseeCoreModelEventService {
private final Map<IFrameworkEventListener, HashCollection<ResMessages, OseeMessagingListener>> subscriptions =
- new HashMap<IFrameworkEventListener, HashCollection<ResMessages, OseeMessagingListener>>();
+ new ConcurrentHashMap<IFrameworkEventListener, HashCollection<ResMessages, OseeMessagingListener>>();
+
private final Map<ResMessages, Boolean> messages;
- private final ConnectionNode connectionNode;
+ private final MessageService messageService;
+
+ private ConnectionNode connectionNode;
- public OseeCoreModelEventServiceImpl(ConnectionNode connectionNode, Map<ResMessages, Boolean> messages) {
- this.connectionNode = connectionNode;
+ public OseeCoreModelEventServiceImpl(MessageService messageService, Map<ResMessages, Boolean> messages) {
+ this.messageService = messageService;
this.messages = messages;
}
+ private synchronized ConnectionNode getConnectionNode() {
+ if (connectionNode == null) {
+ try {
+ connectionNode = messageService.getDefault();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(OseeCoreModelEventServiceProxy.class, Level.SEVERE,
+ "Error initializing OseeCoreModelEventServiceProxy");
+ }
+ }
+ return connectionNode;
+ }
+
@Override
public void success() {
// do nothing
@@ -49,20 +65,20 @@ public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallbac
@Override
public void fail(Throwable th) {
- OseeLog.log(Activator.class, Level.SEVERE, th);
-
+ OseeLog.log(OseeCoreModelEventServiceImpl.class, Level.SEVERE, th);
}
@Override
public void sendRemoteEvent(RemoteEvent remoteEvent) throws OseeCoreException {
ResMessages resMessage = getResMessageType(remoteEvent);
if (resMessage == null) {
- OseeLog.logf(Activator.class, Level.INFO, "ResEventManager: Unhandled remote event [%s]", resMessage);
- } else if (connectionNode == null) {
- OseeLog.logf(Activator.class, Level.INFO,
+ OseeLog.logf(OseeCoreModelEventServiceImpl.class, Level.INFO, "ResEventManager: Unhandled remote event [%s]",
+ resMessage);
+ } else if (getConnectionNode() == null) {
+ OseeLog.logf(OseeCoreModelEventServiceImpl.class, Level.INFO,
"ResEventManager: Connection node was null - unable to send remote event [%s]", resMessage);
} else {
- connectionNode.send(resMessage, remoteEvent, this);
+ getConnectionNode().send(resMessage, remoteEvent, this);
}
}
@@ -82,17 +98,17 @@ public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallbac
@Override
public void addConnectionListener(ConnectionListener connectionListener) {
- connectionNode.addConnectionListener(connectionListener);
+ getConnectionNode().addConnectionListener(connectionListener);
}
@Override
public void removeConnectionListener(ConnectionListener connectionListener) {
- connectionNode.removeConnectionListener(connectionListener);
+ getConnectionNode().removeConnectionListener(connectionListener);
}
@Override
public void addFrameworkListener(IFrameworkEventListener frameworkEventListener) {
- OseeLog.log(Activator.class, Level.INFO, "Registering Client for Remote Events");
+ OseeLog.log(OseeCoreModelEventServiceImpl.class, Level.INFO, "Registering Client for Remote Events");
for (Entry<ResMessages, Boolean> messageEntries : messages.entrySet()) {
ResMessages resMessageID = messageEntries.getKey();
@@ -103,7 +119,7 @@ public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallbac
@Override
public void removeFrameworkListener(IFrameworkEventListener frameworkEventListener) {
- OseeLog.log(Activator.class, Level.INFO, "De-Registering Client for Remote Events");
+ OseeLog.log(OseeCoreModelEventServiceImpl.class, Level.INFO, "De-Registering Client for Remote Events");
HashCollection<ResMessages, OseeMessagingListener> listeners = subscriptions.get(frameworkEventListener);
if (listeners != null) {
@@ -111,7 +127,7 @@ public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallbac
Collection<OseeMessagingListener> listernerList = listeners.getValues(messageID);
if (listernerList != null) {
for (OseeMessagingListener listener : listernerList) {
- connectionNode.unsubscribe(messageID, listener, this);
+ getConnectionNode().unsubscribe(messageID, listener, this);
}
}
}
@@ -121,7 +137,7 @@ public class OseeCoreModelEventServiceImpl implements OseeMessagingStatusCallbac
private <T extends RemoteEvent> void subscribe(ResMessages messageId, Class<T> clazz, boolean isVerbose, IFrameworkEventListener frameworkEventListener) {
OseeMessagingListener listener = new FrameworkRelayMessagingListener<T>(clazz, frameworkEventListener, isVerbose);
- connectionNode.subscribe(messageId, listener, this);
+ getConnectionNode().subscribe(messageId, listener, this);
HashCollection<ResMessages, OseeMessagingListener> listeners = subscriptions.get(frameworkEventListener);
if (listeners == null) {
listeners = new HashCollection<ResMessages, OseeMessagingListener>(true, HashSet.class);
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceProxy.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceProxy.java
new file mode 100644
index 00000000000..7e6243387ed
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceProxy.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.framework.messaging.event.res.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.util.Conditions;
+import org.eclipse.osee.framework.messaging.ConnectionListener;
+import org.eclipse.osee.framework.messaging.MessageService;
+import org.eclipse.osee.framework.messaging.event.res.IFrameworkEventListener;
+import org.eclipse.osee.framework.messaging.event.res.IOseeCoreModelEventService;
+import org.eclipse.osee.framework.messaging.event.res.RemoteEvent;
+
+/**
+ * @author Roberto E. Escobar
+ */
+public class OseeCoreModelEventServiceProxy implements IOseeCoreModelEventService {
+
+ private MessageService messageService;
+ private IOseeCoreModelEventService proxiedService;
+
+ public void setMessageService(MessageService messageService) {
+ this.messageService = messageService;
+ }
+
+ private IOseeCoreModelEventService getProxiedService() {
+ return proxiedService;
+ }
+
+ public void start() {
+ Map<ResMessages, Boolean> eventMessageConfig = new HashMap<ResMessages, Boolean>();
+
+ eventMessageConfig.put(ResMessages.RemoteAccessControlEvent1, Boolean.TRUE);
+ eventMessageConfig.put(ResMessages.RemoteBranchEvent1, Boolean.TRUE);
+ eventMessageConfig.put(ResMessages.RemoteBroadcastEvent1, Boolean.TRUE);
+ eventMessageConfig.put(ResMessages.RemotePersistEvent1, Boolean.FALSE);
+ eventMessageConfig.put(ResMessages.RemoteTransactionEvent1, Boolean.TRUE);
+
+ proxiedService = new OseeCoreModelEventServiceImpl(messageService, eventMessageConfig);
+ }
+
+ public void stop() {
+ proxiedService = null;
+ }
+
+ private void checkInitialized() throws OseeCoreException {
+ Conditions.checkNotNull(getProxiedService(),
+ "IOseeCoreModelEventService was not initialized correctly. Make sure start() was called");
+ }
+
+ @Override
+ public void addFrameworkListener(IFrameworkEventListener frameworkEventListener) throws OseeCoreException {
+ checkInitialized();
+ getProxiedService().addFrameworkListener(frameworkEventListener);
+ }
+
+ @Override
+ public void removeFrameworkListener(IFrameworkEventListener frameworkEventListener) throws OseeCoreException {
+ checkInitialized();
+ getProxiedService().removeFrameworkListener(frameworkEventListener);
+ }
+
+ @Override
+ public void addConnectionListener(ConnectionListener connectionListener) throws OseeCoreException {
+ checkInitialized();
+ getProxiedService().addConnectionListener(connectionListener);
+ }
+
+ @Override
+ public void removeConnectionListener(ConnectionListener connectionListener) throws OseeCoreException {
+ checkInitialized();
+ getProxiedService().removeConnectionListener(connectionListener);
+ }
+
+ @Override
+ public void sendRemoteEvent(RemoteEvent remoteEvent) throws OseeCoreException {
+ checkInitialized();
+ getProxiedService().sendRemoteEvent(remoteEvent);
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceRegHandler.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceRegHandler.java
deleted file mode 100644
index dafdab435ca..00000000000
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/internal/OseeCoreModelEventServiceRegHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.framework.messaging.event.res.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.util.AbstractTrackingHandler;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.messaging.ConnectionNode;
-import org.eclipse.osee.framework.messaging.MessageService;
-import org.eclipse.osee.framework.messaging.event.res.IOseeCoreModelEventService;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-/**
- * @author Roberto E. Escobar
- */
-public class OseeCoreModelEventServiceRegHandler extends AbstractTrackingHandler {
-
- private static final Class<?>[] DEPENDENCIES = new Class<?>[] {MessageService.class};
-
- private final Map<ResMessages, Boolean> eventMessageConfig = new HashMap<ResMessages, Boolean>();
- private ServiceRegistration registration;
-
- public OseeCoreModelEventServiceRegHandler() {
- eventMessageConfig.put(ResMessages.RemoteAccessControlEvent1, Boolean.TRUE);
- eventMessageConfig.put(ResMessages.RemoteBranchEvent1, Boolean.TRUE);
- eventMessageConfig.put(ResMessages.RemoteBroadcastEvent1, Boolean.TRUE);
- eventMessageConfig.put(ResMessages.RemotePersistEvent1, Boolean.FALSE);
- eventMessageConfig.put(ResMessages.RemoteTransactionEvent1, Boolean.TRUE);
- }
-
- @Override
- public Class<?>[] getDependencies() {
- return DEPENDENCIES;
- }
-
- @Override
- public void onActivate(BundleContext context, Map<Class<?>, Object> services) {
- MessageService messageService = getService(MessageService.class, services);
- try {
- ConnectionNode connectionNode = messageService.getDefault();
- IOseeCoreModelEventService service = new OseeCoreModelEventServiceImpl(connectionNode, eventMessageConfig);
- registration = context.registerService(IOseeCoreModelEventService.class.getName(), service, null);
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
-
- @Override
- public void onDeActivate() {
- if (registration != null) {
- registration.unregister();
- }
- }
-
-}

Back to the top