diff options
17 files changed, 351 insertions, 66 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsConfigurationManagement.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsCmAccessControl.java index 361cb38ccc2..a79c1311714 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsConfigurationManagement.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsCmAccessControl.java @@ -15,16 +15,16 @@ import org.eclipse.osee.framework.core.data.AccessContextId; import org.eclipse.osee.framework.core.model.IBasicArtifact; import org.eclipse.osee.framework.core.model.access.AccessModel; import org.eclipse.osee.framework.core.model.access.HasAccessModel; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; +import org.eclipse.osee.framework.core.services.CmAccessControl; /** * @author Roberto E. Escobar */ -public class AtsConfigurationManagement implements ConfigurationManagement, HasAccessModel { +public class AtsCmAccessControl implements CmAccessControl, HasAccessModel { private final AccessModel accessModel; - public AtsConfigurationManagement(AccessModel accessModel) { + public AtsCmAccessControl(AccessModel accessModel) { this.accessModel = accessModel; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsConfigurationManagementRegHandler.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsCmAccessControlRegHandler.java index f629c51724e..41ddb8d3ee7 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsConfigurationManagementRegHandler.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsCmAccessControlRegHandler.java @@ -15,7 +15,7 @@ import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter; import org.eclipse.osee.framework.core.dsl.integration.OseeDslAccessModel; import org.eclipse.osee.framework.core.dsl.integration.OseeDslProvider; import org.eclipse.osee.framework.core.model.access.AccessModel; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; +import org.eclipse.osee.framework.core.services.CmAccessControl; import org.eclipse.osee.framework.core.util.AbstractTrackingHandler; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; @@ -23,7 +23,7 @@ import org.osgi.framework.ServiceRegistration; /** * @author Roberto E. Escobar */ -public class AtsConfigurationManagementRegHandler extends AbstractTrackingHandler { +public class AtsCmAccessControlRegHandler extends AbstractTrackingHandler { private static final Class<?>[] SERVICE_DEPENDENCIES = new Class<?>[] {// AccessModelInterpreter.class, // @@ -41,8 +41,8 @@ public class AtsConfigurationManagementRegHandler extends AbstractTrackingHandle AccessModelInterpreter interpreter = getService(AccessModelInterpreter.class, services); OseeDslProvider dslProvider = new AtsAccessOseeDslProvider(); AccessModel accessModel = new OseeDslAccessModel(interpreter, dslProvider); - ConfigurationManagement cmService = new AtsConfigurationManagement(accessModel); - registration = context.registerService(ConfigurationManagement.class.getName(), cmService, null); + CmAccessControl cmService = new AtsCmAccessControl(accessModel); + registration = context.registerService(CmAccessControl.class.getName(), cmService, null); } @Override diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsPlugin.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsPlugin.java index c8a279bea52..48df416d79b 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsPlugin.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/internal/AtsPlugin.java @@ -51,7 +51,7 @@ public class AtsPlugin extends OseeUiActivator { context.registerService(IActionReportingService.class.getName(), new AtsActionReportingServiceImpl(), null);
service2 = context.registerService(IOseeAtsService.class.getName(), new OseeAtsServiceImpl(), null);
- tracker = new ServiceDependencyTracker(context, new AtsConfigurationManagementRegHandler());
+ tracker = new ServiceDependencyTracker(context, new AtsCmAccessControlRegHandler());
tracker.open();
}
diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/InternalAccessTestSuite.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/InternalAccessTestSuite.java index 02e5dca2589..ab8639ebf16 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/InternalAccessTestSuite.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/InternalAccessTestSuite.java @@ -10,13 +10,13 @@ *******************************************************************************/ package org.eclipse.osee.framework.access.test.internal; -import org.eclipse.osee.framework.access.test.internal.cm.CMAccessTestSuite; +import org.eclipse.osee.framework.access.test.internal.cm.CmAccessTestSuite; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ // -CMAccessTestSuite.class, // +CmAccessTestSuite.class, // OnEditOperationTest.class, // }) public class InternalAccessTestSuite { diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessProviderTest.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessProviderTest.java index 8ce25a184e6..899e9431fd5 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessProviderTest.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessProviderTest.java @@ -14,7 +14,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import org.eclipse.osee.framework.access.IAccessProvider; -import org.eclipse.osee.framework.access.internal.cm.CMAccessProvider; +import org.eclipse.osee.framework.access.internal.cm.CmAccessProvider; import org.eclipse.osee.framework.access.test.mocks.MockCMWithAccessModel; import org.eclipse.osee.framework.access.test.mocks.MockConfigurationManagementProvider; import org.eclipse.osee.framework.core.data.AccessContextId; @@ -30,11 +30,11 @@ import org.junit.BeforeClass; import org.junit.Test; /** - * Test Case for {@link CMAccessProvider} + * Test Case for {@link CmAccessProvider} * * @author Roberto E. Escobar */ -public class CMAccessProviderTest { +public class CmAccessProviderTest { private static IBasicArtifact<?> expectedUser; private static Object expectedObject; private static AccessContextId contextId1; @@ -52,7 +52,7 @@ public class CMAccessProviderTest { objects.add(expectedObject); MockConfigurationManagementProvider cmProvider = new MockConfigurationManagementProvider(expectedUser, expectedObject, null); - IAccessProvider accessProvider = new CMAccessProvider(cmProvider); + IAccessProvider accessProvider = new CmAccessProvider(cmProvider); AccessData accessData = new AccessData(); accessProvider.computeAccess(expectedUser, objects, accessData); @@ -68,7 +68,7 @@ public class CMAccessProviderTest { objects.add(expectedObject); MockConfigurationManagementProvider cmProvider = new MockConfigurationManagementProvider(expectedUser, expectedObject, cm); - IAccessProvider accessProvider = new CMAccessProvider(cmProvider); + IAccessProvider accessProvider = new CmAccessProvider(cmProvider); AccessData accessData = new AccessData(); accessProvider.computeAccess(expectedUser, objects, accessData); diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessTestSuite.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessTestSuite.java index ba349a18f19..817a92ddb67 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessTestSuite.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CMAccessTestSuite.java @@ -15,12 +15,11 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ // -CMAccessProviderTest.class, // - ConfigurationManagementProviderTest.class, // +CmAccessProviderTest.class, // }) /** * @author Roberto E. Escobar */ -public class CMAccessTestSuite { +public class CmAccessTestSuite { // Test Suite Class } diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/ConfigurationManagementProviderTest.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessControlProviderTest.java index 572228a9133..6e6ca09f750 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/ConfigurationManagementProviderTest.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessControlProviderTest.java @@ -12,24 +12,24 @@ package org.eclipse.osee.framework.access.test.internal.cm; import java.util.Collection; import java.util.HashSet; -import org.eclipse.osee.framework.access.internal.cm.ConfigurationManagementProviderImpl; +import org.eclipse.osee.framework.access.internal.cm.CmAccessControlProviderImpl; import org.eclipse.osee.framework.access.test.mocks.MockConfigurationManagement; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.core.model.IBasicArtifact; import org.eclipse.osee.framework.core.model.test.mocks.MockDataFactory; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; -import org.eclipse.osee.framework.core.services.ConfigurationManagementProvider; +import org.eclipse.osee.framework.core.services.CmAccessControl; +import org.eclipse.osee.framework.core.services.CmAccessControlProvider; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** - * Test Case for {@link ConfigurationManagementProvider}{@link ConfigurationManagementProviderImpl} + * Test Case for {@link CmAccessControlProvider}{@link CmAccessControlProviderImpl} * * @author Roberto E. Escobar */ -public class ConfigurationManagementProviderTest { +public class CmAccessControlProviderTest { private IBasicArtifact<?> user; private Object objectToCheck; @@ -66,14 +66,14 @@ public class ConfigurationManagementProviderTest { } private static void assertCMProvider(IBasicArtifact<?> user, Object objectToCheck, MockConfigurationManagement expectedCM, MockConfigurationManagement... extraCms) throws OseeCoreException { - Collection<ConfigurationManagement> cmServices = new HashSet<ConfigurationManagement>(); - for (ConfigurationManagement extraCm : extraCms) { + Collection<CmAccessControl> cmServices = new HashSet<CmAccessControl>(); + for (CmAccessControl extraCm : extraCms) { cmServices.add(extraCm); } - ConfigurationManagementProvider provider = new ConfigurationManagementProviderImpl(cmServices); - ConfigurationManagement actualCM = provider.getCmService(user, objectToCheck); + CmAccessControlProvider provider = new CmAccessControlProviderImpl(cmServices); + CmAccessControl actualCM = provider.getService(user, objectToCheck); Assert.assertEquals(expectedCM, actualCM); - for (ConfigurationManagement cmService : cmServices) { + for (CmAccessControl cmService : cmServices) { MockConfigurationManagement cm = (MockConfigurationManagement) cmService; Assert.assertTrue(cm.wasIsApplicableCalled()); } diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessProviderTest.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessProviderTest.java new file mode 100644 index 00000000000..899e9431fd5 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessProviderTest.java @@ -0,0 +1,99 @@ +/******************************************************************************* + * 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.access.test.internal.cm; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import org.eclipse.osee.framework.access.IAccessProvider; +import org.eclipse.osee.framework.access.internal.cm.CmAccessProvider; +import org.eclipse.osee.framework.access.test.mocks.MockCMWithAccessModel; +import org.eclipse.osee.framework.access.test.mocks.MockConfigurationManagementProvider; +import org.eclipse.osee.framework.core.data.AccessContextId; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.IBasicArtifact; +import org.eclipse.osee.framework.core.model.access.AccessData; +import org.eclipse.osee.framework.core.model.access.AccessModel; +import org.eclipse.osee.framework.core.model.test.mocks.MockDataFactory; +import org.eclipse.osee.framework.jdk.core.util.Compare; +import org.eclipse.osee.framework.jdk.core.util.GUID; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link CmAccessProvider} + * + * @author Roberto E. Escobar + */ +public class CmAccessProviderTest { + private static IBasicArtifact<?> expectedUser; + private static Object expectedObject; + private static AccessContextId contextId1; + + @BeforeClass + public static void setup() { + expectedUser = MockDataFactory.createArtifact(13); + expectedObject = new Object(); + contextId1 = MockDataFactory.createAccessContextId(GUID.create(), "context1"); + } + + @Test + public void testCmProviderReturnsNull() throws OseeCoreException { + Collection<Object> objects = new ArrayList<Object>(); + objects.add(expectedObject); + MockConfigurationManagementProvider cmProvider = + new MockConfigurationManagementProvider(expectedUser, expectedObject, null); + IAccessProvider accessProvider = new CmAccessProvider(cmProvider); + + AccessData accessData = new AccessData(); + accessProvider.computeAccess(expectedUser, objects, accessData); + Assert.assertTrue(cmProvider.wasGetCMCalled()); + } + + @Test + public void testCmProvider() throws OseeCoreException { + MockAccessModel accessModel = new MockAccessModel(); + MockCMWithAccessModel cm = + new MockCMWithAccessModel(accessModel, expectedUser, expectedObject, false, Collections.singleton(contextId1)); + Collection<Object> objects = new ArrayList<Object>(); + objects.add(expectedObject); + MockConfigurationManagementProvider cmProvider = + new MockConfigurationManagementProvider(expectedUser, expectedObject, cm); + IAccessProvider accessProvider = new CmAccessProvider(cmProvider); + + AccessData accessData = new AccessData(); + accessProvider.computeAccess(expectedUser, objects, accessData); + Assert.assertTrue(cmProvider.wasGetCMCalled()); + + Assert.assertTrue(accessModel.wasComputeAccessCalled); + Assert.assertEquals(contextId1, accessModel.contextId); + Assert.assertTrue(!Compare.isDifferent(objects, accessModel.objectsToCheck)); + Assert.assertEquals(accessData, accessModel.accessData); + } + + private final class MockAccessModel implements AccessModel { + + protected boolean wasComputeAccessCalled; + protected AccessContextId contextId; + protected Collection<Object> objectsToCheck; + protected AccessData accessData; + + @Override + public void computeAccess(AccessContextId contextId, Collection<Object> objectsToCheck, AccessData accessData) { + wasComputeAccessCalled = true; + this.contextId = contextId; + this.objectsToCheck = objectsToCheck; + this.accessData = accessData; + } + } + +} diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessTestSuite.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessTestSuite.java new file mode 100644 index 00000000000..817a92ddb67 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/internal/cm/CmAccessTestSuite.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * 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.access.test.internal.cm; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ // +CmAccessProviderTest.class, // +}) +/** + * @author Roberto E. Escobar + */ +public class CmAccessTestSuite { + // Test Suite Class +} diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagement.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagement.java index ad1b7342b3e..d3d2542a3e5 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagement.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagement.java @@ -13,13 +13,13 @@ package org.eclipse.osee.framework.access.test.mocks; import java.util.Collection; import org.eclipse.osee.framework.core.data.AccessContextId; import org.eclipse.osee.framework.core.model.IBasicArtifact; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; +import org.eclipse.osee.framework.core.services.CmAccessControl; import org.junit.Assert; /** * @author Roberto E. Escobar */ -public class MockConfigurationManagement implements ConfigurationManagement { +public class MockConfigurationManagement implements CmAccessControl { private final IBasicArtifact<?> expectedUser; private final Object expectedObject; diff --git a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagementProvider.java b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagementProvider.java index 6643b3f3dc7..2e98b8940eb 100644 --- a/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagementProvider.java +++ b/plugins/org.eclipse.osee.framework.access.test/src/org/eclipse/osee/framework/access/test/mocks/MockConfigurationManagementProvider.java @@ -11,20 +11,20 @@ package org.eclipse.osee.framework.access.test.mocks;
import org.eclipse.osee.framework.core.model.IBasicArtifact;
-import org.eclipse.osee.framework.core.services.ConfigurationManagement;
-import org.eclipse.osee.framework.core.services.ConfigurationManagementProvider;
+import org.eclipse.osee.framework.core.services.CmAccessControl;
+import org.eclipse.osee.framework.core.services.CmAccessControlProvider;
import org.junit.Assert;
/**
* @author Roberto E. Escobar
*/
-public class MockConfigurationManagementProvider implements ConfigurationManagementProvider {
+public class MockConfigurationManagementProvider implements CmAccessControlProvider {
private final IBasicArtifact<?> expectedUser;
private final Object expectedObject;
- private final ConfigurationManagement cmToReturn;
+ private final CmAccessControl cmToReturn;
private boolean wasGetCMCalled;
- public MockConfigurationManagementProvider(IBasicArtifact<?> expectedUser, Object expectedObject, ConfigurationManagement cmToReturn) {
+ public MockConfigurationManagementProvider(IBasicArtifact<?> expectedUser, Object expectedObject, CmAccessControl cmToReturn) {
super();
this.expectedUser = expectedUser;
this.expectedObject = expectedObject;
@@ -32,7 +32,7 @@ public class MockConfigurationManagementProvider implements ConfigurationManagem }
@Override
- public ConfigurationManagement getCmService(IBasicArtifact<?> user, Object object) {
+ public CmAccessControl getService(IBasicArtifact<?> user, Object object) {
wasGetCMCalled = true;
Assert.assertEquals(expectedUser, user);
Assert.assertEquals(expectedObject, object);
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/Activator.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/Activator.java index 59f34ee2338..8b9b8c793d3 100644 --- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/Activator.java +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/Activator.java @@ -12,7 +12,7 @@ package org.eclipse.osee.framework.access.internal; import java.util.ArrayList; import java.util.Collection; -import org.eclipse.osee.framework.access.internal.cm.CMAccessProviderRegistrationHandler; +import org.eclipse.osee.framework.access.internal.cm.CmAccessProviderRegistrationHandler; import org.eclipse.osee.framework.core.util.ServiceDependencyTracker; import org.eclipse.osee.framework.jdk.core.util.Lib; import org.osgi.framework.BundleActivator; @@ -31,7 +31,7 @@ public class Activator implements BundleActivator { handler = new AccessControlServiceRegHandler(); trackers.add(new ServiceDependencyTracker(context, handler)); trackers.add(new ServiceDependencyTracker(context, new ObjectAccessProviderRegistrationHandler())); - trackers.add(new ServiceDependencyTracker(context, new CMAccessProviderRegistrationHandler())); + trackers.add(new ServiceDependencyTracker(context, new CmAccessProviderRegistrationHandler())); for (ServiceDependencyTracker tracker : trackers) { tracker.open(); } diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProvider.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProvider.java index cdceaf0b5d0..3ee12df8451 100644 --- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProvider.java +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProvider.java @@ -21,28 +21,28 @@ import org.eclipse.osee.framework.core.model.IBasicArtifact; import org.eclipse.osee.framework.core.model.access.AccessData; import org.eclipse.osee.framework.core.model.access.AccessModel; import org.eclipse.osee.framework.core.model.access.HasAccessModel; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; -import org.eclipse.osee.framework.core.services.ConfigurationManagementProvider; +import org.eclipse.osee.framework.core.services.CmAccessControl; +import org.eclipse.osee.framework.core.services.CmAccessControlProvider; import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap; /** * @author Roberto E. Escobar */ -public class CMAccessProvider implements IAccessProvider { +public class CmAccessProvider implements IAccessProvider { - private final ConfigurationManagementProvider provider; + private final CmAccessControlProvider provider; - public CMAccessProvider(ConfigurationManagementProvider provider) { + public CmAccessProvider(CmAccessControlProvider provider) { this.provider = provider; } @Override public void computeAccess(IBasicArtifact<?> userArtifact, Collection<?> objToChecks, AccessData accessData) throws OseeCoreException { - DoubleKeyHashMap<ConfigurationManagement, AccessContextId, Collection<Object>> cmToCheckObjects = - new DoubleKeyHashMap<ConfigurationManagement, AccessContextId, Collection<Object>>(); + DoubleKeyHashMap<CmAccessControl, AccessContextId, Collection<Object>> cmToCheckObjects = + new DoubleKeyHashMap<CmAccessControl, AccessContextId, Collection<Object>>(); for (Object objectToCheck : objToChecks) { - ConfigurationManagement management = provider.getCmService(userArtifact, objectToCheck); + CmAccessControl management = provider.getService(userArtifact, objectToCheck); if (management instanceof HasAccessModel) { Collection<AccessContextId> contextIds = management.getContextId(userArtifact, objectToCheck); for (AccessContextId contextId : contextIds) { @@ -56,7 +56,7 @@ public class CMAccessProvider implements IAccessProvider { } } - for (ConfigurationManagement cm : cmToCheckObjects.getKeySetOne()) { + for (CmAccessControl cm : cmToCheckObjects.getKeySetOne()) { AccessModel accessModel = ((HasAccessModel) cm).getAccessModel(); Map<AccessContextId, Collection<Object>> sub = cmToCheckObjects.getSubHash(cm); for (Entry<AccessContextId, Collection<Object>> entry : sub.entrySet()) { diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProviderRegistrationHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProviderRegistrationHandler.java index fa8d3c830ca..7caca9ca9c2 100644 --- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProviderRegistrationHandler.java +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CMAccessProviderRegistrationHandler.java @@ -19,8 +19,8 @@ import org.eclipse.osee.framework.access.IAccessProvider; import org.eclipse.osee.framework.access.internal.AccessProviderVisitor; import org.eclipse.osee.framework.access.internal.Activator; import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.services.ConfigurationManagement; -import org.eclipse.osee.framework.core.services.ConfigurationManagementProvider; +import org.eclipse.osee.framework.core.services.CmAccessControl; +import org.eclipse.osee.framework.core.services.CmAccessControlProvider; import org.eclipse.osee.framework.core.services.IAccessControlService; import org.eclipse.osee.framework.core.util.AbstractTrackingHandler; import org.eclipse.osee.framework.core.util.ServiceBindType; @@ -31,17 +31,17 @@ import org.osgi.framework.BundleContext; /** * @author Roberto E. Escobar */ -public final class CMAccessProviderRegistrationHandler extends AbstractTrackingHandler { +public final class CmAccessProviderRegistrationHandler extends AbstractTrackingHandler { private final Map<Class<?>, ServiceBindType> dependencyMap = new LinkedHashMap<Class<?>, ServiceBindType>(); - private final Collection<ConfigurationManagement> cmServices = new CopyOnWriteArraySet<ConfigurationManagement>(); + private final Collection<CmAccessControl> cmServices = new CopyOnWriteArraySet<CmAccessControl>(); private IAccessProvider accessProvider; private ILifecycleService service; - public CMAccessProviderRegistrationHandler() { + public CmAccessProviderRegistrationHandler() { dependencyMap.put(ILifecycleService.class, ServiceBindType.SINGLETON); dependencyMap.put(IAccessControlService.class, ServiceBindType.SINGLETON); - dependencyMap.put(ConfigurationManagement.class, ServiceBindType.MANY); + dependencyMap.put(CmAccessControl.class, ServiceBindType.MANY); } @Override @@ -57,11 +57,11 @@ public final class CMAccessProviderRegistrationHandler extends AbstractTrackingH @Override public void onActivate(BundleContext context, Map<Class<?>, Object> services) { service = getService(ILifecycleService.class, services); - ConfigurationManagement cm = getService(ConfigurationManagement.class, services); + CmAccessControl cm = getService(CmAccessControl.class, services); cmServices.add(cm); try { - ConfigurationManagementProvider cmProvider = new ConfigurationManagementProviderImpl(cmServices); - accessProvider = new CMAccessProvider(cmProvider); + CmAccessControlProvider cmProvider = new CmAccessControlProviderImpl(cmServices); + accessProvider = new CmAccessProvider(cmProvider); service.addHandler(AccessProviderVisitor.TYPE, accessProvider); } catch (OseeCoreException ex) { OseeLog.log(Activator.class, Level.SEVERE, ex); @@ -70,7 +70,7 @@ public final class CMAccessProviderRegistrationHandler extends AbstractTrackingH @Override public void onServiceAdded(BundleContext context, Class<?> clazz, Object service) { - cmServices.add((ConfigurationManagement) service); + cmServices.add((CmAccessControl) service); } @Override diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/ConfigurationManagementProviderImpl.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessControlProviderImpl.java index 47026a66e07..ee1276b0a68 100644 --- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/ConfigurationManagementProviderImpl.java +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessControlProviderImpl.java @@ -15,35 +15,35 @@ import java.util.Collection; import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeStateException;
import org.eclipse.osee.framework.core.model.IBasicArtifact;
-import org.eclipse.osee.framework.core.services.ConfigurationManagement;
-import org.eclipse.osee.framework.core.services.ConfigurationManagementProvider;
+import org.eclipse.osee.framework.core.services.CmAccessControl;
+import org.eclipse.osee.framework.core.services.CmAccessControlProvider;
/**
* @author Roberto E. Escobar
*/
-public class ConfigurationManagementProviderImpl implements ConfigurationManagementProvider {
+public class CmAccessControlProviderImpl implements CmAccessControlProvider {
- private final Collection<ConfigurationManagement> cmServices;
+ private final Collection<CmAccessControl> cmServices;
- public ConfigurationManagementProviderImpl(Collection<ConfigurationManagement> cmServices) {
+ public CmAccessControlProviderImpl(Collection<CmAccessControl> cmServices) {
this.cmServices = cmServices;
}
@Override
- public ConfigurationManagement getCmService(IBasicArtifact<?> userArtifact, Object object) throws OseeCoreException {
- Collection<ConfigurationManagement> applicableCms = new ArrayList<ConfigurationManagement>();
+ public CmAccessControl getService(IBasicArtifact<?> userArtifact, Object object) throws OseeCoreException {
+ Collection<CmAccessControl> applicableCms = new ArrayList<CmAccessControl>();
// if (object instanceof HasConfigurationManagement) {
// HasConfigurationManagement cmContainer = (HasConfigurationManagement) object;
// cmToReturn = cmContainer.getCM();
// } else {
- for (ConfigurationManagement cmService : cmServices) {
+ for (CmAccessControl cmService : cmServices) {
// if (!cmService.equals(defaultCM)) {
if (cmService.isApplicable(userArtifact, object)) {
applicableCms.add(cmService);
}
// }
}
- ConfigurationManagement cmToReturn;
+ CmAccessControl cmToReturn;
if (applicableCms.isEmpty()) {
cmToReturn = null;
} else if (applicableCms.size() == 1) {
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java new file mode 100644 index 00000000000..3ee12df8451 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * 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.access.internal.cm; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Map; +import java.util.Map.Entry; +import org.eclipse.osee.framework.access.IAccessProvider; +import org.eclipse.osee.framework.core.data.AccessContextId; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.IBasicArtifact; +import org.eclipse.osee.framework.core.model.access.AccessData; +import org.eclipse.osee.framework.core.model.access.AccessModel; +import org.eclipse.osee.framework.core.model.access.HasAccessModel; +import org.eclipse.osee.framework.core.services.CmAccessControl; +import org.eclipse.osee.framework.core.services.CmAccessControlProvider; +import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap; + +/** + * @author Roberto E. Escobar + */ +public class CmAccessProvider implements IAccessProvider { + + private final CmAccessControlProvider provider; + + public CmAccessProvider(CmAccessControlProvider provider) { + this.provider = provider; + } + + @Override + public void computeAccess(IBasicArtifact<?> userArtifact, Collection<?> objToChecks, AccessData accessData) throws OseeCoreException { + DoubleKeyHashMap<CmAccessControl, AccessContextId, Collection<Object>> cmToCheckObjects = + new DoubleKeyHashMap<CmAccessControl, AccessContextId, Collection<Object>>(); + + for (Object objectToCheck : objToChecks) { + CmAccessControl management = provider.getService(userArtifact, objectToCheck); + if (management instanceof HasAccessModel) { + Collection<AccessContextId> contextIds = management.getContextId(userArtifact, objectToCheck); + for (AccessContextId contextId : contextIds) { + Collection<Object> entries = cmToCheckObjects.get(management, contextId); + if (entries == null) { + entries = new HashSet<Object>(); + cmToCheckObjects.put(management, contextId, entries); + } + entries.add(objectToCheck); + } + } + } + + for (CmAccessControl cm : cmToCheckObjects.getKeySetOne()) { + AccessModel accessModel = ((HasAccessModel) cm).getAccessModel(); + Map<AccessContextId, Collection<Object>> sub = cmToCheckObjects.getSubHash(cm); + for (Entry<AccessContextId, Collection<Object>> entry : sub.entrySet()) { + AccessContextId contextId = entry.getKey(); + Collection<Object> objectsToCheck = entry.getValue(); + + accessModel.computeAccess(contextId, objectsToCheck, accessData); + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderRegistrationHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderRegistrationHandler.java new file mode 100644 index 00000000000..7caca9ca9c2 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderRegistrationHandler.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * 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.access.internal.cm; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.logging.Level; +import org.eclipse.osee.framework.access.IAccessProvider; +import org.eclipse.osee.framework.access.internal.AccessProviderVisitor; +import org.eclipse.osee.framework.access.internal.Activator; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.services.CmAccessControl; +import org.eclipse.osee.framework.core.services.CmAccessControlProvider; +import org.eclipse.osee.framework.core.services.IAccessControlService; +import org.eclipse.osee.framework.core.util.AbstractTrackingHandler; +import org.eclipse.osee.framework.core.util.ServiceBindType; +import org.eclipse.osee.framework.lifecycle.ILifecycleService; +import org.eclipse.osee.framework.logging.OseeLog; +import org.osgi.framework.BundleContext; + +/** + * @author Roberto E. Escobar + */ +public final class CmAccessProviderRegistrationHandler extends AbstractTrackingHandler { + + private final Map<Class<?>, ServiceBindType> dependencyMap = new LinkedHashMap<Class<?>, ServiceBindType>(); + private final Collection<CmAccessControl> cmServices = new CopyOnWriteArraySet<CmAccessControl>(); + private IAccessProvider accessProvider; + private ILifecycleService service; + + public CmAccessProviderRegistrationHandler() { + dependencyMap.put(ILifecycleService.class, ServiceBindType.SINGLETON); + dependencyMap.put(IAccessControlService.class, ServiceBindType.SINGLETON); + dependencyMap.put(CmAccessControl.class, ServiceBindType.MANY); + } + + @Override + public Class<?>[] getDependencies() { + return null; + } + + @Override + public Map<Class<?>, ServiceBindType> getConfiguredDependencies() { + return dependencyMap; + } + + @Override + public void onActivate(BundleContext context, Map<Class<?>, Object> services) { + service = getService(ILifecycleService.class, services); + CmAccessControl cm = getService(CmAccessControl.class, services); + cmServices.add(cm); + try { + CmAccessControlProvider cmProvider = new CmAccessControlProviderImpl(cmServices); + accessProvider = new CmAccessProvider(cmProvider); + service.addHandler(AccessProviderVisitor.TYPE, accessProvider); + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + } + + @Override + public void onServiceAdded(BundleContext context, Class<?> clazz, Object service) { + cmServices.add((CmAccessControl) service); + } + + @Override + public void onServiceRemoved(BundleContext context, Class<?> clazz, Object service) { + cmServices.remove(service); + } + + @Override + public void onDeActivate() { + cmServices.clear(); + if (accessProvider != null) { + try { + service.removeHandler(AccessProviderVisitor.TYPE, accessProvider); + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + } + } +}
\ No newline at end of file |