This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit d0b72f5465ebf6c30d4084aa1c85494c43c28361 Merge: 29a37b6c7d 1e347f8482 Author: Keith Turner <ktur...@apache.org> AuthorDate: Mon Jul 8 18:34:26 2024 -0400 Merge branch 'main' into elasticity assemble/pom.xml | 5 + core/pom.xml | 6 + .../summarizers/AuthorizationSummarizer.java | 36 +----- .../core/clientImpl/ConditionalWriterImpl.java | 29 ++--- .../data/constraints/VisibilityConstraint.java | 16 +-- .../core/iterators/user/TransformingIterator.java | 23 ++-- .../core/iterators/user/VisibilityFilter.java | 20 +-- .../iteratorsImpl/system/VisibilityFilter.java | 19 ++- .../accumulo/core/security/Authorizations.java | 20 +++ .../accumulo/core/security/ColumnVisibility.java | 85 ++++++++----- .../core/security/VisibilityEvaluator.java | 134 +++------------------ .../core/security/VisibilityParseException.java | 11 ++ .../accumulo/core/util/BadArgumentException.java | 7 ++ .../data/constraints/VisibilityConstraintTest.java | 13 +- .../core/security/ColumnVisibilityTest.java | 13 ++ .../core/security/VisibilityEvaluatorTest.java | 24 +--- pom.xml | 6 + 17 files changed, 206 insertions(+), 261 deletions(-) diff --cc assemble/pom.xml index 351b97a49c,fbb5a9e698..257a5dddc6 --- a/assemble/pom.xml +++ b/assemble/pom.xml @@@ -181,6 -181,16 +181,11 @@@ <artifactId>jakarta.xml.bind-api</artifactId> <optional>true</optional> </dependency> + <dependency> + <groupId>org.apache.accumulo</groupId> + <artifactId>accumulo-access</artifactId> + <optional>true</optional> + </dependency> - <dependency> - <groupId>org.apache.accumulo</groupId> - <artifactId>accumulo-compaction-coordinator</artifactId> - <optional>true</optional> - </dependency> <dependency> <groupId>org.apache.accumulo</groupId> <artifactId>accumulo-compactor</artifactId> diff --cc core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java index bec607cb28,4ddcdae552..8b5de99c84 --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java @@@ -97,14 -95,14 +95,14 @@@ public class ConditionalWriterImpl impl private static final int MAX_SLEEP = 30000; - private Authorizations auths; - private VisibilityEvaluator ve; - private Map<Text,Boolean> cache = Collections.synchronizedMap(new LRUMap<>(1000)); + private final Authorizations auths; + private final AccessEvaluator accessEvaluator; + private final Map<Text,Boolean> cache = Collections.synchronizedMap(new LRUMap<>(1000)); private final ClientContext context; - private ClientTabletCache locator; - private final TabletLocator locator; ++ private final ClientTabletCache locator; private final TableId tableId; private final String tableName; - private long timeout; + private final long timeout; private final Durability durability; private final String classLoaderContext; @@@ -374,10 -372,10 +372,10 @@@ ConditionalWriterConfig config) { this.context = context; this.auths = config.getAuthorizations(); - this.ve = new VisibilityEvaluator(config.getAuthorizations()); + this.accessEvaluator = AccessEvaluator.of(config.getAuthorizations().toAccessAuthorizations()); this.threadPool = context.threadPools().createScheduledExecutorService( config.getMaxWriteThreads(), this.getClass().getSimpleName()); - this.locator = new SyncingTabletLocator(context, tableId); + this.locator = new SyncingClientTabletCache(context, tableId); this.serverQueues = new HashMap<>(); this.tableId = tableId; this.tableName = tableName; diff --cc pom.xml index aeacdf925e,014424cdc9..fd582742b3 --- a/pom.xml +++ b/pom.xml @@@ -314,6 -316,16 +315,11 @@@ <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> + <dependency> + <groupId>org.apache.accumulo</groupId> + <artifactId>accumulo-access</artifactId> + <version>${version.accumulo-access}</version> + </dependency> - <dependency> - <groupId>org.apache.accumulo</groupId> - <artifactId>accumulo-compaction-coordinator</artifactId> - <version>${project.version}</version> - </dependency> <dependency> <groupId>org.apache.accumulo</groupId> <artifactId>accumulo-compactor</artifactId>