Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2010-06-09 02:55:48 +0000
committerddunne2010-06-09 02:55:48 +0000
commit6b76d9a1eede9f517cba2c7244f98223def09903 (patch)
treef3ffc34ab4b22dbf690b1bec5fd32ca58af72c3d
parentda822f5fe9138edc34bfe91d1f70f735a4e357d6 (diff)
downloadorg.eclipse.osee-6b76d9a1eede9f517cba2c7244f98223def09903.tar.gz
org.eclipse.osee-6b76d9a1eede9f517cba2c7244f98223def09903.tar.xz
org.eclipse.osee-6b76d9a1eede9f517cba2c7244f98223def09903.zip
events - access control events
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/jaxb/resMessages.xsd8
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src-gen/org/eclipse/osee/framework/messaging/event/res/msgs/RemoteAccessControlEvent1.java135
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResEventManager.java29
-rw-r--r--plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResMessages.java4
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/test/event/TransactionEventTest.java41
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java6
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/AccessControlManager.java75
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeTransactionOperation.java13
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/AccessControlEventType.java27
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/IAccessControlEventListener.java4
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/InternalEventManager2.java37
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java9
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/AccessControlEvent.java72
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventManager.java10
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventUtil.java28
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java25
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java10
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/AbstractEventArtifactEditor.java7
-rw-r--r--plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/panels/GrayableBranchSelectionComposite.java6
19 files changed, 440 insertions, 106 deletions
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/jaxb/resMessages.xsd b/plugins/org.eclipse.osee.framework.messaging.event.res/jaxb/resMessages.xsd
index 90b9b26e560..0f8ebca8a34 100644
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/jaxb/resMessages.xsd
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/jaxb/resMessages.xsd
@@ -13,6 +13,14 @@
</xsd:appinfo>
</xsd:annotation>
+<xsd:complexType name="RemoteAccessControlEvent1">
+ <xsd:sequence>
+ <xsd:element name="eventTypeGuid" type="xsd:string"/>
+ <xsd:element name="artifacts" type="RemoteBasicGuidArtifact1" maxOccurs="unbounded" minOccurs="1"/>
+ <xsd:element name="networkSender" type="RemoteNetworkSender1" maxOccurs="1" minOccurs="1"/>
+ </xsd:sequence>
+</xsd:complexType>
+
<xsd:complexType name="RemotePersistEvent1">
<xsd:sequence>
<xsd:element name="branchGuid" type="xsd:string"/>
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src-gen/org/eclipse/osee/framework/messaging/event/res/msgs/RemoteAccessControlEvent1.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src-gen/org/eclipse/osee/framework/messaging/event/res/msgs/RemoteAccessControlEvent1.java
new file mode 100644
index 00000000000..dfd8a5a1199
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src-gen/org/eclipse/osee/framework/messaging/event/res/msgs/RemoteAccessControlEvent1.java
@@ -0,0 +1,135 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2010.06.04 at 10:11:33 AM MST
+//
+
+
+package org.eclipse.osee.framework.messaging.event.res.msgs;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.eclipse.osee.framework.messaging.event.res.RemoteEvent;
+
+
+/**
+ * <p>Java class for RemoteAccessControlEvent1 complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RemoteAccessControlEvent1">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="eventTypeGuid" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="artifacts" type="{}RemoteBasicGuidArtifact1" maxOccurs="unbounded"/>
+ * &lt;element name="networkSender" type="{}RemoteNetworkSender1"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RemoteAccessControlEvent1", propOrder = {
+ "eventTypeGuid",
+ "artifacts",
+ "networkSender"
+})
+public class RemoteAccessControlEvent1
+ extends RemoteEvent
+{
+
+ @XmlElement(required = true)
+ protected String eventTypeGuid;
+ @XmlElement(required = true)
+ protected List<RemoteBasicGuidArtifact1> artifacts;
+ @XmlElement(required = true)
+ protected RemoteNetworkSender1 networkSender;
+
+ /**
+ * Gets the value of the eventTypeGuid property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getEventTypeGuid() {
+ return eventTypeGuid;
+ }
+
+ /**
+ * Sets the value of the eventTypeGuid property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setEventTypeGuid(String value) {
+ this.eventTypeGuid = value;
+ }
+
+ /**
+ * Gets the value of the artifacts property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the artifacts property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getArtifacts().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link RemoteBasicGuidArtifact1 }
+ *
+ *
+ */
+ public List<RemoteBasicGuidArtifact1> getArtifacts() {
+ if (artifacts == null) {
+ artifacts = new ArrayList<RemoteBasicGuidArtifact1>();
+ }
+ return this.artifacts;
+ }
+
+ /**
+ * Gets the value of the networkSender property.
+ *
+ * @return
+ * possible object is
+ * {@link RemoteNetworkSender1 }
+ *
+ */
+ public RemoteNetworkSender1 getNetworkSender() {
+ return networkSender;
+ }
+
+ /**
+ * Sets the value of the networkSender property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RemoteNetworkSender1 }
+ *
+ */
+ public void setNetworkSender(RemoteNetworkSender1 value) {
+ this.networkSender = value;
+ }
+
+}
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 8e08149cc51..aef1f232065 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,6 +12,7 @@ import org.eclipse.osee.framework.messaging.ConnectionNode;
import org.eclipse.osee.framework.messaging.OseeMessagingListener;
import org.eclipse.osee.framework.messaging.OseeMessagingStatusCallback;
import org.eclipse.osee.framework.messaging.ReplyConnection;
+import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteAccessControlEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBranchEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBroadcastEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemotePersistEvent1;
@@ -70,13 +71,20 @@ public class ResEventManager implements OseeMessagingStatusCallback {
connectionNode.subscribe(ResMessages.RemotePersistEvent1, new RemotePersistEvent1Listener(), instance);
connectionNode.subscribe(ResMessages.RemoteBranchEvent1, new RemoteBranchEvent1Listener(), instance);
connectionNode.subscribe(ResMessages.RemoteBroadcastEvent1, new RemoteBroadcastEvent1Listener(), instance);
+ connectionNode.subscribe(ResMessages.RemoteAccessControlEvent1, new RemoteAccessControlEvent1Listener(), instance);
}
public void kick(RemoteEvent remoteEvent) throws Exception {
- if (remoteEvent instanceof RemoteTransactionEvent1) {
+ if (remoteEvent instanceof RemotePersistEvent1) {
+ sendRemoteEvent(ResMessages.RemotePersistEvent1, remoteEvent);
+ } else if (remoteEvent instanceof RemoteTransactionEvent1) {
sendRemoteEvent(ResMessages.RemoteTransactionEvent1, remoteEvent);
} else if (remoteEvent instanceof RemoteBranchEvent1) {
sendRemoteEvent(ResMessages.RemoteBranchEvent1, remoteEvent);
+ } else if (remoteEvent instanceof RemoteBroadcastEvent1) {
+ sendRemoteEvent(ResMessages.RemoteBroadcastEvent1, remoteEvent);
+ } else if (remoteEvent instanceof RemoteAccessControlEvent1) {
+ sendRemoteEvent(ResMessages.RemoteAccessControlEvent1, remoteEvent);
} else {
System.out.println("ResEventManager: Unhandled remote event " + remoteEvent);
}
@@ -110,6 +118,25 @@ public class ResEventManager implements OseeMessagingStatusCallback {
public void success() {
}
+ public class RemoteAccessControlEvent1Listener extends OseeMessagingListener {
+
+ public RemoteAccessControlEvent1Listener() {
+ super(RemoteAccessControlEvent1.class);
+ }
+
+ @Override
+ public void process(final Object message, Map<String, Object> headers, ReplyConnection replyConnection) {
+ RemoteAccessControlEvent1 remoteTransactionEvent1 = (RemoteAccessControlEvent1) message;
+ System.err.println(String.format(getClass().getSimpleName() + " - received [%s]",
+ message.getClass().getSimpleName()));
+ try {
+ frameworkEventListener.onEvent(remoteTransactionEvent1);
+ } catch (RemoteException ex) {
+ System.err.println(getClass().getSimpleName() + " - process: " + ex.getLocalizedMessage());
+ }
+ }
+ }
+
public class RemoteTransactionEvent1Listener extends OseeMessagingListener {
public RemoteTransactionEvent1Listener() {
diff --git a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResMessages.java b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResMessages.java
index e12566d9093..8329a0c5e99 100644
--- a/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResMessages.java
+++ b/plugins/org.eclipse.osee.framework.messaging.event.res/src/org/eclipse/osee/framework/messaging/event/res/ResMessages.java
@@ -1,6 +1,7 @@
package org.eclipse.osee.framework.messaging.event.res;
import org.eclipse.osee.framework.messaging.MessageID;
+import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteAccessControlEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBranchEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBroadcastEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemotePersistEvent1;
@@ -10,7 +11,8 @@ public enum ResMessages implements MessageID {
RemoteBranchEvent1(true, "Aylfa1wlKXIbX2gOrVgA", "topic:org.eclipse.osee.coverage.msgs.RemoteBranchEvent1", RemoteBranchEvent1.class, false),
RemoteBroadcastEvent1(true, "Aylfa1y3ZBSIGbVU3JgA", "topic:org.eclipse.osee.coverage.msgs.RemoteBroadcastEvent1", RemoteBroadcastEvent1.class, false),
RemotePersistEvent1(true, "AISIbRj0KGBv62x2pMAA", "topic:org.eclipse.osee.coverage.msgs.RemotePersistEvent1", RemotePersistEvent1.class, false),
- RemoteTransactionEvent1(true, "AAn_QHkqUhz3vJKwp8QA", "topic:org.eclipse.osee.coverage.msgs.RemoteTransactionEvent1", RemoteTransactionEvent1.class, false);
+ RemoteTransactionEvent1(true, "AAn_QHkqUhz3vJKwp8QA", "topic:org.eclipse.osee.coverage.msgs.RemoteTransactionEvent1", RemoteTransactionEvent1.class, false),
+ RemoteAccessControlEvent1(true, "AFRkIhdPkwExx96ioXgA", "topic:org.eclipse.osee.coverage.msgs.RemoteAccessControlEvent1", RemoteAccessControlEvent1.class, false);
private String name;
private Class<?> clazz;
diff --git a/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/test/event/TransactionEventTest.java b/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/test/event/TransactionEventTest.java
index 821e0985127..5946e4950f9 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/test/event/TransactionEventTest.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/test/event/TransactionEventTest.java
@@ -12,10 +12,7 @@ package org.eclipse.osee.framework.skynet.core.test.event;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import junit.framework.Assert;
import org.eclipse.osee.framework.core.data.DefaultBasicGuidArtifact;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
@@ -33,10 +30,6 @@ import org.eclipse.osee.framework.skynet.core.event2.ITransactionEventListener;
import org.eclipse.osee.framework.skynet.core.event2.TransactionChange;
import org.eclipse.osee.framework.skynet.core.event2.TransactionEvent;
import org.eclipse.osee.framework.skynet.core.event2.TransactionEventType;
-import org.eclipse.osee.framework.skynet.core.event2.artifact.EventBasicGuidArtifact;
-import org.eclipse.osee.framework.skynet.core.event2.artifact.EventBasicGuidRelation;
-import org.eclipse.osee.framework.skynet.core.event2.artifact.EventModType;
-import org.eclipse.osee.framework.skynet.core.event2.artifact.IArtifactListener;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.support.test.util.TestUtil;
@@ -47,20 +40,9 @@ import org.eclipse.osee.support.test.util.TestUtil;
public class TransactionEventTest {
private TransactionEvent resultTransEvent = null;
- final Set<EventBasicGuidArtifact> resultEventArtifacts = new HashSet<EventBasicGuidArtifact>();
- final Set<EventBasicGuidRelation> resultEventRelations = new HashSet<EventBasicGuidRelation>();
private Sender resultSender = null;
public static List<String> ignoreLogging = Arrays.asList("");
- public class ArtifactEventListener implements IArtifactListener {
- @Override
- public void handleArtifactModified(Collection<EventBasicGuidArtifact> eventArtifacts, Collection<EventBasicGuidRelation> eventRelations, Sender sender) {
- resultEventArtifacts.addAll(eventArtifacts);
- resultEventRelations.addAll(eventRelations);
- }
- }
- private ArtifactEventListener artifactEventListener = new ArtifactEventListener();
-
@org.junit.Test
public void testRegistration() throws Exception {
SevereLoggingMonitor monitorLog = TestUtil.severeLoggingStart();
@@ -106,20 +88,13 @@ public class TransactionEventTest {
// Add listener for delete transaction event
FrameworkEventManager.removeAllListeners();
FrameworkEventManager.addListener(transEventListener);
- if (isRemoteTest()) {
- FrameworkEventManager.addListener(artifactEventListener);
- Assert.assertEquals(2, FrameworkEventManager.getNumberOfListeners());
- } else {
- Assert.assertEquals(1, FrameworkEventManager.getNumberOfListeners());
- }
- resultEventArtifacts.clear();
- resultEventRelations.clear();
+ Assert.assertEquals(1, FrameworkEventManager.getNumberOfListeners());
// Delete it
IOperation operation = new PurgeTransactionOperation(Activator.getInstance(), false, transIdToDelete);
Operations.executeAndPend(operation, false);
- Thread.sleep(4000);
+ Thread.sleep(8000);
// Verify that all stuff reverted
Assert.assertNotNull(resultTransEvent);
@@ -139,18 +114,6 @@ public class TransactionEventTest {
Assert.assertEquals(newArt.getGuid(), guidArt.getGuid());
Assert.assertEquals(CoreArtifactTypes.GeneralData.getGuid(), guidArt.getArtTypeGuid());
- if (isRemoteTest()) {
- // If remote event; Verify that artifact reload happened
- Assert.assertEquals(1, resultEventArtifacts.size());
- Assert.assertEquals("No relations events should be sent", 0, resultEventRelations.size());
- EventBasicGuidArtifact eventGuidArt = resultEventArtifacts.iterator().next();
- Assert.assertEquals(newArt.getGuid(), eventGuidArt.getGuid());
- Assert.assertEquals(newArt.getArtifactType().getGuid(), eventGuidArt.getArtTypeGuid());
- Assert.assertEquals(newArt.getBranch().getGuid(), eventGuidArt.getBranchGuid());
- Assert.assertEquals(eventGuidArt.getModType(), EventModType.Reloaded);
- Assert.assertFalse(newArt.isDirty());
- }
-
TestUtil.severeLoggingEnd(monitorLog, (isRemoteTest() ? ignoreLogging : new ArrayList<String>()));
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java
index 20f763ec300..8dded04db09 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java
@@ -25,6 +25,7 @@ import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.event.AccessControlEventType;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
@@ -113,8 +114,9 @@ final class ClientUser {
@Override
public IStatus run(IProgressMonitor monitor) throws Exception {
- OseeEventManager.kickAccessControlArtifactsEvent(this, AccessControlEventType.UserAuthenticated,
- LoadedArtifacts.createEmptyLoadedArtifacts());
+ AccessControlEvent event = new AccessControlEvent();
+ event.setEventType(AccessControlEventType.UserAuthenticated);
+ OseeEventManager.kickAccessControlArtifactsEvent(this, event, LoadedArtifacts.createEmptyLoadedArtifacts());
return Status.OK_STATUS;
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/AccessControlManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/AccessControlManager.java
index 7ea16745091..c4a6544a603 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/AccessControlManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/AccessControlManager.java
@@ -17,9 +17,11 @@ import static org.eclipse.osee.framework.core.enums.PermissionEnum.LOCK;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.READ;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.logging.Level;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
@@ -46,6 +48,7 @@ import org.eclipse.osee.framework.skynet.core.event.IArtifactsPurgedEventListene
import org.eclipse.osee.framework.skynet.core.event.IBranchEventListener;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
import org.eclipse.osee.framework.skynet.core.relation.RelationTypeManager;
import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
@@ -518,44 +521,58 @@ public class AccessControlManager implements IBranchEventListener, IArtifactsPur
objectToSubjectCache.put(accessObject, subjectId);
}
- public static void lockObject(Artifact object, Artifact subject) {
- Integer objectArtId = object.getArtId();
- Integer subjectArtId = subject.getArtId();
- Integer objectBranchId = object.getBranch().getId();
+ public static void lockObjects(Collection<Artifact> objects, Artifact subject) {
+ AccessControlEvent event = new AccessControlEvent();
+ event.setEventType(AccessControlEventType.ArtifactsLocked);
+ Set<Artifact> lockedArts = new HashSet<Artifact>();
+ for (Artifact object : objects) {
+ Integer objectArtId = object.getArtId();
+ Integer subjectArtId = subject.getArtId();
+ Integer objectBranchId = object.getBranch().getId();
- if (!objectToBranchLockCache.containsKey(objectArtId)) {
- AccessObject accessObject = getAccessObject(object);
- new AccessControlData(subject, accessObject, PermissionEnum.LOCK, true).persist();
- objectToBranchLockCache.put(objectArtId, objectBranchId);
- lockedObjectToSubject.put(objectArtId, subjectArtId);
-
- try {
- OseeEventManager.kickAccessControlArtifactsEvent(instance, AccessControlEventType.ArtifactsLocked,
- new LoadedArtifacts(object));
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
+ if (!objectToBranchLockCache.containsKey(objectArtId)) {
+ AccessObject accessObject = getAccessObject(object);
+ new AccessControlData(subject, accessObject, PermissionEnum.LOCK, true).persist();
+ objectToBranchLockCache.put(objectArtId, objectBranchId);
+ lockedObjectToSubject.put(objectArtId, subjectArtId);
+ event.getArtifacts().add(object.getBasicGuidArtifact());
+ lockedArts.add(object);
}
}
+ try {
+ OseeEventManager.kickAccessControlArtifactsEvent(instance, event, new LoadedArtifacts(lockedArts));
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
}
- public static void unLockObject(Artifact object, Artifact subject) throws OseeDataStoreException, OseeAuthenticationRequiredException {
- Integer objectArtId = object.getArtId();
- Integer branchId = object.getBranch().getId();
- Integer lockedBranchId;
-
- if (objectToBranchLockCache.containsKey(objectArtId) && canUnlockObject(object, subject)) {
- lockedBranchId = objectToBranchLockCache.get(objectArtId);
+ public static void unLockObjects(Collection<Artifact> objects, Artifact subject) throws OseeDataStoreException, OseeAuthenticationRequiredException {
+ AccessControlEvent event = new AccessControlEvent();
+ event.setEventType(AccessControlEventType.ArtifactsUnlocked);
+ Set<Artifact> lockedArts = new HashSet<Artifact>();
+ for (Artifact object : objects) {
+ Integer objectArtId = object.getArtId();
+ Integer branchId = object.getBranch().getId();
+ Integer lockedBranchId;
- if (branchId.equals(lockedBranchId)) {
- AccessObject accessObject = getAccessObject(object);
- removeAccessControlDataIf(true, new AccessControlData(subject, accessObject, PermissionEnum.LOCK, false));
- objectToBranchLockCache.remove(objectArtId);
- lockedObjectToSubject.remove(objectArtId);
+ if (objectToBranchLockCache.containsKey(objectArtId) && canUnlockObject(object, subject)) {
+ lockedBranchId = objectToBranchLockCache.get(objectArtId);
- OseeEventManager.kickAccessControlArtifactsEvent(instance, AccessControlEventType.ArtifactsUnlocked,
- new LoadedArtifacts(object));
+ if (branchId.equals(lockedBranchId)) {
+ AccessObject accessObject = getAccessObject(object);
+ removeAccessControlDataIf(true, new AccessControlData(subject, accessObject, PermissionEnum.LOCK, false));
+ objectToBranchLockCache.remove(objectArtId);
+ lockedObjectToSubject.remove(objectArtId);
+ event.getArtifacts().add(object.getBasicGuidArtifact());
+ lockedArts.add(object);
+ }
}
}
+ try {
+ OseeEventManager.kickAccessControlArtifactsEvent(instance, event, new LoadedArtifacts(lockedArts));
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
}
public static void removeAllPermissionsFromBranch(OseeConnection connection, Branch branch) throws OseeCoreException {
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeTransactionOperation.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeTransactionOperation.java
index 0860f970c4c..3d70ce4a252 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeTransactionOperation.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeTransactionOperation.java
@@ -150,14 +150,15 @@ public class PurgeTransactionOperation extends AbstractDbTxOperation {
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
- // This will kick the artifacts reloaded event which should be handled by Applications/UIs
- try {
- ArtifactQuery.reloadArtifacts(artifactsInCache);
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
}
+
+ } // This will kick the artifacts reloaded event which should be handled by Applications/UIs
+ try {
+ ArtifactQuery.reloadArtifacts(artifactsInCache);
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
}
+
}
private TransactionEvent getPurgeTransactionEvent(int[] txIdsToDelete) {
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/AccessControlEventType.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/AccessControlEventType.java
index f71c01c1f7d..fa4c80c483d 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/AccessControlEventType.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/AccessControlEventType.java
@@ -14,11 +14,12 @@ package org.eclipse.osee.framework.skynet.core.event;
* @author Donald G. Dunne
*/
public enum AccessControlEventType {
- ArtifactsLocked(EventType.LocalAndRemote),
- ArtifactsUnlocked(EventType.LocalAndRemote),
- UserAuthenticated(EventType.LocalOnly);
+ ArtifactsLocked(EventType.LocalAndRemote, "AAn_QHnJpWky8xcyKEgA"),
+ ArtifactsUnlocked(EventType.LocalAndRemote, "AFRkIPF_y3ExB4XCyPgA"),
+ UserAuthenticated(EventType.LocalOnly, "AFRkIhbm0BbIGKALcKQA");
private final EventType eventType;
+ private final String guid;
public boolean isRemoteEventType() {
return eventType == EventType.LocalAndRemote || eventType == EventType.RemoteOnly;
@@ -28,10 +29,22 @@ public enum AccessControlEventType {
return eventType == EventType.LocalAndRemote || eventType == EventType.LocalOnly;
}
- /**
- * @param localOnly true if this event type is to be thrown only locally and not to other clients
- */
- private AccessControlEventType(EventType eventType) {
+ private AccessControlEventType(EventType eventType, String guid) {
this.eventType = eventType;
+ this.guid = guid;
}
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public static AccessControlEventType getByGuid(String guid) {
+ for (AccessControlEventType type : values()) {
+ if (type.guid.equals(guid)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/IAccessControlEventListener.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/IAccessControlEventListener.java
index 42cbe5ac55f..767703c50c3 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/IAccessControlEventListener.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/IAccessControlEventListener.java
@@ -10,12 +10,12 @@
*******************************************************************************/
package org.eclipse.osee.framework.skynet.core.event;
-import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
/**
* @author Donald G. Dunne
*/
public interface IAccessControlEventListener extends IEventListener {
- public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEventType accessControlModType, LoadedArtifacts loadedArtifactss);
+ public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent);
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/InternalEventManager2.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/InternalEventManager2.java
index 339b8b33a75..7355d19dcf4 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/InternalEventManager2.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/InternalEventManager2.java
@@ -19,6 +19,7 @@ import java.util.logging.Level;
import org.eclipse.osee.framework.core.exception.OseeAuthenticationRequiredException;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.event2.BranchEvent;
import org.eclipse.osee.framework.skynet.core.event2.BroadcastEvent;
import org.eclipse.osee.framework.skynet.core.event2.FrameworkEventManager;
@@ -55,6 +56,42 @@ public class InternalEventManager2 {
executorService.submit(runnable);
}
+ /*
+ * Kick LOCAL and REMOTE access control events
+ */
+ static void kickAccessControlArtifactsEvent(final Sender sender, final AccessControlEvent accessControlEvent) {
+ if (sender == null) {
+ throw new IllegalArgumentException("sender can not be null");
+ }
+ if (accessControlEvent.getEventType() == null) {
+ throw new IllegalArgumentException("accessControlEventType can not be null");
+ }
+ if (isDisableEvents()) {
+ return;
+ }
+ OseeEventManager.eventLog("IEM2: kickAccessControlEvent - type: " + accessControlEvent + sender + " artifacts: " + accessControlEvent.getArtifacts());
+ Runnable runnable = new Runnable() {
+ public void run() {
+ try {
+ // Kick LOCAL
+ boolean normalOperation = !enableRemoteEventLoopback;
+ boolean loopbackTestEnabledAndRemoteEventReturned = enableRemoteEventLoopback && sender.isRemote();
+ if ((normalOperation && sender.isLocal()) || loopbackTestEnabledAndRemoteEventReturned) {
+ FrameworkEventManager.processAccessControlEvent(sender, accessControlEvent);
+ }
+ // Kick REMOTE
+ if (sender.isLocal() && accessControlEvent.getEventType().isRemoteEventType()) {
+ RemoteEventManager2.getInstance().kick(
+ FrameworkEventUtil.getRemoteAccessControlEvent(accessControlEvent));
+ }
+ } catch (Exception ex) {
+ OseeEventManager.eventLog("IEM2 kickAccessControlEvent", ex);
+ }
+ }
+ };
+ execute(runnable);
+ }
+
// Kick LOCAL "remote event manager" event
static void kickLocalRemEvent(final Sender sender, final RemoteEventServiceEventType remoteEventServiceEventType) throws OseeCoreException {
if (isDisableEvents()) {
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
index 246064a4f86..c2fb222d61b 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
@@ -24,6 +24,7 @@ import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactModType;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.event2.BranchEvent;
import org.eclipse.osee.framework.skynet.core.event2.BroadcastEvent;
import org.eclipse.osee.framework.skynet.core.event2.PersistEvent;
@@ -100,11 +101,14 @@ public class OseeEventManager {
}
// Kick LOCAL and REMOTE access control events
- public static void kickAccessControlArtifactsEvent(Object source, final AccessControlEventType accessControlModType, final LoadedArtifacts loadedArtifacts) throws OseeAuthenticationRequiredException {
+ public static void kickAccessControlArtifactsEvent(Object source, AccessControlEvent accessControlEvent, final LoadedArtifacts loadedArtifacts) throws OseeAuthenticationRequiredException {
if (isDisableEvents()) {
return;
}
- InternalEventManager.kickAccessControlArtifactsEvent(getSender(source), accessControlModType, loadedArtifacts);
+ InternalEventManager.kickAccessControlArtifactsEvent(getSender(source), accessControlEvent.getEventType(),
+ loadedArtifacts);
+ accessControlEvent.setNetworkSender(getSender(source).getNetworkSender2());
+ InternalEventManager2.kickAccessControlArtifactsEvent(getSender(source), accessControlEvent);
}
// Kick LOCAL artifact modified event; This event does NOT go external
@@ -155,7 +159,6 @@ public class OseeEventManager {
for (Integer value : transactionIds) {
transIds[x++] = value.intValue();
}
- //TODO This needs to be converted into the individual artifacts and relations that were deleted/modified
if (transactionEvent.getEventType() == TransactionEventType.Purged) {
InternalEventManager.kickTransactionsPurgedEvent(getSender(source), transIds);
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/AccessControlEvent.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/AccessControlEvent.java
new file mode 100644
index 00000000000..53c6998760b
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/AccessControlEvent.java
@@ -0,0 +1,72 @@
+package org.eclipse.osee.framework.skynet.core.event2;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.osee.framework.core.data.DefaultBasicGuidArtifact;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.model.Branch;
+import org.eclipse.osee.framework.skynet.core.event.AccessControlEventType;
+import org.eclipse.osee.framework.skynet.core.event.msgs.NetworkSender;
+
+public class AccessControlEvent extends FrameworkEvent {
+
+ private AccessControlEventType eventType;
+ private List<DefaultBasicGuidArtifact> artifacts;
+ private NetworkSender networkSender;
+
+ /**
+ * Gets the value of the artifacts property.
+ * <p>
+ * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to
+ * the returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for
+ * the artifacts property.
+ * <p>
+ * For example, to add a new item, do as follows:
+ *
+ * <pre>
+ * getArtifacts().add(newItem);
+ * </pre>
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link DefaultBasicGuidArtifact }
+ */
+ public List<DefaultBasicGuidArtifact> getArtifacts() {
+ if (artifacts == null) {
+ artifacts = new ArrayList<DefaultBasicGuidArtifact>();
+ }
+ return this.artifacts;
+ }
+
+ /**
+ * Gets the value of the networkSender property.
+ *
+ * @return possible object is {@link NetworkSender }
+ */
+ public NetworkSender getNetworkSender() {
+ return networkSender;
+ }
+
+ /**
+ * Sets the value of the networkSender property.
+ *
+ * @param value allowed object is {@link NetworkSender }
+ */
+ public void setNetworkSender(NetworkSender value) {
+ this.networkSender = value;
+ }
+
+ public AccessControlEventType getEventType() {
+ return eventType;
+ }
+
+ public void setEventType(AccessControlEventType eventType) {
+ this.eventType = eventType;
+ }
+
+ public boolean isForBranch(Branch branch) throws OseeCoreException {
+ for (DefaultBasicGuidArtifact guidArt : getArtifacts()) {
+ if (branch.getGuid().equals(guidArt.getBranchGuid())) return true;
+ }
+ return false;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventManager.java
index b1029d081a2..95d1af5ab75 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventManager.java
@@ -10,6 +10,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
+import org.eclipse.osee.framework.skynet.core.event.IAccessControlEventListener;
import org.eclipse.osee.framework.skynet.core.event.IBroadcastEventListener;
import org.eclipse.osee.framework.skynet.core.event.IEventListener;
import org.eclipse.osee.framework.skynet.core.event.IRemoteEventManagerEventListener;
@@ -101,6 +102,15 @@ public class FrameworkEventManager {
}
}
+ public static void processAccessControlEvent(Sender sender, AccessControlEvent accessControlEvent) {
+ OseeEventManager.eventLog(String.format("FEM: processAccessControlEvent [%s]", accessControlEvent));
+ for (IEventListener listener : listeners) {
+ if (listener instanceof IAccessControlEventListener) {
+ ((IAccessControlEventListener) listener).handleAccessControlArtifactsEvent(sender, accessControlEvent);
+ }
+ }
+ }
+
public static void processEventBroadcastEvent(Sender sender, BroadcastEvent broadcastEvent) {
OseeEventManager.eventLog(String.format("FEM: processEventBroadcastEvent [%s]", broadcastEvent));
if (broadcastEvent.getUsers().size() == 0) return;
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventUtil.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventUtil.java
index 2034d735705..746faf71e9c 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventUtil.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event2/FrameworkEventUtil.java
@@ -16,6 +16,7 @@ import org.eclipse.osee.framework.core.exception.UserNotInDatabase;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteAccessControlEvent1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteAttributeChange1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBasicGuidArtifact1;
import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteBasicGuidRelation1;
@@ -28,6 +29,7 @@ import org.eclipse.osee.framework.messaging.event.res.msgs.RemoteTransactionEven
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
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;
import org.eclipse.osee.framework.skynet.core.event.BroadcastEventType;
import org.eclipse.osee.framework.skynet.core.event.msgs.AttributeChange;
@@ -65,6 +67,32 @@ public class FrameworkEventUtil {
return FrameworkEventUtil.isEvent(artifact, eventGuidArts, Arrays.asList(EventModType.Modified));
}
+ public static RemoteAccessControlEvent1 getRemoteAccessControlEvent(AccessControlEvent accessControlEvent) {
+ RemoteAccessControlEvent1 event = new RemoteAccessControlEvent1();
+ event.setNetworkSender(getRemoteNetworkSender(accessControlEvent.getNetworkSender()));
+ event.setEventTypeGuid(accessControlEvent.getEventType().getGuid());
+ for (DefaultBasicGuidArtifact guidArt : accessControlEvent.getArtifacts()) {
+ event.getArtifacts().add(getRemoteBasicGuidArtifact(guidArt));
+ }
+ return event;
+ }
+
+ public static AccessControlEvent getAccessControlEvent(RemoteAccessControlEvent1 remEvent) {
+ AccessControlEventType accessControlEventType = AccessControlEventType.getByGuid(remEvent.getEventTypeGuid());
+ if (accessControlEventType != null) {
+ AccessControlEvent accessControlEvent = new AccessControlEvent();
+ accessControlEvent.setNetworkSender(getNetworkSender(remEvent.getNetworkSender()));
+ for (RemoteBasicGuidArtifact1 remGuidArt : remEvent.getArtifacts()) {
+ accessControlEvent.getArtifacts().add(getBasicGuidArtifact(remGuidArt));
+ }
+ return accessControlEvent;
+ } else {
+ OseeLog.log(Activator.class, Level.WARNING,
+ "Unhandled AccessControl event type guid " + remEvent.getEventTypeGuid());
+ }
+ return null;
+ }
+
public static RemoteBroadcastEvent1 getRemoteBroadcastEvent(BroadcastEvent broadcastEvent) {
RemoteBroadcastEvent1 event = new RemoteBroadcastEvent1();
event.setNetworkSender(getRemoteNetworkSender(broadcastEvent.getNetworkSender()));
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java
index 606096ec451..e4064c74d29 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java
@@ -76,6 +76,7 @@ import org.eclipse.osee.framework.skynet.core.event.IRelationModifiedEventListen
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
import org.eclipse.osee.framework.skynet.core.event.FrameworkTransactionData.ChangeType;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.relation.RelationEventType;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
@@ -884,19 +885,27 @@ public class ArtifactExplorer extends ViewPart implements IRebuildMenuListener,
public void widgetSelected(SelectionEvent e) {
IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
Iterator<?> iterator = selection.iterator();
-
+ Set<Artifact> lockArtifacts = new HashSet<Artifact>();
+ Set<Artifact> unlockArtifacts = new HashSet<Artifact>();
while (iterator.hasNext()) {
try {
Artifact object = (Artifact) iterator.next();
if (new GlobalMenuPermissions(object).isLocked()) {
- AccessControlManager.unLockObject(object, UserManager.getUser());
+ unlockArtifacts.add(object);
} else {
- AccessControlManager.lockObject(object, UserManager.getUser());
+ lockArtifacts.add(object);
}
} catch (Exception ex) {
OseeLog.log(SkynetGuiPlugin.class, OseeLevel.SEVERE_POPUP, ex);
}
}
+
+ try {
+ AccessControlManager.unLockObjects(unlockArtifacts, UserManager.getUser());
+ AccessControlManager.lockObjects(lockArtifacts, UserManager.getUser());
+ } catch (Exception ex) {
+ OseeLog.log(SkynetGuiPlugin.class, OseeLevel.SEVERE_POPUP, ex);
+ }
}
public void widgetDefaultSelected(SelectionEvent e) {
@@ -1432,12 +1441,16 @@ public class ArtifactExplorer extends ViewPart implements IRebuildMenuListener,
}
@Override
- public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEventType accessControlEventType, LoadedArtifacts loadedArtifacts) {
+ public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent) {
try {
- if (loadedArtifacts.isNotForBranch(branch)) {
+ if (!accessControlEvent.isForBranch(branch)) {
return;
}
- if (accessControlEventType == AccessControlEventType.UserAuthenticated || accessControlEventType == AccessControlEventType.ArtifactsUnlocked || accessControlEventType == AccessControlEventType.ArtifactsLocked) {
+ if (accessControlEvent.getEventType() == AccessControlEventType.UserAuthenticated ||
+ //
+ accessControlEvent.getEventType() == AccessControlEventType.ArtifactsUnlocked ||
+ //
+ accessControlEvent.getEventType() == AccessControlEventType.ArtifactsLocked) {
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
index d480eb157e2..39006907c92 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
@@ -23,6 +23,7 @@ import org.eclipse.osee.framework.skynet.core.event.AccessControlEventType;
import org.eclipse.osee.framework.skynet.core.event.IAccessControlEventListener;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
import org.eclipse.osee.framework.ui.skynet.dialogs.AuthenticationDialog;
@@ -78,8 +79,9 @@ public final class SessionContributionItem extends OseeContributionItem implemen
Display.getDefault().asyncExec(new Runnable() {
public void run() {
try {
- OseeEventManager.kickAccessControlArtifactsEvent(this,
- AccessControlEventType.UserAuthenticated,
+ AccessControlEvent event = new AccessControlEvent();
+ event.setEventType(AccessControlEventType.UserAuthenticated);
+ OseeEventManager.kickAccessControlArtifactsEvent(this, event,
LoadedArtifacts.createEmptyLoadedArtifacts());
} catch (Exception ex) {
OseeLog.log(SkynetGuiPlugin.class, Level.SEVERE, ex);
@@ -116,8 +118,8 @@ public final class SessionContributionItem extends OseeContributionItem implemen
}
@Override
- public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEventType accessControlEventType, LoadedArtifacts loadedArtifactss) {
- if (accessControlEventType == AccessControlEventType.UserAuthenticated) {
+ public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent) {
+ if (accessControlEvent.getEventType() == AccessControlEventType.UserAuthenticated) {
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/AbstractEventArtifactEditor.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/AbstractEventArtifactEditor.java
index 056ee3db673..15b9aa5c063 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/AbstractEventArtifactEditor.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/AbstractEventArtifactEditor.java
@@ -28,6 +28,7 @@ import org.eclipse.osee.framework.skynet.core.event.IFrameworkTransactionEventLi
import org.eclipse.osee.framework.skynet.core.event.IRelationModifiedEventListener;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.skynet.core.relation.RelationEventType;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
@@ -183,10 +184,10 @@ public abstract class AbstractEventArtifactEditor extends AbstractArtifactEditor
}
@Override
- public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEventType accessControlEventType, LoadedArtifacts loadedArtifacts) {
+ public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent) {
try {
- if (accessControlEventType == AccessControlEventType.ArtifactsLocked || accessControlEventType == AccessControlEventType.ArtifactsUnlocked) {
- if (loadedArtifacts.getLoadedArtifacts().contains(getArtifactFromEditorInput())) {
+ if (accessControlEvent.getEventType() == AccessControlEventType.ArtifactsLocked || accessControlEvent.getEventType() == AccessControlEventType.ArtifactsUnlocked) {
+ if (accessControlEvent.getArtifacts().contains(getArtifactFromEditorInput())) {
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
diff --git a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/panels/GrayableBranchSelectionComposite.java b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/panels/GrayableBranchSelectionComposite.java
index b03eaa03ba3..38245a9193c 100644
--- a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/panels/GrayableBranchSelectionComposite.java
+++ b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/panels/GrayableBranchSelectionComposite.java
@@ -16,7 +16,7 @@ import org.eclipse.osee.framework.skynet.core.event.AccessControlEventType;
import org.eclipse.osee.framework.skynet.core.event.IAccessControlEventListener;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
-import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
+import org.eclipse.osee.framework.skynet.core.event2.AccessControlEvent;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
import org.eclipse.osee.framework.ui.skynet.panels.BranchSelectSimpleComposite;
import org.eclipse.swt.SWT;
@@ -62,8 +62,8 @@ public class GrayableBranchSelectionComposite extends Composite implements IAcce
}
@Override
- public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEventType accessControlModType, LoadedArtifacts loadedArtifactss) {
- if (accessControlModType == AccessControlEventType.UserAuthenticated) {
+ public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent) {
+ if (accessControlEvent.getEventType() == AccessControlEventType.UserAuthenticated) {
handleUserAuthenticated();
}
}

Back to the top