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();
}