-
Notifications
You must be signed in to change notification settings - Fork 157
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
base: main
Are you sure you want to change the base?
Conversation
f714c40
to
dcf8ccd
Compare
2f18194
to
adfbbc2
Compare
4ac2974
to
5cc6fec
Compare
fe8b9dc
to
9fd4ce3
Compare
45876c2
to
2f6413f
Compare
There was a problem hiding this 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
fromLICENSE-BINARY-DIST
- Not sure about the mention of
dropwizard
ingetting-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.
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" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
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.
service/common/src/main/java/org/apache/polaris/service/storage/StorageConfiguration.java
Outdated
Show resolved
Hide resolved
518e4be
to
3ad8445
Compare
cfbc759
to
9341bcd
Compare
9341bcd
to
8392ab6
Compare
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.
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)? |
@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. |
8392ab6
to
f2a9fdb
Compare
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.
f2a9fdb
to
c6bfb41
Compare
c6bfb41
to
6915daf
Compare
76f8bb9
to
3da4643
Compare
3da4643
to
a36d0ac
Compare
Fixes #392.
Read the
README_quarkus.md
file for more details on what changes, how, and what remains to be done.