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 9365716  Remove Authorizations class (#115)
9365716 is described below

commit 936571695b93c7e7488a5369ce90ad2cdc385835
Author: Christopher Tubbs <[email protected]>
AuthorDate: Mon Mar 16 18:14:25 2026 -0400

    Remove Authorizations class (#115)
    
    Remove unneeded Authorizations class in favor of using a `Set<String>`
    directly, avoiding redundant set copies and validation.
---
 .../antlr4/AccessExpressionAntlrEvaluator.java     |  8 +--
 .../antlr/AccessExpressionAntlrBenchmark.java      |  5 +-
 .../accumulo/access/grammar/antlr/Antlr4Tests.java |  9 ++-
 .../java/org/apache/accumulo/access/Access.java    | 14 +----
 .../org/apache/accumulo/access/Authorizations.java | 33 -----------
 .../access/InvalidAuthorizationException.java      |  2 +-
 .../accumulo/access/impl/AccessEvaluatorImpl.java  | 15 ++---
 .../apache/accumulo/access/impl/AccessImpl.java    | 31 ++++------
 .../accumulo/access/impl/AuthorizationsImpl.java   | 66 ----------------------
 .../access/impl/MultiAccessEvaluatorImpl.java      | 12 +---
 .../accumulo/access/tests/AccessEvaluatorTest.java | 15 +++--
 .../access/tests/AccessExpressionBenchmark.java    |  7 +--
 .../accumulo/access/tests/AuthorizationTest.java   | 43 +++-----------
 .../accumulo/access/examples/AccessExample.java    |  3 +-
 14 files changed, 49 insertions(+), 214 deletions(-)

diff --git 
a/modules/antlr4-example/src/main/java/org/apache/accumulo/access/antlr4/AccessExpressionAntlrEvaluator.java
 
b/modules/antlr4-example/src/main/java/org/apache/accumulo/access/antlr4/AccessExpressionAntlrEvaluator.java
index 605869d..ecf101d 100644
--- 
a/modules/antlr4-example/src/main/java/org/apache/accumulo/access/antlr4/AccessExpressionAntlrEvaluator.java
+++ 
b/modules/antlr4-example/src/main/java/org/apache/accumulo/access/antlr4/AccessExpressionAntlrEvaluator.java
@@ -26,7 +26,6 @@ import java.util.Set;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.antlr.v4.runtime.tree.TerminalNode;
 import org.apache.accumulo.access.Access;
-import org.apache.accumulo.access.Authorizations;
 import 
org.apache.accumulo.access.grammars.AccessExpressionParser.Access_expressionContext;
 import 
org.apache.accumulo.access.grammars.AccessExpressionParser.Access_tokenContext;
 import 
org.apache.accumulo.access.grammars.AccessExpressionParser.And_operatorContext;
@@ -50,15 +49,14 @@ public class AccessExpressionAntlrEvaluator {
 
   private final List<Entity> entities;
 
-  public AccessExpressionAntlrEvaluator(List<Authorizations> authSets) {
+  public AccessExpressionAntlrEvaluator(List<Set<String>> authSets) {
     entities = new ArrayList<>(authSets.size());
 
-    for (Authorizations a : authSets) {
-      Set<String> entityAuths = a.asSet();
+    for (Set<String> entityAuths : authSets) {
       Entity e = new Entity();
       entities.add(e);
       e.authorizations = new HashSet<>(entityAuths.size() * 2);
-      a.asSet().stream().forEach(auth -> {
+      entityAuths.stream().forEach(auth -> {
         e.authorizations.add(auth);
         String quoted = ACCESS.quote(auth);
         if (!quoted.startsWith("\"")) {
diff --git 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/AccessExpressionAntlrBenchmark.java
 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/AccessExpressionAntlrBenchmark.java
index e4d1e66..ed48963 100644
--- 
a/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/AccessExpressionAntlrBenchmark.java
+++ 
b/modules/antlr4-example/src/test/java/org/apache/accumulo/access/grammar/antlr/AccessExpressionAntlrBenchmark.java
@@ -19,7 +19,6 @@
 package org.apache.accumulo.access.grammar.antlr;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.apache.accumulo.access.grammar.antlr.Antlr4Tests.ACCESS;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
@@ -90,8 +89,8 @@ public class AccessExpressionAntlrBenchmark {
         et.parsedExpressions = new ArrayList<>();
         et.expressions = new ArrayList<>();
 
-        et.evaluator = new 
AccessExpressionAntlrEvaluator(Stream.of(testDataSet.getAuths())
-            .map(a -> 
ACCESS.newAuthorizations(Set.of(a))).collect(Collectors.toList()));
+        et.evaluator = new AccessExpressionAntlrEvaluator(
+            Stream.of(testDataSet.getAuths()).map(a -> 
Set.of(a)).collect(Collectors.toList()));
 
         for (var tests : testDataSet.getTests()) {
           if (tests.getExpectedResult() != 
TestDataLoader.ExpectedResult.ERROR) {
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..0d20ac0 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
@@ -40,7 +40,6 @@ import org.antlr.v4.runtime.RecognitionException;
 import org.antlr.v4.runtime.Recognizer;
 import org.apache.accumulo.access.Access;
 import org.apache.accumulo.access.AccessEvaluator;
-import org.apache.accumulo.access.Authorizations;
 import org.apache.accumulo.access.InvalidAccessExpressionException;
 import org.apache.accumulo.access.antlr.TestDataLoader;
 import org.apache.accumulo.access.antlr.TestDataLoader.ExpectedResult;
@@ -123,7 +122,7 @@ public class Antlr4Tests {
   @Test
   public void testSimpleEvaluation() throws Exception {
     String accessExpression = "(one&two)|(foo&bar)";
-    Authorizations auths = ACCESS.newAuthorizations(Set.of("four", "three", 
"one", "two"));
+    var auths = Set.of("four", "three", "one", "two");
     AccessExpressionAntlrEvaluator eval = new 
AccessExpressionAntlrEvaluator(List.of(auths));
     assertTrue(eval.canAccess(accessExpression));
   }
@@ -131,7 +130,7 @@ public class Antlr4Tests {
   @Test
   public void testSimpleEvaluationFailure() throws Exception {
     String accessExpression = "(A&B&C)";
-    Authorizations auths = ACCESS.newAuthorizations(Set.of("A", "C"));
+    var auths = Set.of("A", "C");
     AccessExpressionAntlrEvaluator eval = new 
AccessExpressionAntlrEvaluator(List.of(auths));
     assertFalse(eval.canAccess(accessExpression));
   }
@@ -143,8 +142,8 @@ public class Antlr4Tests {
     List<TestDataSet> testData = TestDataLoader.readTestData();
     for (TestDataSet testSet : testData) {
 
-      List<Authorizations> authSets = Stream.of(testSet.getAuths())
-          .map(a -> 
ACCESS.newAuthorizations(Set.of(a))).collect(Collectors.toList());
+      List<Set<String>> authSets =
+          Stream.of(testSet.getAuths()).map(a -> 
Set.of(a)).collect(Collectors.toList());
       AccessEvaluator evaluator = ACCESS.newEvaluator(authSets);
       AccessExpressionAntlrEvaluator antlr = new 
AccessExpressionAntlrEvaluator(authSets);
 
diff --git a/modules/core/src/main/java/org/apache/accumulo/access/Access.java 
b/modules/core/src/main/java/org/apache/accumulo/access/Access.java
index 59a21f4..62d2a8a 100644
--- a/modules/core/src/main/java/org/apache/accumulo/access/Access.java
+++ b/modules/core/src/main/java/org/apache/accumulo/access/Access.java
@@ -101,16 +101,6 @@ public interface Access {
   ParsedAccessExpression newParsedExpression(String expression)
       throws InvalidAccessExpressionException, InvalidAuthorizationException;
 
-  /**
-   * Creates an Authorizations object from the set of input authorization 
strings.
-   *
-   * @param authorizations set of authorization strings
-   * @throws InvalidAuthorizationException when the expression contains an 
authorization that is not
-   *         valid
-   * @return Authorizations object
-   */
-  Authorizations newAuthorizations(Set<String> authorizations) throws 
InvalidAuthorizationException;
-
   /**
    * Validates an access expression and finds all authorizations in it passing 
them to the
    * authorizationConsumer. For example, for the expression {@code 
(A&B)|(A&C)|(A&D)}, this method
@@ -156,7 +146,7 @@ public interface Access {
    * @param authorizations auths to use in the AccessEvaluator
    * @return AccessEvaluator object
    */
-  AccessEvaluator newEvaluator(Authorizations authorizations);
+  AccessEvaluator newEvaluator(Set<String> authorizations);
 
   /**
    * Creates an AccessEvaluator from an Authorizer
@@ -215,5 +205,5 @@ public interface Access {
    *
    * </table>
    */
-  AccessEvaluator newEvaluator(Collection<Authorizations> authorizationSets);
+  AccessEvaluator newEvaluator(Collection<Set<String>> authorizationSets);
 }
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/Authorizations.java 
b/modules/core/src/main/java/org/apache/accumulo/access/Authorizations.java
deleted file mode 100644
index eb5b783..0000000
--- a/modules/core/src/main/java/org/apache/accumulo/access/Authorizations.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.accumulo.access;
-
-import java.util.Set;
-
-/**
- * An immutable collection of authorization strings.
- *
- * <p>
- * Instances of this class are thread-safe.
- *
- * @since 1.0.0
- */
-public interface Authorizations extends Iterable<String> {
-  Set<String> asSet();
-}
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/InvalidAuthorizationException.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/InvalidAuthorizationException.java
index 5790cf7..74df35f 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/InvalidAuthorizationException.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/InvalidAuthorizationException.java
@@ -23,7 +23,7 @@ package org.apache.accumulo.access;
  *
  * @since 1.0.0
  */
-public class InvalidAuthorizationException extends RuntimeException {
+public class InvalidAuthorizationException extends IllegalArgumentException {
 
   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..e71fe29 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
@@ -26,11 +26,11 @@ import static 
org.apache.accumulo.access.impl.CharUtils.isQuoteSymbol;
 
 import java.util.HashSet;
 import java.util.Set;
+import java.util.function.Consumer;
 import java.util.function.Predicate;
 
 import org.apache.accumulo.access.AccessEvaluator;
 import org.apache.accumulo.access.AuthorizationValidator;
-import org.apache.accumulo.access.Authorizations;
 import org.apache.accumulo.access.InvalidAccessExpressionException;
 
 public final class AccessEvaluatorImpl implements AccessEvaluator {
@@ -50,17 +50,12 @@ public final class AccessEvaluatorImpl implements 
AccessEvaluator {
   /**
    * Create an AccessEvaluatorImpl using a collection of authorizations
    */
-  AccessEvaluatorImpl(Authorizations authorizations,
+  AccessEvaluatorImpl(Set<String> authorizations, Consumer<String> 
authArgumentValidator,
       AuthorizationValidator authorizationValidator) {
-    var authsSet = authorizations.asSet();
-    final Set<CharsWrapper> wrappedAuths = new HashSet<>(authsSet.size());
-    for (String authorization : authsSet) {
-      if (authorization.isEmpty()) {
-        throw new IllegalArgumentException("Empty authorization");
-      }
 
-      wrappedAuths.add(new CharsWrapper(authorization.toCharArray()));
-    }
+    final Set<CharsWrapper> wrappedAuths = new 
HashSet<>(authorizations.size());
+    authorizations.forEach(authArgumentValidator
+        .andThen(auth -> wrappedAuths.add(new 
CharsWrapper(auth.toCharArray()))));
 
     this.authorizedPredicate =
         auth -> auth instanceof CharsWrapper wrapped ? 
wrappedAuths.contains(wrapped)
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..9120ed5 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
@@ -20,6 +20,7 @@ package org.apache.accumulo.access.impl;
 
 import static 
org.apache.accumulo.access.AuthorizationValidator.AuthorizationCharacters.ANY;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.Set;
@@ -30,7 +31,6 @@ import org.apache.accumulo.access.Access;
 import org.apache.accumulo.access.AccessEvaluator;
 import org.apache.accumulo.access.AccessExpression;
 import org.apache.accumulo.access.AuthorizationValidator;
-import org.apache.accumulo.access.Authorizations;
 import org.apache.accumulo.access.InvalidAccessExpressionException;
 import org.apache.accumulo.access.InvalidAuthorizationException;
 import org.apache.accumulo.access.ParsedAccessExpression;
@@ -39,12 +39,11 @@ public class AccessImpl implements Access {
 
   private final AuthorizationValidator authValidator;
 
-  private void validateAuthorization(CharSequence auth,
-      AuthorizationValidator.AuthorizationCharacters quoting) {
+  private void validateAuthArgument(CharSequence auth) {
     if (auth.isEmpty()) {
       throw new IllegalArgumentException("Empty string is not a valid 
authorization");
     }
-    if (!authValidator.test(auth, quoting)) {
+    if (!authValidator.test(auth, ANY)) {
       throw new InvalidAuthorizationException(auth.toString());
     }
   }
@@ -67,16 +66,6 @@ public class AccessImpl implements Access {
     return ParsedAccessExpressionImpl.parseExpression(expression, 
authValidator);
   }
 
-  @Override
-  public Authorizations newAuthorizations(Set<String> authorizations) {
-    if (authorizations.isEmpty()) {
-      return AuthorizationsImpl.EMPTY;
-    } else {
-      authorizations.forEach(auth -> validateAuthorization(auth, ANY));
-      return new AuthorizationsImpl(authorizations);
-    }
-  }
-
   @Override
   public void findAuthorizations(String expression, Consumer<String> 
authorizationConsumer)
       throws InvalidAccessExpressionException {
@@ -85,14 +74,14 @@ public class AccessImpl implements Access {
 
   @Override
   public String quote(String authorization) {
-    validateAuthorization(authorization, ANY);
+    validateAuthArgument(authorization);
     return AccessExpressionImpl.quote(authorization).toString();
   }
 
   @Override
   public String unquote(String authorization) {
     var unquoted = AccessExpressionImpl.unquote(authorization);
-    validateAuthorization(unquoted, ANY);
+    validateAuthArgument(unquoted);
     return unquoted.toString();
   }
 
@@ -102,8 +91,8 @@ public class AccessImpl implements Access {
   }
 
   @Override
-  public AccessEvaluator newEvaluator(Authorizations authorizations) {
-    return new AccessEvaluatorImpl(authorizations, authValidator);
+  public AccessEvaluator newEvaluator(Set<String> authorizations) {
+    return new AccessEvaluatorImpl(authorizations, this::validateAuthArgument, 
authValidator);
   }
 
   @Override
@@ -112,7 +101,9 @@ public class AccessImpl implements Access {
   }
 
   @Override
-  public AccessEvaluator newEvaluator(Collection<Authorizations> 
authorizationSets) {
-    return new MultiAccessEvaluatorImpl(authorizationSets, authValidator);
+  public AccessEvaluator newEvaluator(Collection<Set<String>> 
authorizationSets) {
+    var evaluators = new ArrayList<AccessEvaluator>(authorizationSets.size());
+    authorizationSets.forEach(set -> evaluators.add(newEvaluator(set)));
+    return new MultiAccessEvaluatorImpl(evaluators);
   }
 }
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
deleted file mode 100644
index b8c5295..0000000
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/AuthorizationsImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.accumulo.access.impl;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.accumulo.access.Authorizations;
-
-public class AuthorizationsImpl implements Authorizations {
-
-  static final Authorizations EMPTY = new AuthorizationsImpl(Set.of());
-
-  private final Set<String> authorizations;
-
-  AuthorizationsImpl(Set<String> authorizations) {
-    this.authorizations = Set.copyOf(authorizations);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    return this == o
-        || (o instanceof AuthorizationsImpl oa && 
authorizations.equals(oa.authorizations));
-  }
-
-  @Override
-  public int hashCode() {
-    return authorizations.hashCode();
-  }
-
-  @Override
-  public String toString() {
-    return authorizations.toString();
-  }
-
-  /**
-   * Returns the set of authorization strings in this Authorization object
-   *
-   * @return immutable set of authorization strings
-   */
-  @Override
-  public Set<String> asSet() {
-    return authorizations;
-  }
-
-  @Override
-  public Iterator<String> iterator() {
-    return authorizations.iterator();
-  }
-}
diff --git 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/MultiAccessEvaluatorImpl.java
 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/MultiAccessEvaluatorImpl.java
index 2ea6964..d0537e3 100644
--- 
a/modules/core/src/main/java/org/apache/accumulo/access/impl/MultiAccessEvaluatorImpl.java
+++ 
b/modules/core/src/main/java/org/apache/accumulo/access/impl/MultiAccessEvaluatorImpl.java
@@ -18,25 +18,17 @@
  */
 package org.apache.accumulo.access.impl;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import org.apache.accumulo.access.AccessEvaluator;
-import org.apache.accumulo.access.AuthorizationValidator;
-import org.apache.accumulo.access.Authorizations;
 import org.apache.accumulo.access.InvalidAccessExpressionException;
 
 public final class MultiAccessEvaluatorImpl implements AccessEvaluator {
 
   private final List<AccessEvaluator> evaluators;
 
-  MultiAccessEvaluatorImpl(Collection<Authorizations> authorizationSets,
-      AuthorizationValidator validator) {
-    evaluators = new ArrayList<>(authorizationSets.size());
-    for (Authorizations authorizations : authorizationSets) {
-      evaluators.add(new AccessEvaluatorImpl(authorizations, validator));
-    }
+  MultiAccessEvaluatorImpl(List<AccessEvaluator> evaluators) {
+    this.evaluators = evaluators;
   }
 
   @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..c445bf4 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
@@ -91,15 +91,14 @@ public class AccessEvaluatorTest {
       AccessEvaluator evaluator;
       assertTrue(testSet.auths.length >= 1);
       if (testSet.auths.length == 1) {
-        evaluator = 
access.newEvaluator(access.newAuthorizations(Set.of(testSet.auths[0])));
+        evaluator = access.newEvaluator(Set.of(testSet.auths[0]));
         runTestCases(access, testSet, evaluator);
 
         Set<String> auths = 
Stream.of(testSet.auths[0]).collect(Collectors.toSet());
         evaluator = access.newEvaluator(auths::contains);
         runTestCases(access, testSet, evaluator);
       } else {
-        var authSets = Stream.of(testSet.auths).map(a -> 
access.newAuthorizations(Set.of(a)))
-            .collect(Collectors.toList());
+        var authSets = Stream.of(testSet.auths).map(a -> 
Set.of(a)).collect(Collectors.toList());
         evaluator = access.newEvaluator(authSets);
         runTestCases(access, testSet, evaluator);
       }
@@ -166,10 +165,10 @@ public class AccessEvaluatorTest {
   @Test
   public void testEmptyAuthorizations() {
     var access = Access.builder().build();
-    assertThrows(IllegalArgumentException.class, () -> 
access.newAuthorizations(Set.of("")));
-    assertThrows(IllegalArgumentException.class, () -> 
access.newAuthorizations(Set.of("", "A")));
-    assertThrows(IllegalArgumentException.class, () -> 
access.newAuthorizations(Set.of("A", "")));
-    assertThrows(IllegalArgumentException.class, () -> 
access.newAuthorizations(Set.of("")));
+    assertThrows(IllegalArgumentException.class, () -> 
access.newEvaluator(Set.of("")));
+    assertThrows(IllegalArgumentException.class, () -> 
access.newEvaluator(Set.of("", "A")));
+    assertThrows(IllegalArgumentException.class, () -> 
access.newEvaluator(Set.of("A", "")));
+    assertThrows(IllegalArgumentException.class, () -> 
access.newEvaluator(Set.of("")));
   }
 
   @Test
@@ -277,7 +276,7 @@ public class AccessEvaluatorTest {
     assertEquals(Set.of("A", "B/C", "D\\E"), seenAuths);
     seenAuths.clear();
 
-    var eval = access.newEvaluator(access.newAuthorizations(Set.of("A")));
+    var eval = access.newEvaluator(Set.of("A"));
     assertFalse(eval.canAccess(qa1 + "&" + qa2 + "&" + qa3));
     assertEquals(Set.of("A", "B/C", "D\\E"), seenAuths);
     seenAuths.clear();
diff --git 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessExpressionBenchmark.java
 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessExpressionBenchmark.java
index 586d640..b64df5b 100644
--- 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessExpressionBenchmark.java
+++ 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AccessExpressionBenchmark.java
@@ -126,11 +126,10 @@ public class AccessExpressionBenchmark {
         et.expressions = new ArrayList<>();
 
         if (testDataSet.auths.length == 1) {
-          et.evaluator =
-              
access.newEvaluator(access.newAuthorizations(Set.of(testDataSet.auths[0])));
+          et.evaluator = access.newEvaluator(Set.of(testDataSet.auths[0]));
         } else {
-          var authSets = Stream.of(testDataSet.auths).map(a -> 
access.newAuthorizations(Set.of(a)))
-              .collect(Collectors.toList());
+          var authSets =
+              Stream.of(testDataSet.auths).map(a -> 
Set.of(a)).collect(Collectors.toList());
           et.evaluator = access.newEvaluator(authSets);
         }
 
diff --git 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AuthorizationTest.java
 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AuthorizationTest.java
index 171abc7..25855e2 100644
--- 
a/modules/core/src/test/java/org/apache/accumulo/access/tests/AuthorizationTest.java
+++ 
b/modules/core/src/test/java/org/apache/accumulo/access/tests/AuthorizationTest.java
@@ -22,7 +22,6 @@ import static java.nio.charset.StandardCharsets.UTF_8;
 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.assertSame;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -30,7 +29,6 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.accumulo.access.Access;
-import org.apache.accumulo.access.Authorizations;
 import org.apache.accumulo.access.InvalidAccessExpressionException;
 import org.apache.accumulo.access.InvalidAuthorizationException;
 import org.apache.accumulo.access.impl.Tokenizer;
@@ -38,31 +36,6 @@ import org.junit.jupiter.api.Test;
 
 public class AuthorizationTest {
 
-  @Test
-  public void testEquality() {
-    var access = Access.builder().build();
-    Authorizations auths1 = access.newAuthorizations(Set.of("A", "B", "C"));
-    Authorizations auths2 = access.newAuthorizations(Set.of("A", "B", "C"));
-
-    assertEquals(auths1, auths2);
-    assertEquals(auths1.hashCode(), auths2.hashCode());
-
-    Authorizations auths3 = access.newAuthorizations(Set.of("D", "E", "F"));
-
-    assertNotEquals(auths1, auths3);
-    assertNotEquals(auths1.hashCode(), auths3.hashCode());
-  }
-
-  @Test
-  public void testEmpty() {
-    var access = Access.builder().build();
-    // check if new object is allocated
-    assertSame(access.newAuthorizations(Set.of()), 
access.newAuthorizations(Set.of()));
-    assertEquals(Set.of(), access.newAuthorizations(Set.of()).asSet());
-    assertSame(access.newAuthorizations(Set.of()).asSet(),
-        access.newAuthorizations(Set.of()).asSet());
-  }
-
   @Test
   public void testAuthorizationValidation() {
 
@@ -152,8 +125,8 @@ public class AuthorizationTest {
     assertEquals('"' + "ABC\\\"D" + '"', quoted);
     assertEquals("ABC\"D", accumuloAccess.unquote(quoted));
 
-    var auths1 = accumuloAccess.newAuthorizations(Set.of("ABC\"D", "DEF"));
-    var auths2 = accumuloAccess.newAuthorizations(Set.of("ABC\"D", "XYZ"));
+    var auths1 = Set.of("ABC\"D", "DEF");
+    var auths2 = Set.of("ABC\"D", "XYZ");
     var evaluator = accumuloAccess.newEvaluator(auths1);
 
     assertTrue(evaluator.canAccess(quoted + "|XYZ"));
@@ -201,17 +174,17 @@ public class AuthorizationTest {
     assertEquals('"' + auth1 + '"' + "&" + auth2, exp1);
     assertEquals('"' + auth1 + '"' + "|" + auth2, exp2);
 
-    var auths1 = access.newAuthorizations(Set.of(auth1, auth2));
+    var auths1 = Set.of(auth1, auth2);
     var evaluator1 = access.newEvaluator(auths1);
     assertTrue(evaluator1.canAccess(exp1));
     assertTrue(evaluator1.canAccess(exp2));
 
-    var auths2 = access.newAuthorizations(Set.of(auth1));
+    var auths2 = Set.of(auth1);
     var evaluator2 = access.newEvaluator(auths2);
     assertFalse(evaluator2.canAccess(exp1));
     assertTrue(evaluator2.canAccess(exp2));
 
-    var auths3 = access.newAuthorizations(Set.of(auth2));
+    var auths3 = Set.of(auth2);
     var evaluator3 = access.newEvaluator(auths3);
     assertFalse(evaluator3.canAccess(exp1));
     assertTrue(evaluator3.canAccess(exp2));
@@ -221,8 +194,8 @@ public class AuthorizationTest {
       Access accumuloAccess) {
     List<String> auths = List.of(goodAuth1, goodAuth2, badAuth, goodAuth3);
 
-    var auths1 = accumuloAccess.newAuthorizations(Set.of(goodAuth1, 
goodAuth2));
-    var auths2 = accumuloAccess.newAuthorizations(Set.of(goodAuth3, 
goodAuth2));
+    var auths1 = Set.of(goodAuth1, goodAuth2);
+    var auths2 = Set.of(goodAuth3, goodAuth2);
 
     var evaluator = accumuloAccess.newEvaluator(auths1);
     var multiEvaluator = accumuloAccess.newEvaluator(List.of(auths1, auths2));
@@ -265,7 +238,7 @@ public class AuthorizationTest {
       assertTrue(exception.getMessage().contains(badAuth));
 
       exception = assertThrows(InvalidAuthorizationException.class,
-          () -> accumuloAccess.newAuthorizations(Set.of(a1, a2, a3, a4)));
+          () -> accumuloAccess.newEvaluator(Set.of(a1, a2, a3, a4)));
       assertTrue(exception.getMessage().contains(badAuth));
 
       if (badAuth.chars().anyMatch(c -> !Tokenizer.isValidAuthChar((char) c))) 
{
diff --git 
a/modules/examples/src/main/java/org/apache/accumulo/access/examples/AccessExample.java
 
b/modules/examples/src/main/java/org/apache/accumulo/access/examples/AccessExample.java
index aba3881..7e01a3d 100644
--- 
a/modules/examples/src/main/java/org/apache/accumulo/access/examples/AccessExample.java
+++ 
b/modules/examples/src/main/java/org/apache/accumulo/access/examples/AccessExample.java
@@ -56,8 +56,7 @@ public class AccessExample {
     var access = 
Access.builder().authorizationValidator(AuthorizationValidator.DEFAULT).build();
 
     // Create an access evaluator using the provided authorizations
-    AccessEvaluator evaluator =
-        access.newEvaluator(access.newAuthorizations(Set.of(authorizations)));
+    AccessEvaluator evaluator = access.newEvaluator(Set.of(authorizations));
 
     // Print each record whose access expression permits viewing using the 
provided authorizations
     getData().forEach((record, accessExpression) -> {

Reply via email to