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 an...@apache.org on 2013/07/18 18:22:15 UTC
svn commit: r1504509 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
Author: angela
Date: Thu Jul 18 16:22:15 2013
New Revision: 1504509
URL: http://svn.apache.org/r1504509
Log:
OAK-920: revert unrelated changes
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java?rev=1504509&r1=1504508&r2=1504509&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java Thu Jul 18 16:22:15 2013
@@ -31,9 +31,6 @@ import javax.annotation.Nullable;
import com.google.common.base.Predicate;
import com.google.common.base.Strings;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Iterators;
import com.google.common.primitives.Longs;
@@ -67,9 +64,6 @@ class CompiledPermissionImpl implements
private final Set<String> readPaths;
- private final Cache<String, Collection<PermissionEntry>> userEntryCache;
- private final Cache<String, Collection<PermissionEntry>> groupEntryCache;
-
private PrivilegeBitsProvider bitsProvider;
CompiledPermissionImpl(@Nonnull Set<Principal> principals,
@@ -94,13 +88,6 @@ class CompiledPermissionImpl implements
}
}
}
-
- userEntryCache = CacheBuilder.newBuilder().maximumSize(10000).recordStats()
- .build();
- //.build(new EntriesLoader(userTrees));
- groupEntryCache = CacheBuilder.newBuilder().maximumSize(10000).recordStats()
- .build();
- //.build(new EntriesLoader(groupTrees));
}
//------------------------------------------------< CompiledPermissions >---
@@ -108,39 +95,19 @@ class CompiledPermissionImpl implements
public void refresh(@Nonnull ImmutableTree permissionsTree,
@Nonnull PrivilegeBitsProvider bitsProvider) {
this.bitsProvider = bitsProvider;
- boolean refreshU = false;
- boolean refreshG = false;
// test if a permission has been added for those principals that didn't have one before
for (Principal principal : principals) {
Map<String, Tree> target = getTargetMap(principal);
Tree principalRoot = getPrincipalRoot(permissionsTree, principal);
String pName = principal.getName();
- boolean isGroup = (principal instanceof Group);
if (principalRoot.exists()) {
if (!target.containsKey(pName) || !principalRoot.equals(target.get(pName))) {
target.put(pName, principalRoot);
- if (isGroup) {
- refreshG = true;
- } else {
- refreshU = true;
- }
}
} else {
- if (target.remove(pName) != null) {
- if (isGroup) {
- refreshG = true;
- } else {
- refreshU = true;
- }
- }
+ target.remove(pName);
}
}
- if (refreshG) {
- groupEntryCache.invalidateAll();
- }
- if (refreshU) {
- userEntryCache.invalidateAll();
- }
}
@Override
@@ -297,10 +264,10 @@ class CompiledPermissionImpl implements
private Iterator<PermissionEntry> getEntryIterator(@Nonnull EntryPredicate predicate) {
Iterator<PermissionEntry> userEntries = (userTrees.isEmpty()) ?
Iterators.<PermissionEntry>emptyIterator() :
- new EntryIterator(userEntryCache, userTrees, predicate);
+ new EntryIterator(userTrees, predicate);
Iterator<PermissionEntry> groupEntries = (groupTrees.isEmpty()) ?
Iterators.<PermissionEntry>emptyIterator():
- new EntryIterator(groupEntryCache, groupTrees, predicate);
+ new EntryIterator(groupTrees, predicate);
return Iterators.concat(userEntries, groupEntries);
}
@@ -360,7 +327,6 @@ class CompiledPermissionImpl implements
private class EntryIterator implements Iterator<PermissionEntry> {
private final Collection<Tree> principalTrees;
- private final Cache<String, Collection<PermissionEntry>> cache;
private final EntryPredicate predicate;
// the next oak path for which to retrieve permission entries
@@ -370,10 +336,8 @@ class CompiledPermissionImpl implements
// the next permission entry
private PermissionEntry next;
- private EntryIterator(@Nonnull Cache<String, Collection<PermissionEntry>> cache,
- @Nonnull Map<String, Tree> principalTrees,
+ private EntryIterator(@Nonnull Map<String, Tree> principalTrees,
@Nonnull EntryPredicate predicate) {
- this.cache = cache;
this.principalTrees = principalTrees.values();
this.predicate = predicate;
this.path = Strings.nullToEmpty(predicate.path);
@@ -418,49 +382,19 @@ class CompiledPermissionImpl implements
@Nonnull
private Iterator<PermissionEntry> getNextEntries() {
- Collection entries = cache.getIfPresent(path);
- if (entries == null) {
- ImmutableSortedSet.Builder<PermissionEntry> es = new ImmutableSortedSet.Builder(new EntryComparator());
- for (Tree principalRoot : principalTrees) {
- String name = PermissionUtil.getEntryName(path);
- Tree parent = principalRoot;
- while (parent.hasChild(name)) {
- parent = parent.getChild(name);
- PermissionEntry pe = new PermissionEntry(parent, restrictionProvider);
- es.add(pe);
-// if (predicate.apply(pe)) {
-// es.add(pe);
-// }
- }
- }
- entries = es.build();
- cache.put(path, entries);
- }
- return (entries == null) ? Iterators.<PermissionEntry>emptyIterator() : Iterators.filter(entries.iterator(), predicate);
- }
- }
-
- private final class EntriesLoader extends CacheLoader<String, Collection<PermissionEntry>> {
-
- private final Map<String, Tree> principalTrees;
-
- private EntriesLoader(Map<String, Tree> principalTrees) {
- this.principalTrees = principalTrees;
- }
-
- @Override
- public Collection<PermissionEntry> load(String path) throws Exception {
- ImmutableSortedSet.Builder<PermissionEntry> es = new ImmutableSortedSet.Builder(new EntryComparator());
- for (Tree principalRoot : principalTrees.values()) {
+ ImmutableSortedSet.Builder<PermissionEntry> entries = new ImmutableSortedSet.Builder(new EntryComparator());
+ for (Tree principalRoot : principalTrees) {
String name = PermissionUtil.getEntryName(path);
Tree parent = principalRoot;
while (parent.hasChild(name)) {
parent = parent.getChild(name);
PermissionEntry pe = new PermissionEntry(parent, restrictionProvider);
- es.add(pe);
+ if (predicate.apply(pe)) {
+ entries.add(pe);
+ }
}
}
- return es.build();
+ return entries.build().iterator();
}
}