OAK-9282 : SecurityProviderRegistration: missing test for concurrent activation
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/trunk@1883789 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/oak-core/pom.xml b/oak-core/pom.xml
index 7dcfb13..ed4676a 100644
--- a/oak-core/pom.xml
+++ b/oak-core/pom.xml
@@ -158,6 +158,7 @@
<include>org.apache.jackrabbit.oak.security.authentication</include>
<include>org.apache.jackrabbit.oak.security.authentication.user</include>
<include>org.apache.jackrabbit.oak.security.authorization</include>
+ <include>org.apache.jackrabbit.oak.security.internal</include>
<include>org.apache.jackrabbit.oak.security.principal</include>
<include>org.apache.jackrabbit.oak.security.privilege</include>
<include>org.apache.jackrabbit.oak.security.user.autosave</include>
@@ -182,7 +183,6 @@
<include>org.apache.jackrabbit.oak.security.authorization.composite</include>
<include>org.apache.jackrabbit.oak.security.authorization.permission</include>
<include>org.apache.jackrabbit.oak.security.authorization.restriction</include>
- <include>org.apache.jackrabbit.oak.security.internal</include>
<include>org.apache.jackrabbit.oak.security.user</include>
</includes>
<excludes>
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
index e3dcb14..5f41df9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
@@ -115,7 +115,7 @@
@Rule
public final OsgiContext context = new OsgiContext();
- private SecurityProviderRegistration registration = new SecurityProviderRegistration();
+ private final SecurityProviderRegistration registration = new SecurityProviderRegistration();
private static void assertContext(@NotNull Context context, int expectedSize, @NotNull Tree tree, boolean isDefined) throws Exception {
Class<?> c = context.getClass();
@@ -212,6 +212,17 @@
assertEquals(6, Iterables.size(Iterables.filter(service.getConfigurations(), Predicates.notNull())));
}
+
+ @Test
+ public void testActivateWhileRegistering() throws Exception {
+ Field f = registration.getClass().getDeclaredField("registering");
+ f.setAccessible(true);
+ f.set(registration, true);
+
+ registration.activate(context.bundleContext(), configWithRequiredServiceIds());
+ assertNull(context.getService(SecurityProvider.class));
+ }
+
@Test
public void testModified() {
registration.activate(context.bundleContext(), configWithRequiredServiceIds("rpId", "authorizationId"));
@@ -1081,6 +1092,5 @@
assertEquals(1, am.getEffectivePolicies(ImmutableSet.of(EveryonePrincipal.getInstance())).length);
verify(filter1, never()).stop(acMgr, ImmutableSet.of(EveryonePrincipal.getInstance()));
verify(filter2, times(1)).stop(acMgr, ImmutableSet.of(EveryonePrincipal.getInstance()));
-
}
}