You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2012/01/06 13:34:23 UTC
svn commit: r1228149 - in /jackrabbit/trunk/jackrabbit-core/src:
main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java
test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java
Author: angela
Date: Fri Jan 6 12:34:23 2012
New Revision: 1228149
URL: http://svn.apache.org/viewvc?rev=1228149&view=rev
Log:
JCR-3202 AuthorizableImpl#memberOf and #declaredMemberOf should return RangeIterator
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java?rev=1228149&r1=1228148&r2=1228149&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java Fri Jan 6 12:34:23 2012
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.User;
+import org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter;
import org.apache.jackrabbit.core.NodeImpl;
import org.apache.jackrabbit.core.SessionImpl;
import org.apache.jackrabbit.core.id.NodeId;
@@ -370,7 +371,7 @@ abstract class AuthorizableImpl implemen
// group node doesn't exist or cannot be read -> ignore.
}
}
- return groups.iterator();
+ return new RangeIteratorAdapter(groups.iterator(), groups.size());
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java?rev=1228149&r1=1228148&r2=1228149&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/security/user/AuthorizableImplTest.java Fri Jan 6 12:34:23 2012
@@ -30,6 +30,7 @@ import org.apache.jackrabbit.value.Strin
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
+import javax.jcr.RangeIterator;
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.Value;
@@ -170,6 +171,42 @@ public class AuthorizableImplTest extend
}
}
+ public void testMemberOfRangeIterator() throws NotExecutableException, RepositoryException {
+ Authorizable auth = null;
+ Group group = null;
+
+ try {
+ auth = userMgr.createUser(getTestPrincipal().getName(), "pw");
+ group = userMgr.createGroup(getTestPrincipal());
+ save(superuser);
+
+ Iterator<Group>groups = auth.declaredMemberOf();
+ assertTrue(groups instanceof RangeIterator);
+ assertEquals(0, ((RangeIterator) groups).getSize());
+ groups = auth.memberOf();
+ assertTrue(groups instanceof RangeIterator);
+ assertEquals(0, ((RangeIterator) groups).getSize());
+
+ group.addMember(auth);
+ groups = auth.declaredMemberOf();
+ assertTrue(groups instanceof RangeIterator);
+ assertEquals(1, ((RangeIterator) groups).getSize());
+
+ groups = auth.memberOf();
+ assertTrue(groups instanceof RangeIterator);
+ assertEquals(1, ((RangeIterator) groups).getSize());
+
+ } finally {
+ if (auth != null) {
+ auth.remove();
+ }
+ if (group != null) {
+ group.remove();
+ }
+ save(superuser);
+ }
+ }
+
public void testSetSpecialPropertiesDirectly() throws NotExecutableException, RepositoryException {
AuthorizableImpl user = (AuthorizableImpl) getTestUser(superuser);
NodeImpl n = user.getNode();