You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@polaris.apache.org by "dimas-b (via GitHub)" <gi...@apache.org> on 2026/03/06 19:04:05 UTC
[PR] Split Admin CLI into modules per technology [polaris]
dimas-b opened a new pull request, #3947:
URL: https://github.com/apache/polaris/pull/3947
* Introduce `polairs-admin-base` for shared commands
* Move NoSQL commands to `polaris-persistence-nosql-admin`
* Make NoSQL commands optional with build property: `ExcludeNoSqlPersistence` as proposed in #3867
* Move JDBC-specific dependencies for admin commands to `polaris-relational-jdbc-admin`
* CDI-based Sub-command discovery is handled by `AdminCliConfiguration`
* Add dedicated admin test modules per persistence technology (JDBC / NoSQL)
* Move default quarkus properties to `runtime-admin-defaults` to allow downstream projects to _not_ include them.
* Downstream builds are advised to depend on individual command modules (noted above) and have local `application.properties`, but not depend on `runtime-admin`, which serves as the Admin CLI distribution assembly module for Apache Polaris releases.
Closes #3867
This change also addresses most of concerns from #3855.
<!--
๐ Describe what changes you're proposing, especially breaking or user-facing changes.
๐ See https://github.com/apache/polaris/blob/main/CONTRIBUTING.md for more.
-->
## Checklist
- [ ] ๐ก๏ธ Don't disclose security issues! (contact security@apache.org)
- [ ] ๐ Clearly explained why the changes are needed, or linked related issues: Fixes #
- [ ] ๐งช Added/updated tests with good coverage, or manually tested (and explained how)
- [ ] ๐ก Added comments for complex logic
- [ ] ๐งพ Updated `CHANGELOG.md` (if needed)
- [ ] ๐ Updated documentation in `site/content/in-dev/unreleased` (if needed)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2940164585
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/NoSqlCommand.java:
##########
@@ -34,6 +36,8 @@
},
mixinStandardHelpOptions = true,
description = "Sub-commands specific to NoSQL persistence.")
+@AdminSubCommand
+@Default
public class NoSqlCommand extends BaseNoSqlCommand {
@Inject protected Backend backend;
Review Comment:
Probably not... It was there before, I just did not notice ๐
Thx for the pointer - removing.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #3947:
URL: https://github.com/apache/polaris/pull/3947#issuecomment-4340377489
This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2940148318
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/Placeholder.java:
##########
@@ -0,0 +1,31 @@
+/*
+ * 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
+ *
+ * http://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.polaris.admintool.nosql;
+
+import jakarta.enterprise.context.ApplicationScoped;
+
+/**
+ * Something with a "bean-producing" annotation is required by Quarkus to "notice" this module, yet
+ * Quarkus will find CLI commands only if they are `@Default`, so `@ApplicationScoped` cannot be
+ * applied to them... hence the workaround with this placeholder just to hold the
+ * `@ApplicationScoped` annotation.
+ */
Review Comment:
Yes. Quarkus does not "see" custom qualifiers (like `@AdminSubCommand`). Since `persistence/nosql/admin/cmd` does not have any standard "bean-defining" annotations, Quarkus will not consider it when looking for `@AdminSubCommand` implementations.
I guess this is an interplay of some no-so-standard Quarkus approach to implementing CLI (note that Quarkus considered only `@Default` beans for CLI commands) and me wanting to leverage `@AdminSubCommand` to allow pluggable CLI modules.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on PR #3947:
URL: https://github.com/apache/polaris/pull/3947#issuecomment-4130446136
@flyrain : I'm not sure I understand what you mean exactly, but I'm open to alternatives. If you feel like opening an alternative PR, I think that can allow for different approaches to be compared more easily.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "jbonofre (via GitHub)" <gi...@apache.org>.
jbonofre commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2936946751
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/Placeholder.java:
##########
@@ -0,0 +1,31 @@
+/*
+ * 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
+ *
+ * http://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.polaris.admintool.nosql;
+
+import jakarta.enterprise.context.ApplicationScoped;
+
+/**
+ * Something with a "bean-producing" annotation is required by Quarkus to "notice" this module, yet
+ * Quarkus will find CLI commands only if they are `@Default`, so `@ApplicationScoped` cannot be
+ * applied to them... hence the workaround with this placeholder just to hold the
+ * `@ApplicationScoped` annotation.
+ */
Review Comment:
I understand the workaround. I just wonder if it's actually required ?
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/NoSqlCommand.java:
##########
@@ -34,6 +36,8 @@
},
mixinStandardHelpOptions = true,
description = "Sub-commands specific to NoSQL persistence.")
+@AdminSubCommand
+@Default
public class NoSqlCommand extends BaseNoSqlCommand {
@Inject protected Backend backend;
Review Comment:
`backend` is already defined in `BaseNoSqlCommand`. Do we really need to override it there ?
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/BaseNoSqlCommand.java:
##########
@@ -25,6 +25,10 @@
public abstract class BaseNoSqlCommand extends BaseCommand {
@Inject protected Backend backend;
+ public BaseNoSqlCommand() {
Review Comment:
nit: Do we really need this constructor ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #3947: Split Admin CLI into modules per technology
URL: https://github.com/apache/polaris/pull/3947
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2940148318
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/Placeholder.java:
##########
@@ -0,0 +1,31 @@
+/*
+ * 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
+ *
+ * http://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.polaris.admintool.nosql;
+
+import jakarta.enterprise.context.ApplicationScoped;
+
+/**
+ * Something with a "bean-producing" annotation is required by Quarkus to "notice" this module, yet
+ * Quarkus will find CLI commands only if they are `@Default`, so `@ApplicationScoped` cannot be
+ * applied to them... hence the workaround with this placeholder just to hold the
+ * `@ApplicationScoped` annotation.
+ */
Review Comment:
Yes. Quarkus does not "see" custom qualifiers (like `@AdminSubCommand`). Since `persistence/nosql/admin/cmd` does not have any standard "bean-defining" annotations, Quarkus will not consider it when looking for `@AdminSubCommand` implementations.
I guess this is an interplay of some no-so-standard Quarkus approach to implementing CLI (note that Quarkus also considered only `@Default` beans for CLI commands) and me wanting to leverage `@AdminSubCommand` to allow pluggable CLI modules.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2940159116
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/BaseNoSqlCommand.java:
##########
@@ -25,6 +25,10 @@
public abstract class BaseNoSqlCommand extends BaseCommand {
@Inject protected Backend backend;
+ public BaseNoSqlCommand() {
Review Comment:
thx - leftover... removing
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on code in PR #3947:
URL: https://github.com/apache/polaris/pull/3947#discussion_r2940148318
##########
persistence/nosql/admin/cmd/src/main/java/org/apache/polaris/admintool/nosql/Placeholder.java:
##########
@@ -0,0 +1,31 @@
+/*
+ * 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
+ *
+ * http://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.polaris.admintool.nosql;
+
+import jakarta.enterprise.context.ApplicationScoped;
+
+/**
+ * Something with a "bean-producing" annotation is required by Quarkus to "notice" this module, yet
+ * Quarkus will find CLI commands only if they are `@Default`, so `@ApplicationScoped` cannot be
+ * applied to them... hence the workaround with this placeholder just to hold the
+ * `@ApplicationScoped` annotation.
+ */
Review Comment:
Yes. Quarkus does not "see" custom qualifiers (like `@AdminSubCommand`). Since `persistence/nosql/admin/cmd` does not have any standard "bean-defining" annotations, Quarkus will not consider it when looking for `@AdminSubCommand` implementations.
I guess this is an interplay of some not-so-standard Quarkus approach to implementing CLI (note that Quarkus considered only `@Default` beans for CLI commands) and me wanting to leverage `@AdminSubCommand` to allow pluggable CLI modules.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Split Admin CLI into modules per technology [polaris]
Posted by "dimas-b (via GitHub)" <gi...@apache.org>.
dimas-b commented on PR #3947:
URL: https://github.com/apache/polaris/pull/3947#issuecomment-4067653586
Note: I rebased to include new tests from #3352
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@polaris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org