Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjphillips2011-03-08 17:35:05 +0000
committerRyan D. Brooks2011-03-08 17:35:05 +0000
commitc3d79217096c003de261d0f4dc8d38078e3c0913 (patch)
treee25faaef6645cb8f514ade2fcb4fd3be86d37973 /plugins/org.eclipse.osee.framework.access/src
parentb27c61f67c111c055430c91987f2171195a68d8f (diff)
downloadorg.eclipse.osee-c3d79217096c003de261d0f4dc8d38078e3c0913.tar.gz
org.eclipse.osee-c3d79217096c003de261d0f4dc8d38078e3c0913.tar.xz
org.eclipse.osee-c3d79217096c003de261d0f4dc8d38078e3c0913.zip
refactor: Separate access control refresh cache logic from purge branch
Diffstat (limited to 'plugins/org.eclipse.osee.framework.access/src')
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java35
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlServiceRegHandler.java3
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java31
3 files changed, 46 insertions, 23 deletions
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java
new file mode 100644
index 00000000000..1dafe72be17
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java
@@ -0,0 +1,35 @@
+/*
+ * Created on Mar 7, 2011
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.framework.access.internal;
+
+import java.util.List;
+
+import org.eclipse.osee.framework.access.AccessControlData;
+import org.eclipse.osee.framework.access.AccessObject;
+import org.eclipse.osee.framework.access.internal.data.BranchAccessObject;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+
+/**
+ * @author Jeff C. Phillips
+ */
+public class AccessControlCacheHandler {
+
+ public void updateAccessListForBranchObject(AccessControlService service, final String branchGuid) throws OseeCoreException {
+ BranchAccessObject branchAccessObject = BranchAccessObject.getBranchAccessObject(branchGuid);
+ updateAccessList(service, branchAccessObject);
+ }
+
+ public void updateAccessList(AccessControlService service, AccessObject accessObject) throws OseeCoreException {
+ List<AccessControlData> acl = service.generateAccessControlList(accessObject);
+ for (AccessControlData accessControlData : acl) {
+ service.removeAccessControlDataIf(false, accessControlData);
+ }
+ }
+
+ public void reloadCache(AccessControlService service) throws OseeCoreException {
+ service.reloadCache();
+ }
+}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlServiceRegHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlServiceRegHandler.java
index 3a0ba0d465b..e41314f14cc 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlServiceRegHandler.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlServiceRegHandler.java
@@ -11,6 +11,7 @@
package org.eclipse.osee.framework.access.internal;
import java.util.Map;
+
import org.eclipse.osee.framework.core.services.IAccessControlService;
import org.eclipse.osee.framework.core.services.IOseeCachingService;
import org.eclipse.osee.framework.core.util.AbstractTrackingHandler;
@@ -47,7 +48,7 @@ public final class AccessControlServiceRegHandler extends AbstractTrackingHandle
accessService = new AccessControlService(databaseService, cachingService);
serviceRegistration = context.registerService(IAccessControlService.class.getName(), accessService, null);
- accessEventListener = new AccessEventListener(accessService);
+ accessEventListener = new AccessEventListener(accessService, new AccessControlCacheHandler());
OseeEventManager.addPriorityListener(accessEventListener);
}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
index 26a8ae1fa15..0d6ab11f977 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
@@ -12,10 +12,8 @@ package org.eclipse.osee.framework.access.internal;
import java.util.List;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessObject;
+
import org.eclipse.osee.framework.access.internal.data.ArtifactAccessObject;
-import org.eclipse.osee.framework.access.internal.data.BranchAccessObject;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -39,21 +37,19 @@ import org.eclipse.osee.framework.skynet.core.event.model.Sender;
public final class AccessEventListener implements IBranchEventListener, IAccessControlEventListener, IArtifactEventListener {
private final AccessControlService service;
+ private final AccessControlCacheHandler accessControlCacheHandler;
- public AccessEventListener(AccessControlService service) {
+ public AccessEventListener(AccessControlService service, AccessControlCacheHandler accessControlCacheHandler) {
+ this.accessControlCacheHandler = accessControlCacheHandler;
this.service = service;
}
- private void reload() throws OseeCoreException {
- service.reloadCache();
- }
-
@Override
public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
for (EventBasicGuidArtifact guidArt : artifactEvent.getArtifacts()) {
if (guidArt.is(EventModType.Added) && guidArt.is(CoreArtifactTypes.User)) {
try {
- reload();
+ accessControlCacheHandler.reloadCache(service);
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
@@ -63,7 +59,7 @@ public final class AccessEventListener implements IBranchEventListener, IAccessC
Artifact cacheArt = ArtifactCache.getActive(guidArt);
if (cacheArt != null) {
ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(cacheArt);
- updateAccessList(sender, artifactAccessObject);
+ accessControlCacheHandler.updateAccessList(service, artifactAccessObject);
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
@@ -81,29 +77,20 @@ public final class AccessEventListener implements IBranchEventListener, IAccessC
@Override
public void handleBranchEvent(Sender sender, final BranchEvent branchEvent) {
try {
- if (branchEvent.getEventType() == BranchEventType.Deleted || (!sender.isLocal() && branchEvent.getEventType() == BranchEventType.Purged)) {
- BranchAccessObject branchAccessObject =
- BranchAccessObject.getBranchAccessObject(branchEvent.getBranchGuid());
- updateAccessList(sender, branchAccessObject);
+ if (branchEvent.getEventType() == BranchEventType.Deleted) {
+ accessControlCacheHandler.updateAccessListForBranchObject(service, branchEvent.getBranchGuid());
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
}
- private void updateAccessList(Sender sender, AccessObject accessObject) throws OseeCoreException {
- List<AccessControlData> acl = service.generateAccessControlList(accessObject);
- for (AccessControlData accessControlData : acl) {
- service.removeAccessControlDataIf(false, accessControlData);
- }
- }
-
@Override
public void handleAccessControlArtifactsEvent(Sender sender, AccessControlEvent accessControlEvent) {
try {
// local is handled by operations against cache
if (sender.isRemote()) {
- service.reloadCache();
+ accessControlCacheHandler.reloadCache(service);
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);

Back to the top