You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/03/06 18:04:13 UTC
[jspwiki] 11/35: move PrincipalComparator to the util module,
with all the other non-jspwiki specific comparators
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 7fc2476c1a0e8557631b7d102571e4235cbd1b41
Author: juanpablo <ju...@apache.org>
AuthorDate: Wed Mar 4 12:54:27 2020 +0100
move PrincipalComparator to the util module, with all the other non-jspwiki specific comparators
---
.../java/org/apache/wiki/auth/SessionMonitor.java | 1 +
.../apache/wiki/auth/acl/DefaultAclManager.java | 2 +-
.../util/comparators}/PrincipalComparator.java | 21 ++++++++---------
.../util/comparators/PrincipalComparatorTest.java | 26 ++++++++++++++++++++++
4 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
index be81313..52f8e54 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
@@ -24,6 +24,7 @@ import org.apache.wiki.api.core.Engine;
import org.apache.wiki.event.WikiEventListener;
import org.apache.wiki.event.WikiEventManager;
import org.apache.wiki.event.WikiSecurityEvent;
+import org.apache.wiki.util.comparators.PrincipalComparator;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
index f847444..6833631 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
@@ -25,13 +25,13 @@ import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.ProviderException;
import org.apache.wiki.attachment.Attachment;
import org.apache.wiki.auth.AuthorizationManager;
-import org.apache.wiki.auth.PrincipalComparator;
import org.apache.wiki.auth.WikiSecurityException;
import org.apache.wiki.auth.permissions.PagePermission;
import org.apache.wiki.auth.permissions.PermissionFactory;
import org.apache.wiki.pages.PageLock;
import org.apache.wiki.pages.PageManager;
import org.apache.wiki.render.RenderingManager;
+import org.apache.wiki.util.comparators.PrincipalComparator;
import java.security.Permission;
import java.security.Principal;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/PrincipalComparator.java b/jspwiki-util/src/main/java/org/apache/wiki/util/comparators/PrincipalComparator.java
similarity index 77%
rename from jspwiki-main/src/main/java/org/apache/wiki/auth/PrincipalComparator.java
rename to jspwiki-util/src/main/java/org/apache/wiki/util/comparators/PrincipalComparator.java
index 8fb4843..ba97d92 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/PrincipalComparator.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/comparators/PrincipalComparator.java
@@ -1,4 +1,4 @@
-/*
+/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
@@ -16,33 +16,34 @@
specific language governing permissions and limitations
under the License.
*/
-package org.apache.wiki.auth;
+package org.apache.wiki.util.comparators;
import java.io.Serializable;
import java.security.Principal;
import java.text.Collator;
import java.util.Comparator;
+
/**
- * Comparator class for sorting objects of type Principal.
- * Used for sorting arrays or collections of Principals.
+ * Comparator class for sorting objects of type Principal. Used for sorting arrays or collections of Principals.
+ *
* @since 2.3
*/
-public class PrincipalComparator
- implements Comparator<Principal>, Serializable
-{
+public class PrincipalComparator implements Comparator< Principal >, Serializable {
+
private static final long serialVersionUID = 1L;
/**
* Compares two Principal objects.
+ *
* @param o1 the first Principal
* @param o2 the second Principal
* @return the result of the comparison
* @see java.util.Comparator#compare(Object, Object)
*/
- public int compare( Principal o1, Principal o2 )
- {
- Collator collator = Collator.getInstance();
+ @Override
+ public int compare( final Principal o1, final Principal o2 ) {
+ final Collator collator = Collator.getInstance();
return collator.compare( o1.getName(), o2.getName() );
}
diff --git a/jspwiki-util/src/test/java/org/apache/wiki/util/comparators/PrincipalComparatorTest.java b/jspwiki-util/src/test/java/org/apache/wiki/util/comparators/PrincipalComparatorTest.java
new file mode 100644
index 0000000..dfbf187
--- /dev/null
+++ b/jspwiki-util/src/test/java/org/apache/wiki/util/comparators/PrincipalComparatorTest.java
@@ -0,0 +1,26 @@
+package org.apache.wiki.util.comparators;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.security.Principal;
+
+
+public class PrincipalComparatorTest {
+
+ @Test
+ public void testComparatorOrder() {
+ final Principal p1 = () -> "a";
+ final Principal p2 = () -> "b";
+ final PrincipalComparator pc = new PrincipalComparator();
+
+ Assertions.assertEquals( -1, pc.compare( p1, p2 ) );
+ Assertions.assertEquals( 0, pc.compare( p1, p1 ) );
+ Assertions.assertEquals( 1, pc.compare( p2, p1 ) );
+
+ Assertions.assertThrows( NullPointerException.class, () -> pc.compare( null, p1 ) );
+ Assertions.assertThrows( NullPointerException.class, () -> pc.compare( p1, null ) );
+ Assertions.assertThrows( NullPointerException.class, () -> pc.compare( null, null ) );
+ }
+
+}