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

ddanielr pushed a commit to branch feature/support-java-11
in repository https://gitbox.apache.org/repos/asf/accumulo-access.git

commit d580d50c6b40c631163eb4a0d2f33de074577bf4
Author: Daniel Roberts ddanielr <[email protected]>
AuthorDate: Mon Mar 16 17:14:06 2026 +0000

    Support compiling against java 11
---
 .../accumulo/access/grammar/antlr/Antlr4Tests.java   | 15 ++++++++-------
 .../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 +-
 .../accumulo/access/impl/AccessExpressionImpl.java   |  4 ++--
 .../org/apache/accumulo/access/impl/AccessImpl.java  |  2 +-
 .../accumulo/access/impl/AuthorizationsImpl.java     |  4 ++--
 .../apache/accumulo/access/impl/CharsWrapper.java    |  5 +++--
 .../accumulo/access/tests/AccessEvaluatorTest.java   | 12 ++++++------
 .../accumulo/access/examples/ParseExamples.java      | 20 +++++++++++++-------
 pom.xml                                              |  2 +-
 12 files changed, 42 insertions(+), 43 deletions(-)

diff --git 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/Antlr4Tests.java
 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/Antlr4Tests.java
index 7847491..919d41a 100644
--- 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/Antlr4Tests.java
+++ 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/Antlr4Tests.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.access.grammar.antlr;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -150,23 +151,23 @@ public class Antlr4Tests {
 
       assertFalse(testSet.getTests().isEmpty());
       for (TestExpressions test : testSet.getTests()) {
-        assertFalse(test.getExpressions().length == 0);
+        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);
-            }
-            case INACCESSIBLE -> {
+              break;
+            case INACCESSIBLE:
               assertFalse(evaluator.canAccess(expression), expression);
               assertFalse(antlr.canAccess(expression), expression);
-            }
-            case ERROR -> {
+              break;
+            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 bc447bc..ab2fbd7 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,9 +18,6 @@
  */
 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.
@@ -53,7 +50,7 @@ import 
org.apache.accumulo.access.impl.MultiAccessEvaluatorImpl;
  * @see <a href="https://github.com/apache/accumulo-access";>Accumulo Access 
Documentation</a>
  * @since 1.0.0
  */
-public sealed interface AccessEvaluator permits AccessEvaluatorImpl, 
MultiAccessEvaluatorImpl {
+public interface AccessEvaluator {
 
   /**
    * 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 7c1d68e..61f97f9 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,15 +21,12 @@ 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 sealed abstract class AccessExpression implements Serializable
-    permits AccessExpressionImpl, ParsedAccessExpression {
+public abstract class AccessExpression implements Serializable {
 
   private static final long serialVersionUID = 1L;
 
@@ -53,8 +50,8 @@ public sealed abstract class AccessExpression implements 
Serializable
 
   @Override
   public boolean equals(Object o) {
-    return this == o
-        || (o instanceof AccessExpression a && Objects.equals(getExpression(), 
a.getExpression()));
+    return this == o || (o instanceof AccessExpression
+        && Objects.equals(getExpression(), ((AccessExpression) 
o).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 4e53a16..c098e77 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,8 +20,6 @@ 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
@@ -30,8 +28,7 @@ import 
org.apache.accumulo.access.impl.ParsedAccessExpressionImpl;
  *
  * @since 1.0.0
  */
-public sealed abstract class ParsedAccessExpression extends AccessExpression
-    permits ParsedAccessExpressionImpl {
+public abstract class ParsedAccessExpression extends AccessExpression {
 
   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 e4c5374..160cd35 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
@@ -63,7 +63,7 @@ public final class AccessEvaluatorImpl implements 
AccessEvaluator {
     }
 
     this.authorizedPredicate =
-        auth -> auth instanceof CharsWrapper wrapped ? 
wrappedAuths.contains(wrapped)
+        auth -> auth instanceof CharsWrapper ? 
wrappedAuths.contains((CharsWrapper) auth)
             : wrappedAuths.contains(new 
CharsWrapper(auth.toString().toCharArray()));
     this.authorizationValidator = authorizationValidator;
   }
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessExpressionImpl.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessExpressionImpl.java
index 75de7ee..23c8e08 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessExpressionImpl.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AccessExpressionImpl.java
@@ -56,7 +56,7 @@ public final class AccessExpressionImpl extends 
AccessExpression {
   }
 
   public static CharSequence quote(CharSequence term) {
-    if (term.isEmpty()) {
+    if (term.length() == 0) {
       throw new IllegalArgumentException("Empty strings are not legal 
authorizations.");
     }
 
@@ -89,7 +89,7 @@ public final class AccessExpressionImpl extends 
AccessExpression {
         term = len == 2 ? "" : 
AccessEvaluatorImpl.unescape(term.subSequence(1, len - 1));
       }
     }
-    if (term.isEmpty()) {
+    if (term.length() == 0) {
       throw new IllegalArgumentException("Empty strings are not legal 
authorizations.");
     }
     return term;
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 ed00893..b18b6bc 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
@@ -41,7 +41,7 @@ public class AccessImpl implements Access {
 
   private void validateAuthorization(CharSequence auth,
       AuthorizationValidator.AuthorizationCharacters quoting) {
-    if (auth.isEmpty()) {
+    if (auth.length() == 0) {
       throw new IllegalArgumentException("Empty string is not a valid 
authorization");
     }
     if (!authValidator.test(auth, quoting)) {
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AuthorizationsImpl.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AuthorizationsImpl.java
index b8c5295..e9b26c5 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AuthorizationsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/AuthorizationsImpl.java
@@ -35,8 +35,8 @@ public class AuthorizationsImpl implements Authorizations {
 
   @Override
   public boolean equals(Object o) {
-    return this == o
-        || (o instanceof AuthorizationsImpl oa && 
authorizations.equals(oa.authorizations));
+    return this == o || (o instanceof AuthorizationsImpl
+        && authorizations.equals(((AuthorizationsImpl) o).authorizations));
   }
 
   @Override
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 17c47c6..b1419c7 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,8 +69,9 @@ final class CharsWrapper implements CharSequence {
 
   @Override
   public boolean equals(Object o) {
-    return this == o || (o instanceof CharsWrapper obs && length() == 
obs.length() && Arrays
-        .equals(wrapped, offset, offset + len, obs.wrapped, obs.offset, 
obs.offset + obs.len));
+    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));
   }
 
   @Override
diff --git 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessEvaluatorTest.java
 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessEvaluatorTest.java
index a3b0e3b..04b2fc0 100644
--- 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessEvaluatorTest.java
+++ 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessEvaluatorTest.java
@@ -130,7 +130,7 @@ public class AccessEvaluatorTest {
         }
 
         switch (tests.expectedResult) {
-          case ACCESSIBLE -> {
+          case ACCESSIBLE:
             assertTrue(evaluator.canAccess(expression), expression);
             
assertTrue(evaluator.canAccess(accumuloAccess.newExpression(expression)), 
expression);
             
assertTrue(evaluator.canAccess(accumuloAccess.newParsedExpression(expression)),
@@ -138,8 +138,8 @@ public class AccessEvaluatorTest {
             assertTrue(
                 
evaluator.canAccess(accumuloAccess.newParsedExpression(expression).getExpression()),
                 expression);
-          }
-          case INACCESSIBLE -> {
+            break;
+          case INACCESSIBLE:
             assertFalse(evaluator.canAccess(expression), expression);
             
assertFalse(evaluator.canAccess(accumuloAccess.newExpression(expression)), 
expression);
             
assertFalse(evaluator.canAccess(accumuloAccess.newParsedExpression(expression)),
@@ -147,8 +147,8 @@ public class AccessEvaluatorTest {
             assertFalse(
                 
evaluator.canAccess(accumuloAccess.newParsedExpression(expression).getExpression()),
                 expression);
-          }
-          case ERROR -> {
+            break;
+          case ERROR:
             assertThrows(InvalidAccessExpressionException.class,
                 () -> evaluator.canAccess(expression), expression);
             assertThrows(InvalidAccessExpressionException.class,
@@ -157,7 +157,7 @@ public 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 8dd0b3e..d36402d 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,12 +85,17 @@ public class ParseExamples {
 
     // determines the sort order of different kinds of subexpressions.
     private static int typeOrder(ExpressionType type) {
-      return switch (type) {
-        case AUTHORIZATION -> 1;
-        case OR -> 2;
-        case AND -> 3;
-        case EMPTY -> throw new IllegalArgumentException("Unexpected type " + 
type);
-      };
+      switch (type) {
+        case AUTHORIZATION:
+          return 1;
+        case OR:
+          return 2;
+        case AND:
+          return 3;
+        case EMPTY:
+        default:
+          throw new IllegalArgumentException("Unexpected type " + type);
+      }
     }
 
     @Override
@@ -111,7 +116,8 @@ public class ParseExamples {
 
     @Override
     public boolean equals(Object o) {
-      return this == o || (o instanceof NormalizedExpression n && compareTo(n) 
== 0);
+      return this == o
+          || (o instanceof NormalizedExpression && 
compareTo((NormalizedExpression) o) == 0);
     }
 
     @Override
diff --git a/pom.xml b/pom.xml
index 9fbb927..0589315 100644
--- a/pom.xml
+++ b/pom.xml
@@ -115,7 +115,7 @@ specific language governing permissions and limitations
 under the License.
 ]]></accumulo.build.license.header>
     <failsafe.failIfNoSpecifiedTests>false</failsafe.failIfNoSpecifiedTests>
-    <javaVersion>17</javaVersion>
+    <javaVersion>11</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