This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-access.git


The following commit(s) were added to refs/heads/main by this push:
     new a060dad  Revert "Support a java-11 compile target (#123)" (#125)
a060dad is described below

commit a060dad5f8d2e89cfe6cfbc2d6e75473d29660ac
Author: Christopher Tubbs <[email protected]>
AuthorDate: Thu Apr 30 18:10:06 2026 -0400

    Revert "Support a java-11 compile target (#123)" (#125)
    
    This reverts commit 70d29df19bc1101635821bf514b49207f00651bd.
---
 README.md                                            |  5 -----
 .../apache/accumulo/access/antlr4/Antlr4Tests.java   | 12 ++++++------
 .../org/apache/accumulo/access/AccessEvaluator.java  |  5 ++++-
 .../org/apache/accumulo/access/AccessExpression.java |  9 ++++++---
 .../accumulo/access/ParsedAccessExpression.java      |  5 ++++-
 .../accumulo/access/impl/AccessEvaluatorImpl.java    |  2 +-
 .../org/apache/accumulo/access/impl/AccessImpl.java  |  2 +-
 .../apache/accumulo/access/impl/CharsWrapper.java    |  5 ++---
 .../accumulo/access/impl/AccessEvaluatorTest.java    | 12 ++++++------
 .../accumulo/access/examples/ParseExamples.java      | 20 +++++++-------------
 pom.xml                                              |  2 +-
 11 files changed, 38 insertions(+), 41 deletions(-)

diff --git a/README.md b/README.md
index b6d4136..1aa81db 100644
--- a/README.md
+++ b/README.md
@@ -47,11 +47,6 @@ are package private and are not part of the public API.
   * 
[ExpressionType](modules/core/src/main/java/org/apache/accumulo/access/ParsedAccessExpression.java).
   * 
[Authorizations](modules/core/src/main/java/org/apache/accumulo/access/Authorizations.java).
 
-`AccessEvaluator`, `AccessExpression`, and `ParsedAccessExpression` will be
-sealed interfaces or classes in future releases that support class sealing. So,
-users should not create their own implementations of these. Their
-implementations are expected to be provided by this library only.
-
 ## Getting Started
 
 Add the library to your CLASSPATH. For Maven, use:
diff --git 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/antlr4/Antlr4Tests.java
 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/antlr4/Antlr4Tests.java
index f3bd662..1eecfd1 100644
--- 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/antlr4/Antlr4Tests.java
+++ 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/antlr4/Antlr4Tests.java
@@ -152,20 +152,20 @@ class Antlr4Tests {
         assertNotEquals(0, test.getExpressions().length);
         for (String expression : test.getExpressions()) {
           switch (test.getExpectedResult()) {
-            case ACCESSIBLE:
+            case ACCESSIBLE -> {
               assertTrue(evaluator.canAccess(expression), expression);
               assertTrue(antlr.canAccess(expression), expression);
-              break;
-            case INACCESSIBLE:
+            }
+            case INACCESSIBLE -> {
               assertFalse(evaluator.canAccess(expression), expression);
               assertFalse(antlr.canAccess(expression), expression);
-              break;
-            case ERROR:
+            }
+            case ERROR -> {
               assertThrows(InvalidAccessExpressionException.class,
                   () -> evaluator.canAccess(expression), expression);
               assertThrows(InvalidAccessExpressionException.class,
                   () -> antlr.canAccess(expression), expression);
-              break;
+            }
           }
         }
       }
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/AccessEvaluator.java 
b/modules/core/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
index ab2fbd7..bc447bc 100644
--- a/modules/core/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
+++ b/modules/core/src/main/java/org/apache/accumulo/access/AccessEvaluator.java
@@ -18,6 +18,9 @@
  */
 package org.apache.accumulo.access;
 
+import org.apache.accumulo.access.impl.AccessEvaluatorImpl;
+import org.apache.accumulo.access.impl.MultiAccessEvaluatorImpl;
+
 /**
  * This class is used to decide if an entity with a given set of 
authorizations can access
  * subsequent access expressions.
@@ -50,7 +53,7 @@ package org.apache.accumulo.access;
  * @see <a href="https://github.com/apache/accumulo-access";>Accumulo Access 
Documentation</a>
  * @since 1.0.0
  */
-public interface AccessEvaluator {
+public sealed interface AccessEvaluator permits AccessEvaluatorImpl, 
MultiAccessEvaluatorImpl {
 
   /**
    * Evaluates an expression.
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/AccessExpression.java 
b/modules/core/src/main/java/org/apache/accumulo/access/AccessExpression.java
index 61f97f9..7c1d68e 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/AccessExpression.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/AccessExpression.java
@@ -21,12 +21,15 @@ package org.apache.accumulo.access;
 import java.io.Serializable;
 import java.util.Objects;
 
+import org.apache.accumulo.access.impl.AccessExpressionImpl;
+
 /**
  * An immutable wrapper for a validated access expression.
  *
  * @since 1.0.0
  */
-public abstract class AccessExpression implements Serializable {
+public sealed abstract class AccessExpression implements Serializable
+    permits AccessExpressionImpl, ParsedAccessExpression {
 
   private static final long serialVersionUID = 1L;
 
@@ -50,8 +53,8 @@ public abstract class AccessExpression implements 
Serializable {
 
   @Override
   public boolean equals(Object o) {
-    return this == o || (o instanceof AccessExpression
-        && Objects.equals(getExpression(), ((AccessExpression) 
o).getExpression()));
+    return this == o
+        || (o instanceof AccessExpression a && Objects.equals(getExpression(), 
a.getExpression()));
   }
 
   @Override
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/ParsedAccessExpression.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/ParsedAccessExpression.java
index c098e77..4e53a16 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/ParsedAccessExpression.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/ParsedAccessExpression.java
@@ -20,6 +20,8 @@ package org.apache.accumulo.access;
 
 import java.util.List;
 
+import org.apache.accumulo.access.impl.ParsedAccessExpressionImpl;
+
 /**
  * Instances of this class are immutable and wrap a verified access expression 
and a parse tree for
  * the access expression. To create an instance of this class call
@@ -28,7 +30,8 @@ import java.util.List;
  *
  * @since 1.0.0
  */
-public abstract class ParsedAccessExpression extends AccessExpression {
+public sealed abstract class ParsedAccessExpression extends AccessExpression
+    permits ParsedAccessExpressionImpl {
 
   private static final long serialVersionUID = 1L;
 
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessEvaluatorImpl.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessEvaluatorImpl.java
index f1c7477..a568b4b 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessEvaluatorImpl.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessEvaluatorImpl.java
@@ -52,7 +52,7 @@ public final class AccessEvaluatorImpl implements 
AccessEvaluator {
         .andThen(auth -> wrappedAuths.add(new 
CharsWrapper(auth.toCharArray()))));
 
     this.authorizedPredicate =
-        auth -> auth instanceof CharsWrapper ? 
wrappedAuths.contains((CharsWrapper) auth)
+        auth -> auth instanceof CharsWrapper wrapped ? 
wrappedAuths.contains(wrapped)
             : wrappedAuths.contains(new 
CharsWrapper(auth.toString().toCharArray()));
     this.authorizationValidator = authorizationValidator;
   }
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessImpl.java 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessImpl.java
index 355dacc..037dad5 100644
--- a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessImpl.java
+++ b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessImpl.java
@@ -40,7 +40,7 @@ public class AccessImpl implements Access {
   private final AuthorizationValidator authValidator;
 
   private void validateAuthArgument(CharSequence auth) {
-    if (auth.length() == 0) {
+    if (auth.isEmpty()) {
       throw InvalidAuthorizationException.emptyString();
     }
     if (!authValidator.test(auth, ANY)) {
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/CharsWrapper.java 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/CharsWrapper.java
index a65c21b..a58554b 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/CharsWrapper.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/CharsWrapper.java
@@ -69,9 +69,8 @@ final class CharsWrapper implements CharSequence {
 
   @Override
   public boolean equals(Object o) {
-    return this == o || (o instanceof CharsWrapper && length() == 
((CharsWrapper) o).length()
-        && Arrays.equals(wrapped, offset, offset + len, ((CharsWrapper) 
o).wrapped,
-            ((CharsWrapper) o).offset, ((CharsWrapper) o).offset + 
((CharsWrapper) o).len));
+    return this == o || (o instanceof CharsWrapper obs && length() == 
obs.length() && Arrays
+        .equals(wrapped, offset, offset + len, obs.wrapped, obs.offset, 
obs.offset + obs.len));
   }
 
   @Override
diff --git 
a/modules/core/src/test/java/org/apache/accumulo/access/impl/AccessEvaluatorTest.java
 
b/modules/core/src/test/java/org/apache/accumulo/access/impl/AccessEvaluatorTest.java
index 6910ac2..c170c95 100644
--- 
a/modules/core/src/test/java/org/apache/accumulo/access/impl/AccessEvaluatorTest.java
+++ 
b/modules/core/src/test/java/org/apache/accumulo/access/impl/AccessEvaluatorTest.java
@@ -93,7 +93,7 @@ class AccessEvaluatorTest {
         }
 
         switch (tests.getExpectedResult()) {
-          case ACCESSIBLE:
+          case ACCESSIBLE -> {
             assertTrue(evaluator.canAccess(expression), expression);
             
assertTrue(evaluator.canAccess(accumuloAccess.newExpression(expression)), 
expression);
             
assertTrue(evaluator.canAccess(accumuloAccess.newParsedExpression(expression)),
@@ -101,8 +101,8 @@ class AccessEvaluatorTest {
             assertTrue(
                 
evaluator.canAccess(accumuloAccess.newParsedExpression(expression).getExpression()),
                 expression);
-            break;
-          case INACCESSIBLE:
+          }
+          case INACCESSIBLE -> {
             assertFalse(evaluator.canAccess(expression), expression);
             
assertFalse(evaluator.canAccess(accumuloAccess.newExpression(expression)), 
expression);
             
assertFalse(evaluator.canAccess(accumuloAccess.newParsedExpression(expression)),
@@ -110,8 +110,8 @@ class AccessEvaluatorTest {
             assertFalse(
                 
evaluator.canAccess(accumuloAccess.newParsedExpression(expression).getExpression()),
                 expression);
-            break;
-          case ERROR:
+          }
+          case ERROR -> {
             assertThrows(InvalidAccessExpressionException.class,
                 () -> evaluator.canAccess(expression), expression);
             assertThrows(InvalidAccessExpressionException.class,
@@ -120,7 +120,7 @@ class AccessEvaluatorTest {
                 () -> accumuloAccess.newExpression(expression), expression);
             assertThrows(InvalidAccessExpressionException.class,
                 () -> accumuloAccess.newParsedExpression(expression), 
expression);
-            break;
+          }
         }
       }
     }
diff --git 
a/modules/examples/src/main/java/org/apache/accumulo/access/examples/ParseExamples.java
 
b/modules/examples/src/main/java/org/apache/accumulo/access/examples/ParseExamples.java
index d36402d..8dd0b3e 100644
--- 
a/modules/examples/src/main/java/org/apache/accumulo/access/examples/ParseExamples.java
+++ 
b/modules/examples/src/main/java/org/apache/accumulo/access/examples/ParseExamples.java
@@ -85,17 +85,12 @@ public class ParseExamples {
 
     // determines the sort order of different kinds of subexpressions.
     private static int typeOrder(ExpressionType type) {
-      switch (type) {
-        case AUTHORIZATION:
-          return 1;
-        case OR:
-          return 2;
-        case AND:
-          return 3;
-        case EMPTY:
-        default:
-          throw new IllegalArgumentException("Unexpected type " + type);
-      }
+      return switch (type) {
+        case AUTHORIZATION -> 1;
+        case OR -> 2;
+        case AND -> 3;
+        case EMPTY -> throw new IllegalArgumentException("Unexpected type " + 
type);
+      };
     }
 
     @Override
@@ -116,8 +111,7 @@ public class ParseExamples {
 
     @Override
     public boolean equals(Object o) {
-      return this == o
-          || (o instanceof NormalizedExpression && 
compareTo((NormalizedExpression) o) == 0);
+      return this == o || (o instanceof NormalizedExpression n && compareTo(n) 
== 0);
     }
 
     @Override
diff --git a/pom.xml b/pom.xml
index 546fbc3..b61aa15 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,7 +116,7 @@ specific language governing permissions and limitations
 under the License.
 ]]></accumulo.build.license.header>
     <failsafe.failIfNoSpecifiedTests>false</failsafe.failIfNoSpecifiedTests>
-    <javaVersion>11</javaVersion>
+    <javaVersion>17</javaVersion>
     <!-- prevent introduction of new compiler warnings -->
     <maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
     <maven.javadoc.failOnWarnings>true</maven.javadoc.failOnWarnings>

Reply via email to