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>
