Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quarkus-based Polaris service runtime #469

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

adutra
Copy link
Contributor

@adutra adutra commented Nov 22, 2024

Fixes #392.

Read the README_quarkus.md file for more details on what changes, how, and what remains to be done.

@adutra adutra force-pushed the polaris-quarkus-replacement branch from f714c40 to dcf8ccd Compare November 23, 2024 16:25
@adutra adutra force-pushed the polaris-quarkus-replacement branch 4 times, most recently from 2f18194 to adfbbc2 Compare November 25, 2024 16:38
@snazy snazy mentioned this pull request Nov 25, 2024
8 tasks
@adutra adutra force-pushed the polaris-quarkus-replacement branch 7 times, most recently from 4ac2974 to 5cc6fec Compare November 28, 2024 10:42
@adutra adutra changed the title [WIP] Quarkus-based Polaris service runtime Quarkus-based Polaris service runtime Nov 28, 2024
@adutra adutra force-pushed the polaris-quarkus-replacement branch 13 times, most recently from fe8b9dc to 9fd4ce3 Compare November 29, 2024 16:16
@snazy snazy mentioned this pull request Dec 2, 2024
11 tasks
Copy link
Member

@snazy snazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! As with every bigger change like this, there will be a bunch of follow-ups, and a ton of nits - some that come to my mind are those:

  • Can remove the Dropwizard mention in NOTICE
  • Can remove the lines starting with io.dropwizard from LICENSE-BINARY-DIST
  • Not sure about the mention of dropwizard in getting-started/trino/docker-compose.yml
  • Can update the comment in IcebergJsonProcessingExceptionMapper
  • Rename the dropwizard directory
  • replace QuarkusOAuthFilter with all authN with Quarkus native authN
  • the "stream read constraints" in QuarkusJacksonConfig are probably not needed at all w/ Quarkus
  • Generate docs from smallrye-configs
  • Split the single quarkus module into multiple - one per "concern" and have one (or more?) that assemble the "final" application

I think, it's fine to merge this change as it is and go from there.

gradle/libs.versions.toml Outdated Show resolved Hide resolved
junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" }
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
junit-platform-reporting = { module = "org.junit.platform:junit-platform-reporting", version = "1.10.3" }
logback-core = { module = "ch.qos.logback:logback-core", version = "1.4.14" }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
logback-core = { module = "ch.qos.logback:logback-core", version = "1.4.14" }
logback-core = { module = "ch.qos.logback:logback-core", version = "1.5.15" }

Had to stick to 1.4 just for dropwizard. But probably better to do this bump in a follow-up.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took note of it for a follow-up task.

gradle/libs.versions.toml Outdated Show resolved Hide resolved
@adutra adutra force-pushed the polaris-quarkus-replacement branch 2 times, most recently from 518e4be to 3ad8445 Compare January 2, 2025 12:11
@adutra adutra force-pushed the polaris-quarkus-replacement branch 2 times, most recently from cfbc759 to 9341bcd Compare January 2, 2025 16:00
@adutra adutra force-pushed the polaris-quarkus-replacement branch from 9341bcd to 8392ab6 Compare January 2, 2025 17:39
snazy added a commit to snazy/polaris that referenced this pull request Jan 2, 2025
Having documentation about the configuration that is both "up-to-date" and "in-sync with the source code" with the actual code is good practice.

The functionality added in this change allows generating markdown docs from smallrye-config based configuration types, starting at and grouped by types that are annotated with `@ConfigMapping`. The javadoc of the config interfaces and properties is emitted as markdown. On top there is functionality to generate reference docs for "static" types (currently unused in Polaris).

The code is nearly a 1:1 port of the same functionality in Nessie. This change will become useful with/after apache#469.

Gradle projects added in this change are:
* `polaris-config-doc-annotations` adds an annotation used when generating docs to influence the generation of the configuration reference docs.
* `polaris-config-doc-generator` is the reference doc generator implementation, as a "standalone" tool that uses javadoc _infrastructure_. See `ReferenceConfigDocsGenerator` why it needs to be a separate tool than "just" a doclet (class loader isolation issues).
* `polaris-site-reference-docs` actually generates the markdown files from referenced Gradle projects. Currently there are no projects referenced, so generation yields nothing.

The generated docs are not yet integrated into the website, which will happen in a follow-up PR.
@MonkeyCanCode
Copy link
Contributor

Is there a plan to configure datasources as well via Quarkus instead of EclipseLink + jakarta (ref: https://projectnessie.org/nessie-latest/configuration/#jdbc-version-store-settings)?

@jbonofre
Copy link
Member

jbonofre commented Jan 3, 2025

@MonkeyCanCode yes, it's on the plan in a second step. We can have different plugins including leveraging Quarkus Panache if needed.

@MonkeyCanCode
Copy link
Contributor

@MonkeyCanCode yes, it's on the plan in a second step. We can have different plugins including leveraging Quarkus Panache if needed.

Nice work. Thanks for confirmation.

@adutra adutra force-pushed the polaris-quarkus-replacement branch from 8392ab6 to f2a9fdb Compare January 3, 2025 08:30
snazy added a commit to snazy/polaris that referenced this pull request Jan 3, 2025
Having documentation about the configuration that is both "up-to-date" and "in-sync with the source code" with the actual code is good practice.

The functionality added in this change allows generating markdown docs from smallrye-config based configuration types, starting at and grouped by types that are annotated with `@ConfigMapping`. The javadoc of the config interfaces and properties is emitted as markdown. On top there is functionality to generate reference docs for "static" types (currently unused in Polaris).

The code is nearly a 1:1 port of the same functionality in Nessie. This change will become useful with/after apache#469.

Gradle projects added in this change are:
* `polaris-config-doc-annotations` adds an annotation used when generating docs to influence the generation of the configuration reference docs.
* `polaris-config-doc-generator` is the reference doc generator implementation, as a "standalone" tool that uses javadoc _infrastructure_. See `ReferenceConfigDocsGenerator` why it needs to be a separate tool than "just" a doclet (class loader isolation issues).
* `polaris-site-reference-docs` actually generates the markdown files from referenced Gradle projects. Currently there are no projects referenced, so generation yields nothing.

The generated docs are not yet integrated into the website, which will happen in a follow-up PR.
@adutra adutra force-pushed the polaris-quarkus-replacement branch from f2a9fdb to c6bfb41 Compare January 3, 2025 12:37
@adutra adutra force-pushed the polaris-quarkus-replacement branch from c6bfb41 to 6915daf Compare January 3, 2025 15:37
@adutra adutra force-pushed the polaris-quarkus-replacement branch 7 times, most recently from 76f8bb9 to 3da4643 Compare January 7, 2025 18:39
@adutra adutra force-pushed the polaris-quarkus-replacement branch from 3da4643 to a36d0ac Compare January 7, 2025 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enhanced Apache Polaris runtime
6 participants