Author: stillalex
Date: Thu Oct 11 09:17:51 2018
New Revision: 1843537

URL: http://svn.apache.org/viewvc?rev=1843537&view=rev
Log:
OAK-7820 Make internal group principal impl classes static


Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java?rev=1843537&r1=1843536&r2=1843537&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java
 Thu Oct 11 09:17:51 2018
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.security.user;
 
 import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.namepath.PathMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.principal.AdminPrincipal;
 
 /**
@@ -25,7 +25,7 @@ import org.apache.jackrabbit.oak.spi.sec
  */
 class AdminPrincipalImpl extends TreeBasedPrincipal implements AdminPrincipal {
 
-    AdminPrincipalImpl(String principalName, Tree tree, PathMapper pathMapper) 
{
+    AdminPrincipalImpl(String principalName, Tree tree, NamePathMapper 
pathMapper) {
         super(principalName, tree, pathMapper);
     }
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java?rev=1843537&r1=1843536&r2=1843537&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java
 Thu Oct 11 09:17:51 2018
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.security.user;
 
 import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.namepath.PathMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.principal.SystemUserPrincipal;
 import org.jetbrains.annotations.NotNull;
 
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull
  */
 final class SystemUserPrincipalImpl extends TreeBasedPrincipal implements 
SystemUserPrincipal {
 
-    SystemUserPrincipalImpl(@NotNull String principalName, @NotNull Tree tree, 
@NotNull PathMapper pathMapper) {
+    SystemUserPrincipalImpl(@NotNull String principalName, @NotNull Tree tree, 
@NotNull NamePathMapper pathMapper) {
         super(principalName, tree, pathMapper);
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java?rev=1843537&r1=1843536&r2=1843537&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java
 Thu Oct 11 09:17:51 2018
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.securi
 
 import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
 import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.namepath.PathMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 
 /**
@@ -27,13 +27,13 @@ import org.apache.jackrabbit.oak.spi.sec
 class TreeBasedPrincipal extends PrincipalImpl implements ItemBasedPrincipal {
 
     private final String path;
-    private final PathMapper pathMapper;
+    private final NamePathMapper pathMapper;
 
-    TreeBasedPrincipal(String principalName, Tree tree, PathMapper pathMapper) 
{
+    TreeBasedPrincipal(String principalName, Tree tree, NamePathMapper 
pathMapper) {
         this(principalName, tree.getPath(), pathMapper);
     }
 
-    TreeBasedPrincipal(String principalName, String oakPath, PathMapper 
pathMapper) {
+    TreeBasedPrincipal(String principalName, String oakPath, NamePathMapper 
pathMapper) {
         super(principalName);
         this.pathMapper = pathMapper;
         this.path = oakPath;
@@ -43,6 +43,10 @@ class TreeBasedPrincipal extends Princip
         return path;
     }
 
+    NamePathMapper getNamePathMapper() {
+        return pathMapper;
+    }
+
     //-------------------------------------------------< ItemBasedPrincipal 
>---
     @Override
     public String getPath() {

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java?rev=1843537&r1=1843536&r2=1843537&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java
 Thu Oct 11 09:17:51 2018
@@ -187,16 +187,15 @@ class UserPrincipalProvider implements P
 
     @Nullable
     private Principal createPrincipal(@Nullable Tree authorizableTree) {
-        Principal principal = null;
         if (authorizableTree != null) {
             AuthorizableType type = UserUtil.getType(authorizableTree);
             if (AuthorizableType.GROUP == type) {
-                principal = createGroupPrincipal(authorizableTree);
+                return createGroupPrincipal(authorizableTree);
             } else if (AuthorizableType.USER == type) {
-                principal = 
createUserPrincipal(UserUtil.getAuthorizableId(authorizableTree, type), 
authorizableTree);
+                return 
createUserPrincipal(UserUtil.getAuthorizableId(authorizableTree, type), 
authorizableTree);
             }
         }
-        return principal;
+        return null;
     }
 
     @Nullable
@@ -220,7 +219,7 @@ class UserPrincipalProvider implements P
         if (principalName == null) {
             return null;
         }
-        return new GroupPrincipalImpl(principalName, groupTree);
+        return new GroupPrincipalImpl(principalName, groupTree.getPath(), 
namePathMapper, root, config);
     }
 
     @Nullable
@@ -323,7 +322,7 @@ class UserPrincipalProvider implements P
             Set<Principal> groups = new HashSet<>();
             for (String s : Text.explode(str, ',')) {
                 final String name = Text.unescape(s);
-                groups.add(new CachedGroupPrincipal(name));
+                groups.add(new CachedGroupPrincipal(name, namePathMapper, 
root, config));
             }
             return groups;
         } else {
@@ -393,22 +392,23 @@ class UserPrincipalProvider implements P
     // Group Principal implementations that retrieve member information on 
demand
     
//--------------------------------------------------------------------------
 
-    private abstract class BaseGroupPrincipal extends AbstractGroupPrincipal {
+    private static abstract class BaseGroupPrincipal extends 
AbstractGroupPrincipal {
 
+        private final Root root;
+        private final UserConfiguration config;
         private UserManager userManager;
 
-        BaseGroupPrincipal(@NotNull String principalName, @NotNull Tree 
groupTree) {
-            super(principalName, groupTree, namePathMapper);
-        }
-
-        BaseGroupPrincipal(@NotNull String principalName, @NotNull String 
groupPath) {
+        BaseGroupPrincipal(@NotNull String principalName, @NotNull String 
groupPath,
+                @NotNull NamePathMapper namePathMapper, @NotNull Root root, 
@NotNull UserConfiguration config) {
             super(principalName, groupPath, namePathMapper);
+            this.root = root;
+            this.config = config;
         }
 
         @Override
         UserManager getUserManager() {
             if (userManager == null) {
-                userManager = config.getUserManager(root, namePathMapper);
+                userManager = config.getUserManager(root, getNamePathMapper());
             }
             return userManager;
         }
@@ -439,12 +439,13 @@ class UserPrincipalProvider implements P
      * Implementation of {@link AbstractGroupPrincipal} that reads the 
underlying
      * authorizable group lazily in case the group membership must be 
retrieved.
      */
-    private final class GroupPrincipalImpl extends BaseGroupPrincipal {
+    private static final class GroupPrincipalImpl extends BaseGroupPrincipal {
 
         private org.apache.jackrabbit.api.security.user.Group group;
 
-        GroupPrincipalImpl(@NotNull String principalName, @NotNull Tree 
groupTree) {
-            super(principalName, groupTree);
+        GroupPrincipalImpl(@NotNull String principalName, @NotNull String 
groupPath,
+                @NotNull NamePathMapper namePathMapper, @NotNull Root root, 
@NotNull UserConfiguration config) {
+            super(principalName, groupPath, namePathMapper, root, config);
         }
 
         @Override
@@ -460,18 +461,19 @@ class UserPrincipalProvider implements P
         }
     }
 
-    private final class CachedGroupPrincipal extends BaseGroupPrincipal {
+    private static final class CachedGroupPrincipal extends BaseGroupPrincipal 
{
 
         private org.apache.jackrabbit.api.security.user.Group group;
 
-        CachedGroupPrincipal(@NotNull String principalName) {
-            super(principalName, "");
+        CachedGroupPrincipal(@NotNull String principalName, @NotNull 
NamePathMapper namePathMapper,
+                @NotNull Root root, @NotNull UserConfiguration config) {
+            super(principalName, "", namePathMapper, root, config);
         }
 
         @Override
         String getOakPath() {
             String groupPath = getPath();
-            return (groupPath == null) ? null : 
namePathMapper.getOakPath(getPath());
+            return (groupPath == null) ? null : 
getNamePathMapper().getOakPath(getPath());
         }
 
         @Override

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java?rev=1843537&r1=1843536&r2=1843537&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
 Thu Oct 11 09:17:51 2018
@@ -158,7 +158,7 @@ public class AbstractGroupPrincipalTest
         private boolean isEveryone;
 
         AGP() throws Exception {
-            super(testGroup.getPrincipal().getName(), 
root.getTree(testGroup.getPath()), getNamePathMapper());
+            super(testGroup.getPrincipal().getName(), 
root.getTree(testGroup.getPath()), 
AbstractGroupPrincipalTest.this.getNamePathMapper());
             member = getTestUser();
         }
 


Reply via email to