diff options
author | jphillips | 2011-03-08 17:35:05 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-03-08 17:35:05 +0000 |
commit | c3d79217096c003de261d0f4dc8d38078e3c0913 (patch) | |
tree | e25faaef6645cb8f514ade2fcb4fd3be86d37973 /plugins/org.eclipse.osee.framework.access/src | |
parent | b27c61f67c111c055430c91987f2171195a68d8f (diff) | |
download | org.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')
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); |