diff options
author | ddunne | 2010-08-03 16:33:43 +0000 |
---|---|---|
committer | ddunne | 2010-08-03 16:33:43 +0000 |
commit | ee6619de5c84210ee39e1ba2730ca86f97e44ae7 (patch) | |
tree | 361cc7f76a5357eb34e92389e645d81a8e476158 | |
parent | c4585ecdfb63ba31f7d27c624f5ce3eda041f2a4 (diff) | |
download | org.eclipse.osee-ee6619de5c84210ee39e1ba2730ca86f97e44ae7.tar.gz org.eclipse.osee-ee6619de5c84210ee39e1ba2730ca86f97e44ae7.tar.xz org.eclipse.osee-ee6619de5c84210ee39e1ba2730ca86f97e44ae7.zip |
Events - jms active
8 files changed, 99 insertions, 16 deletions
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResEventManager.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResEventManager.java index d76ad4338fa..812ee3eb3c1 100644 --- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResEventManager.java +++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResEventManager.java @@ -12,7 +12,7 @@ package org.eclipse.osee.framework.messaging.event.res; import java.rmi.RemoteException; import java.util.Map; -import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.messaging.ConnectionListener; import org.eclipse.osee.framework.messaging.ConnectionNode; import org.eclipse.osee.framework.messaging.OseeMessagingListener; import org.eclipse.osee.framework.messaging.OseeMessagingStatusCallback; @@ -32,8 +32,10 @@ public class ResEventManager implements OseeMessagingStatusCallback { private ConnectionNode connectionNode; private ResMessagingTracker resMessagingTracker; private IFrameworkEventListener frameworkEventListener; + private ResConnectionListener connectionListener; private ResEventManager() { + // private } public static ResEventManager getInstance() { @@ -64,14 +66,34 @@ public class ResEventManager implements OseeMessagingStatusCallback { System.out.println("De-Registering Client for Remote Events\n"); resMessagingTracker.close(); resMessagingTracker = null; + connectionListener = null; } public boolean isConnected() { - return resMessagingTracker != null; + if (resMessagingTracker != null && resMessagingTracker.getConnectionNode() != null && connectionListener != null && connectionListener.isConnected()) { + return true; + } + return false; + } + + public String getConnectionInfo() { + if (resMessagingTracker == null) { + return "Can't get RES Message Tracker"; + } + if (resMessagingTracker.getConnectionNode() == null) { + return "RES Connection Node == null"; + } + if (connectionListener == null || !connectionListener.isConnected()) { + return "ActiveMQ JMS Service is down"; + } + return "Connected"; } public void addingRemoteEventService(ConnectionNode connectionNode) { this.connectionNode = connectionNode; + connectionListener = new ResConnectionListener(); + connectionNode.addConnectionListener(connectionListener); + connectionNode.subscribe(ResMessages.RemoteTransactionEvent1, new RemoteTransactionEvent1Listener(), instance); connectionNode.subscribe(ResMessages.RemotePersistEvent1, new RemotePersistEvent1Listener(), instance); connectionNode.subscribe(ResMessages.RemoteBranchEvent1, new RemoteBranchEvent1Listener(), instance); @@ -103,16 +125,37 @@ public class ResEventManager implements OseeMessagingStatusCallback { } } - public void start(IFrameworkEventListener frameworkEventListener) throws OseeCoreException { + public void start(IFrameworkEventListener frameworkEventListener) { this.frameworkEventListener = frameworkEventListener; startListeningForRemoteCoverageEvents(); } - public void stop() throws OseeCoreException { + public void stop() { this.frameworkEventListener = null; stopListeningForRemoteCoverageEvents(); } + private class ResConnectionListener implements ConnectionListener { + + private boolean isConnected = false; + + @Override + public void connected(ConnectionNode node) { + System.out.println("connected from res listner"); + isConnected = true; + } + + public boolean isConnected() { + return isConnected; + } + + @Override + public void notConnected(ConnectionNode node) { + System.out.println("not connected from res listener"); + isConnected = false; + } + } + @Override public void fail(Throwable th) { System.err.println(getClass().getSimpleName() + " - fail: " + th.getLocalizedMessage()); @@ -121,6 +164,7 @@ public class ResEventManager implements OseeMessagingStatusCallback { @Override public void success() { + // do nothing } public class RemoteAccessControlEvent1Listener extends OseeMessagingListener { diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager.java index 4863d0beb78..500472d1171 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager.java @@ -157,6 +157,14 @@ public class RemoteEventManager { return OseeEventManager.isOldEvents() && getEventServiceManager().isValid(); } + public static String getConnectionProperties() { + StringBuilder sb = new StringBuilder(); + sb.append("osee.jini.lookup.groups [" + System.getProperty("osee.jini.lookup.groups") + "]"); + sb.append("eventSystem [" + System.getProperty("eventSystem") + "]"); + + return sb.toString(); + } + public static void kick(final ISkynetEvent... events) { if (OseeEventManager.isOldEvents() && isConnected()) { Job job = new Job("Send Event") { diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager2.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager2.java index e376856845b..ca327b43553 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager2.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/RemoteEventManager2.java @@ -344,6 +344,21 @@ public class RemoteEventManager2 implements IFrameworkEventListener { return OseeEventManager.isNewEvents() && ResEventManager.getInstance().isConnected(); } + public String getConnectionInfo() { + if (!OseeEventManager.isNewEvents()) { + return "New Events == OFF"; + } + return ResEventManager.getInstance().getConnectionInfo(); + } + + public String getConnectionProperties() { + StringBuilder sb = new StringBuilder(); + sb.append("osee.default.broker.uri [" + System.getProperty("osee.default.broker.uri") + "]"); + sb.append("eventDebug [" + System.getProperty("eventDebug") + "]"); + sb.append("eventSystem [" + System.getProperty("eventSystem") + "]"); + return sb.toString(); + } + /** * InternalEventManager.enableRemoteEventLoopback will enable a testing loopback that will take the kicked remote * events and loop them back as if they came from an external client. It will allow for the testing of the OEM -> REM diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeBuildTypeContributionItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeBuildTypeContributionItem.java index 6a39d71f76e..86e3cd7c364 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeBuildTypeContributionItem.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeBuildTypeContributionItem.java @@ -99,7 +99,7 @@ public class OseeBuildTypeContributionItem extends OseeContributionItem { } } - private final static class OpenConfigDetailsAction extends Action { + public final static class OpenConfigDetailsAction extends Action { private final MutableBoolean isSelectionAllowed; diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeContributionItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeContributionItem.java index 092382fa74e..82183529805 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeContributionItem.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/OseeContributionItem.java @@ -11,6 +11,7 @@ package org.eclipse.osee.framework.ui.skynet; import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.osee.framework.skynet.core.event.RemoteEventManager2; import org.eclipse.osee.framework.ui.skynet.ats.IOseeAtsService; import org.eclipse.osee.framework.ui.skynet.ats.OseeAts; import org.eclipse.osee.framework.ui.swt.Displays; @@ -65,7 +66,9 @@ public abstract class OseeContributionItem extends StatusLineContributionItem { if (atsService != null && atsService.isAtsAdmin()) { AdminContributionItem.addTo(manager); } - SkynetServiceContributionItem.addTo(manager); + if (!RemoteEventManager2.isConnected()) { + SkynetServiceContributionItem.addTo(manager); + } OseeServicesStatusContributionItem.addTo(manager); SessionContributionItem.addTo(manager); } diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ResServiceContributionItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ResServiceContributionItem.java index 288629dfd21..65848f46c3a 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ResServiceContributionItem.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ResServiceContributionItem.java @@ -18,6 +18,7 @@ import org.eclipse.osee.framework.skynet.core.event.OseeEventManager; import org.eclipse.osee.framework.skynet.core.event.RemoteEventManager2; import org.eclipse.osee.framework.skynet.core.event.RemoteEventServiceEventType; import org.eclipse.osee.framework.skynet.core.event.Sender; +import org.eclipse.osee.framework.ui.skynet.OseeBuildTypeContributionItem.OpenConfigDetailsAction; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.osee.framework.ui.swt.OverlayImage; @@ -59,6 +60,7 @@ public class ResServiceContributionItem extends OseeContributionItem implements super(ID); updateStatus(RemoteEventManager2.isConnected()); OseeEventManager.addListener(this); + setActionHandler(new OpenConfigDetailsAction()); icons.add(this); createUpdateThread(); } diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java index 0243d6062d4..f617c499cb6 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import org.eclipse.osee.framework.core.model.event.DefaultBasicGuidArtifact; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.event.AccessControlEventType; import org.eclipse.osee.framework.skynet.core.event.BranchEventType; @@ -69,12 +70,13 @@ public class ArtifactEditorEventManager implements IArtifactEventListener, IBran handlers.remove(handler); } } - System.out.println("ArtifactEditorEventManager: handleArtifactEvent called [" + artifactEvent + "] - sender " + sender + ""); + OseeEventManager.eventLog("ArtifactEditorEventManager: handleArtifactEvent called [" + artifactEvent + "] - sender " + sender + ""); final Collection<Artifact> modifiedArts = artifactEvent.getCacheArtifacts(EventModType.Modified, EventModType.Reloaded); final Collection<Artifact> relModifiedArts = artifactEvent.getRelCacheArtifacts(); final Collection<EventBasicGuidArtifact> deletedPurgedChangedArts = artifactEvent.get(EventModType.Deleted, EventModType.Purged); + final Collection<DefaultBasicGuidArtifact> relOrderChangedArtifacts = artifactEvent.getRelOrderChangedArtifacts(); Displays.ensureInDisplayThread(new Runnable() { @Override @@ -86,15 +88,19 @@ public class ArtifactEditorEventManager implements IArtifactEventListener, IBran } } } - for (IArtifactEditorEventHandler handler : handlers) { - if (!handler.isDisposed()) { - if (handler.getArtifactFromEditorInput() != null && modifiedArts.contains(handler.getArtifactFromEditorInput())) { - handler.refreshDirtyArtifact(); - } + if (!modifiedArts.isEmpty() || !relModifiedArts.isEmpty() || !relOrderChangedArtifacts.isEmpty()) { + for (IArtifactEditorEventHandler handler : handlers) { + if (!handler.isDisposed()) { + if (handler.getArtifactFromEditorInput() != null && modifiedArts.contains(handler.getArtifactFromEditorInput())) { + handler.refreshDirtyArtifact(); + } - if (handler.getArtifactFromEditorInput() != null && relModifiedArts.contains(handler.getArtifactFromEditorInput())) { - handler.refreshRelations(); - handler.getEditor().onDirtied(); + boolean relModified = relModifiedArts.contains(handler.getArtifactFromEditorInput()); + boolean reorderArt = relOrderChangedArtifacts.contains(handler.getArtifactFromEditorInput()); + if (handler.getArtifactFromEditorInput() != null && (relModified || reorderArt)) { + handler.refreshRelations(); + handler.getEditor().onDirtied(); + } } } } diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java index 2800c7b3246..2203227bd85 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java @@ -18,6 +18,7 @@ import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.logging.IHealthStatus; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.event.RemoteEventManager; +import org.eclipse.osee.framework.skynet.core.event.RemoteEventManager2; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.swt.SWT; @@ -113,7 +114,11 @@ public class ConfigurationDetails extends PreferencePage implements IWorkbenchPr } builder.append(AHTML.addRowMultiColumnTable( "<b>Remote Event Service</b>", - "", + RemoteEventManager2.getInstance().getConnectionProperties().replaceAll("]", "]<br/>"), + RemoteEventManager2.isConnected() ? "<font color=\"green\"><b>Ok</b></font>" : "<font color=\"red\"><b>Unavailable - " + RemoteEventManager2.getInstance().getConnectionInfo() + "</b></font>")); + builder.append(AHTML.addRowMultiColumnTable( + "<b>Old Remote Event Service</b>", + RemoteEventManager.getConnectionProperties().replaceAll("]", "]<br/>"), RemoteEventManager.isConnected() ? "<font color=\"green\"><b>Ok</b></font>" : "<font color=\"red\"><b>Unavailable</b></font>")); builder.append(AHTML.endMultiColumnTable()); |