SLING-6357 - Allow to extend LoginAdminWhitelist with multiple configurations

- implemented configuration based on WhitelistFragment configurations
- changed configurations in downstream modules and tests

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1773046 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java b/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
index b816715..f333f52 100644
--- a/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
+++ b/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.jcr.oak.server.it;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -41,15 +42,18 @@
 import org.ops4j.pax.exam.util.PathUtils;
 import org.osgi.framework.BundleContext;
 
+import static java.util.Arrays.asList;
 import static org.apache.sling.testing.paxexam.SlingOptions.jackrabbitSling;
 import static org.apache.sling.testing.paxexam.SlingOptions.scr;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingJcr;
+import static org.apache.sling.testing.paxexam.SlingOptions.slingJcrRepoinit;
 import static org.apache.sling.testing.paxexam.SlingOptions.tikaSling;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
 import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
 
 public abstract class OakServerTestSupport extends TestSupport {
@@ -170,7 +174,6 @@
         final String repoinit = String.format("raw:file:%s/src/test/resources/repoinit.txt", PathUtils.getBaseDir());
         final String slingHome = String.format("%s/sling", workingDirectory());
         final String repositoryHome = String.format("%s/repository", slingHome);
-        final String localIndexDir = String.format("%s/index", repositoryHome);
         return composite(
             scr(),
             slingJcr(),
@@ -184,9 +187,9 @@
             mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.jaas").version(SlingOptions.versionResolver),
             mavenBundle().groupId("org.apache.jackrabbit").artifactId("oak-segment").version(SlingOptions.versionResolver),
             // repoinit (temp)
-            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.jcr.repoinit").version("1.1.1-SNAPSHOT"),
-            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.repoinit.parser").version("1.1.1-SNAPSHOT"),
-            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.provisioning.model").version("1.4.4"),
+            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.jcr.repoinit").version("1.1.0"),
+            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.repoinit.parser").version("1.1.0"),
+            mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.provisioning.model").version("1.7.0"),
             newConfiguration("org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService")
                 .put("repository.home", repositoryHome)
                 .put("name", "Default NodeStore")
@@ -197,7 +200,17 @@
             newConfiguration("org.apache.sling.jcr.repoinit.impl.RepositoryInitializer")
                 .put("references", new String[]{repoinit})
                 .asOption(),
-            getWhitelistRegexpOption()
+            getWhitelistRegexpOption(),
+            // To generate the list of whitelisted bundles after a failed test-run:
+            // grep -R 'NOT white' target/failsafe-reports/ | awk -F': Bundle ' '{print substr($2, 1, index($2, " is NOT "))}' | sort -u
+            factoryConfiguration("org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment")
+                .put("whitelist.bundles", new String[]{
+                    "org.apache.sling.jcr.oak.server",
+                    "org.apache.sling.jcr.contentloader",
+                    "org.apache.sling.jcr.resource",
+                    "org.apache.sling.resourceresolver"
+                })
+                .asOption()
         );
     }