You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/08/01 18:01:45 UTC

svn commit: r1368083 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java

Author: jukka
Date: Wed Aug  1 16:01:44 2012
New Revision: 1368083

URL: http://svn.apache.org/viewvc?rev=1368083&view=rev
Log:
OAK-50: Implement User Management

Allow Session.getPrincipalManager() and .getUserManager() to work in relaxed TODO mode

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java?rev=1368083&r1=1368082&r2=1368083&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/TODO.java Wed Aug  1 16:01:44 2012
@@ -34,9 +34,14 @@ public class TODO {
 
     private static final String mode = System.getProperty("todo", "strict");
 
-    private static final boolean strict = "strict".equals(mode);
+    private static boolean strict = "strict".equals(mode);
 
-    private static final boolean log = "log".equals(mode);
+    private static boolean log = "log".equals(mode);
+
+    public static void relax() {
+        strict = false;
+        log = true;
+    }
 
     public static TODO unimplemented() {
         return new TODO("unimplemented");
@@ -76,6 +81,16 @@ public class TODO {
         }
     }
 
+    public <T> T returnValue(final T value)
+            throws UnsupportedRepositoryOperationException {
+        return call(new Callable<T>() {
+            @Override
+            public T call() {
+                return value;
+            }
+        });
+    }
+
     public <T> T call(Callable<T> callable)
             throws UnsupportedRepositoryOperationException {
         if (strict) {

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1368083&r1=1368082&r2=1368083&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Wed Aug  1 16:01:44 2012
@@ -41,8 +41,13 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.commons.AbstractSession;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.jcr.security.principal.PrincipalManagerImpl;
+import org.apache.jackrabbit.oak.jcr.security.user.UserManagerConfig;
+import org.apache.jackrabbit.oak.jcr.security.user.UserManagerImpl;
 import org.apache.jackrabbit.oak.jcr.xml.XmlImportHandler;
+import org.apache.jackrabbit.oak.security.principal.KernelPrincipalProvider;
 import org.apache.jackrabbit.oak.spi.security.authentication.ImpersonationCredentials;
+import org.apache.jackrabbit.oak.util.TODO;
 import org.apache.jackrabbit.util.XMLChar;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -411,15 +416,15 @@ public class SessionImpl extends Abstrac
     @Override
     @Nonnull
     public PrincipalManager getPrincipalManager() throws RepositoryException {
-        // TODO
-        throw new UnsupportedOperationException("Implementation missing");
+        return TODO.unimplemented().returnValue(new PrincipalManagerImpl(
+                new KernelPrincipalProvider()));
     }
 
     @Override
     @Nonnull
     public UserManager getUserManager() throws RepositoryException {
-        // TODO
-        throw new UnsupportedOperationException("Implementation missing");
+        return TODO.unimplemented().returnValue(new UserManagerImpl(
+                dlg, new UserManagerConfig("admin", null, null)));
     }
 
     //------------------------------------------------------------< private >---