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

snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new 14f5305b0 NoSQL: Prepare admin-tool (#3134)
14f5305b0 is described below

commit 14f5305b0f25ba8f03cb5f4461114b74a528ce48
Author: Robert Stupp <[email protected]>
AuthorDate: Wed Nov 26 16:56:15 2025 +0100

    NoSQL: Prepare admin-tool (#3134)
    
    No functional changes.
    
    1. Refactor the configuration property to a configuration type.
    2. Make `BaseCommand` suitable for non-meta-store-factory use cases.
---
 .../org/apache/polaris/admintool/BaseCommand.java  |  6 +-----
 ...{BaseCommand.java => BaseMetaStoreCommand.java} | 14 ++-----------
 .../apache/polaris/admintool/BootstrapCommand.java |  2 +-
 .../apache/polaris/admintool/PolarisAdminTool.java |  2 +-
 .../org/apache/polaris/admintool/PurgeCommand.java |  2 +-
 .../admintool/config/AdminToolProducers.java       |  7 ++++---
 .../QuarkusPersistenceConfiguration.java}          | 23 +++++++++-------------
 7 files changed, 19 insertions(+), 37 deletions(-)

diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
index c56fe9716..00c8f7e01 100644
--- a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
+++ b/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
@@ -18,9 +18,7 @@
  */
 package org.apache.polaris.admintool;
 
-import jakarta.inject.Inject;
 import java.util.concurrent.Callable;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
 import picocli.CommandLine.Model.CommandSpec;
 import picocli.CommandLine.Spec;
 
@@ -30,7 +28,5 @@ public abstract class BaseCommand implements 
Callable<Integer> {
   public static final int EXIT_CODE_BOOTSTRAP_ERROR = 3;
   public static final int EXIT_CODE_PURGE_ERROR = 4;
 
-  @Inject MetaStoreManagerFactory metaStoreManagerFactory;
-
-  @Spec CommandSpec spec;
+  @Spec protected CommandSpec spec;
 }
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseMetaStoreCommand.java
similarity index 69%
copy from 
runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
copy to 
runtime/admin/src/main/java/org/apache/polaris/admintool/BaseMetaStoreCommand.java
index c56fe9716..5a28b5479 100644
--- a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
+++ 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseMetaStoreCommand.java
@@ -19,18 +19,8 @@
 package org.apache.polaris.admintool;
 
 import jakarta.inject.Inject;
-import java.util.concurrent.Callable;
 import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
-import picocli.CommandLine.Model.CommandSpec;
-import picocli.CommandLine.Spec;
 
-public abstract class BaseCommand implements Callable<Integer> {
-
-  public static final int EXIT_CODE_USAGE = 2;
-  public static final int EXIT_CODE_BOOTSTRAP_ERROR = 3;
-  public static final int EXIT_CODE_PURGE_ERROR = 4;
-
-  @Inject MetaStoreManagerFactory metaStoreManagerFactory;
-
-  @Spec CommandSpec spec;
+public abstract class BaseMetaStoreCommand extends BaseCommand {
+  @Inject protected MetaStoreManagerFactory metaStoreManagerFactory;
 }
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java
 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java
index bfa59fab8..82d92f4e1 100644
--- 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java
+++ 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/BootstrapCommand.java
@@ -33,7 +33,7 @@ import picocli.CommandLine;
     name = "bootstrap",
     mixinStandardHelpOptions = true,
     description = "Bootstraps realms and root principal credentials.")
-public class BootstrapCommand extends BaseCommand {
+public class BootstrapCommand extends BaseMetaStoreCommand {
 
   @CommandLine.Mixin InputOptions inputOptions;
 
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/PolarisAdminTool.java
 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/PolarisAdminTool.java
index 2cb03f07c..66ddaf054 100644
--- 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/PolarisAdminTool.java
+++ 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/PolarisAdminTool.java
@@ -32,7 +32,7 @@ import picocli.CommandLine.HelpCommand;
       BootstrapCommand.class,
       PurgeCommand.class,
     })
-public class PolarisAdminTool extends BaseCommand {
+public class PolarisAdminTool extends BaseMetaStoreCommand {
 
   @Override
   public Integer call() {
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/PurgeCommand.java 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/PurgeCommand.java
index 600ae0b1a..772d311d6 100644
--- a/runtime/admin/src/main/java/org/apache/polaris/admintool/PurgeCommand.java
+++ b/runtime/admin/src/main/java/org/apache/polaris/admintool/PurgeCommand.java
@@ -26,7 +26,7 @@ import picocli.CommandLine;
     name = "purge",
     mixinStandardHelpOptions = true,
     description = "Purge realms and all associated entities.")
-public class PurgeCommand extends BaseCommand {
+public class PurgeCommand extends BaseMetaStoreCommand {
 
   @CommandLine.Option(
       names = {"-r", "--realm"},
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/config/AdminToolProducers.java
 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/config/AdminToolProducers.java
index e6251b2c8..28a43a6c3 100644
--- 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/config/AdminToolProducers.java
+++ 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/config/AdminToolProducers.java
@@ -32,15 +32,16 @@ import 
org.apache.polaris.core.persistence.MetaStoreManagerFactory;
 import org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
 import org.apache.polaris.core.storage.PolarisStorageIntegration;
 import org.apache.polaris.core.storage.PolarisStorageIntegrationProvider;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
 
 public class AdminToolProducers {
 
   @Produces
   public MetaStoreManagerFactory metaStoreManagerFactory(
-      @ConfigProperty(name = "polaris.persistence.type") String 
persistenceType,
+      QuarkusPersistenceConfiguration persistenceConfiguration,
       @Any Instance<MetaStoreManagerFactory> metaStoreManagerFactories) {
-    return 
metaStoreManagerFactories.select(Identifier.Literal.of(persistenceType)).get();
+    return metaStoreManagerFactories
+        .select(Identifier.Literal.of(persistenceConfiguration.type()))
+        .get();
   }
 
   @Produces
diff --git 
a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/config/QuarkusPersistenceConfiguration.java
similarity index 59%
copy from 
runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
copy to 
runtime/admin/src/main/java/org/apache/polaris/admintool/config/QuarkusPersistenceConfiguration.java
index c56fe9716..9e1960d78 100644
--- a/runtime/admin/src/main/java/org/apache/polaris/admintool/BaseCommand.java
+++ 
b/runtime/admin/src/main/java/org/apache/polaris/admintool/config/QuarkusPersistenceConfiguration.java
@@ -16,21 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.polaris.admintool;
+package org.apache.polaris.admintool.config;
 
-import jakarta.inject.Inject;
-import java.util.concurrent.Callable;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
-import picocli.CommandLine.Model.CommandSpec;
-import picocli.CommandLine.Spec;
+import io.smallrye.config.ConfigMapping;
 
-public abstract class BaseCommand implements Callable<Integer> {
+@ConfigMapping(prefix = "polaris.persistence")
+public interface QuarkusPersistenceConfiguration {
 
-  public static final int EXIT_CODE_USAGE = 2;
-  public static final int EXIT_CODE_BOOTSTRAP_ERROR = 3;
-  public static final int EXIT_CODE_PURGE_ERROR = 4;
-
-  @Inject MetaStoreManagerFactory metaStoreManagerFactory;
-
-  @Spec CommandSpec spec;
+  /**
+   * The type of the persistence to use. Must be a registered {@link
+   * org.apache.polaris.core.persistence.MetaStoreManagerFactory} identifier.
+   */
+  String type();
 }

Reply via email to