Hi Angela,

the "org.apache.sling.testing.osgi-mock" dependency has an empty scope in
oak-run/pom.xml. Even if I change the scope to "test", I have a compilation
error when building oak-run.

[ERROR]
/Users/mari/src/svn/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java:[68,47]
error: package org.apache.sling.testing.mock.osgi.junit does not exist

[ERROR]
/Users/mari/src/svn/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java:[183,24]
error: cannot find symbol

[ERROR]   symbol: class OsgiContext

/Users/mari/src/svn/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java:[183,50]
error: cannot find symbol

[INFO] 3 errors

Can you review this?

---------- Forwarded message ----------
From: <[email protected]>
Date: 2016-05-20 10:26 GMT+02:00
Subject: svn commit: r1744672 - in /jackrabbit/oak/trunk/oak-run: pom.xml
src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
To: [email protected]


Author: angela
Date: Fri May 20 08:26:23 2016
New Revision: 1744672

URL: http://svn.apache.org/viewvc?rev=1744672&view=rev
Log:
OAK-4385 : Benchmarks: proper init of ExternalPrincipalConfiguration with
dynamicMembership

Modified:
    jackrabbit/oak/trunk/oak-run/pom.xml

jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java

jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java

Modified: jackrabbit/oak/trunk/oak-run/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/pom.xml?rev=1744672&r1=1744671&r2=1744672&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-run/pom.xml Fri May 20 08:26:23 2016
@@ -427,6 +427,12 @@
       <groupId>com.google.code.findbugs</groupId>
       <artifactId>jsr305</artifactId>
     </dependency>
+
+    <dependency>
+      <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
+      <scope></scope>
+    </dependency>

     <!-- Test dependencies -->
     <dependency>

Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1744672&r1=1744671&r2=1744672&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
Fri May 20 08:26:23 2016
@@ -131,6 +131,8 @@ public class BenchmarkRunner {
                 .defaultsTo(Boolean.FALSE);
         OptionSpec<String> supportedPaths =
parser.accepts("supportedPaths", "Supported paths in composite setup.")

 .withOptionalArg().ofType(String.class).withValuesSeparatedBy(',');
+        OptionSpec<Boolean> dynamicMembership =
parser.accepts("dynamicMembership", "Enable dynamic membership handling
during synchronisation of external users.")
+
.withOptionalArg().ofType(Boolean.class).defaultsTo(Boolean.FALSE);
         OptionSpec<String> autoMembership =
parser.accepts("autoMembership", "Ids of those groups a given external
identity automatically become member of.")

 .withOptionalArg().ofType(String.class).withValuesSeparatedBy(',');
         OptionSpec<String> nonOption = parser.nonOptions();
@@ -391,9 +393,9 @@ public class BenchmarkRunner {
             new ReplicaCrashResilienceTest(),

             // benchmarks for oak-auth-external
-            new ExternalLoginTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options), false,
autoMembership.values(options)),
-            new SyncAllExternalUsersTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options), false,
autoMembership.values(options)),
-            new SyncExternalUsersTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options), false,
autoMembership.values(options), batchSize.value(options))
+            new ExternalLoginTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options),
dynamicMembership.value(options), autoMembership.values(options)),
+            new SyncAllExternalUsersTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options),
dynamicMembership.value(options), autoMembership.values(options)),
+            new SyncExternalUsersTest(numberOfUsers.value(options),
numberOfGroups.value(options), expiration.value(options),
dynamicMembership.value(options), autoMembership.values(options),
batchSize.value(options))
         };

         Set<String> argset = Sets.newHashSet(nonOption.values(options));

Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java?rev=1744672&r1=1744671&r2=1744672&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
Fri May 20 08:26:23 2016
@@ -54,6 +54,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.SyncHandler;
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.SyncManager;
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncConfig;
+import
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncConfigImpl;
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler;
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl;
 import
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.SyncManagerImpl;
@@ -63,6 +64,8 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
 import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
+import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils;
+import org.apache.sling.testing.mock.osgi.junit.OsgiContext;

 import static com.google.common.base.Preconditions.checkNotNull;

@@ -84,6 +87,10 @@ import static com.google.common.base.Pre
 abstract class AbstractExternalTest extends AbstractTest {

     private static final String PATH_PREFIX = "pathPrefix";
+
+    private final Random random = new Random();
+    private final ExternalPrincipalConfiguration
externalPrincipalConfiguration = new ExternalPrincipalConfiguration();
+
     final DefaultSyncConfig syncConfig = new DefaultSyncConfig();
     final SyncHandler syncHandler = new DefaultSyncHandler(syncConfig);

@@ -92,8 +99,6 @@ abstract class AbstractExternalTest exte
     SyncManagerImpl syncManager;
     ExternalIdentityProviderManager idpManager;

-    private final Random random = new Random();
-
     protected AbstractExternalTest(int numberOfUsers, int numberOfGroups,
                                    long expTime, boolean dynamicMembership,
                                    @Nonnull List<String> autoMembership) {
@@ -173,6 +178,20 @@ abstract class AbstractExternalTest exte
                     whiteboard.register(ExternalIdentityProvider.class,
idp, Collections.emptyMap());
                     whiteboard.register(SyncHandler.class, syncHandler,
Collections.emptyMap());

+                    // assert proper init of the
'externalPrincipalConfiguration' if dynamic membership is enabled
+                    if (syncConfig.user().getDynamicMembership()) {
+                        OsgiContext context = new OsgiContext();
+
+                        // register the ExternalPrincipal configuration in
order to have it's
+                        // activate method invoked.
+
context.registerInjectActivateService(externalPrincipalConfiguration);
+
+                        // now register the sync-handler with the dynamic
membership config
+                        // in order to enable dynamic membership with the
external principal configuration
+                        Map props =
ImmutableMap.of(DefaultSyncConfigImpl.PARAM_USER_DYNAMIC_MEMBERSHIP,
syncConfig.user().getDynamicMembership());
+                        context.registerService(SyncHandler.class,
WhiteboardUtils.getService(whiteboard, SyncHandler.class), props);
+                    }
+
                     SecurityProvider sp = new
TestSecurityProvider(ConfigurationParameters.EMPTY);
                     return new Jcr(oak).with(sp);
                 }
@@ -190,7 +209,7 @@ abstract class AbstractExternalTest exte
                 throw new IllegalStateException();
             } else {
                 PrincipalConfiguration defConfig =
checkNotNull(((CompositePrincipalConfiguration)
principalConfiguration).getDefaultConfig());
-                bindPrincipalConfiguration((new
ExternalPrincipalConfiguration(this)));
+                bindPrincipalConfiguration(externalPrincipalConfiguration);
                 bindPrincipalConfiguration(defConfig);
             }
         }

Reply via email to