Hi all, FYI the quarkisverse repo was created -> https://github.com/quarkiverse/quarkus-jdbc-generic
waiting some PR to be merged for the release to pass (docs, global release repo so pipelines work etc), but release can come quickly (well I'll be off tomorrow for some holidays with less computer time but you get the idea) so think it might be the way to move forward - including enhancements, wdyt? Romain Manni-Bucau @rmannibucau <https://x.com/rmannibucau> | .NET Blog <https://dotnetbirdie.github.io/> | Blog <https://rmannibucau.github.io/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064> Javaccino <https://javaccino.dev/> founder (Java/.NET service - contact via linkedin) Le ven. 31 juil. 2026 à 10:01, Romain Manni-Bucau <[email protected]> a écrit : > quarkiverse is the community OSS marketplace of quarkus, quarkus 'core' > integrate with it. > personally I see it as component "second citizen" compared to core but by > nature something "runtime" will not hit the core, in particular jdbc (cause > panache, flyway etc will not support it easily/with all optims even if > doable). > > So it is the least worse you can get and you still get eyes from quarkus > community. > > In terms of usage it is just a dependency and likely - once moved - with > proper coordinates so it gets the same validations and quality than > built-in core extensions. > > Romain Manni-Bucau > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > <https://dotnetbirdie.github.io/> | Blog <https://rmannibucau.github.io/> | > Old Blog <http://rmannibucau.wordpress.com> | Github > <https://github.com/rmannibucau> | LinkedIn > <https://www.linkedin.com/in/rmannibucau> | Book > <https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064> > Javaccino <https://javaccino.dev/> founder (Java/.NET service - contact > via linkedin) > > > Le ven. 31 juil. 2026 à 07:31, Yufei Gu <[email protected]> a écrit : > >> Hi Romain, >> >> Thanks a lot for filing the PR and engaging with the Quarkus community. >> Great to see the progress there. >> >> I'm not very familiar with Quarkiverse, though. Could you or someone >> explain how quarkus-jdbc-generic would work in Quarkiverse? In particular, >> how would Polaris consume it? Would it allow users to mount a JDBC driver >> at runtime without rebuilding or reaugmenting the application? >> >> Thanks! >> Yufei >> >> On Thu, Jul 30, 2026 at 6:36 AM Romain Manni-Bucau <[email protected] >> > >> wrote: >> >> > Hi all, >> > >> > extracted the PR I did on my github for now -> >> > https://github.com/quarkusio/quarkus/pull/55677 / >> > https://github.com/rmannibucau/quarkus-jdbc-generic >> > but it might end up in quarkiverse so can be a good solution for polaris >> > community maintained and quarkus supported >> > >> > side note: i'll get way less computer time in less than a week so if >> > somebody can follow up until I'm back it would be awesome. >> > >> > Romain Manni-Bucau >> > @rmannibucau <https://x.com/rmannibucau> | .NET Blog >> > <https://dotnetbirdie.github.io/> | Blog < >> https://rmannibucau.github.io/> >> > | Old >> > Blog <http://rmannibucau.wordpress.com> | Github >> > <https://github.com/rmannibucau> | LinkedIn >> > <https://www.linkedin.com/in/rmannibucau> | Book >> > < >> > >> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 >> > > >> > Javaccino <https://javaccino.dev/> founder (Java/.NET service - contact >> > via >> > linkedin) >> > >> > >> > Le lun. 27 juil. 2026 à 23:58, Romain Manni-Bucau < >> [email protected]> >> > a >> > écrit : >> > >> > > Reaugmentation or its friend 'build commands are what makes final >> > products >> > > (like keycloak or polaris) not that consummable compared to standard >> > plain >> > > JVM solution (CDI, EE, microprofile, spring and friends apps) >> > > >> > > @Dmitri building doesn't add a jar, it does if you add a dependency >> > > somehow, doing a "copy" somewhere does, the common use case is an init >> > > container copying the driver from a well know driver (or location >> even if >> > > now OCI images being mountable make it very smooth) to a folder in the >> > > classpath of the app, 0 code modification of the "app", pure config. >> > > Think this is what we should be after. >> > > >> > > Romain Manni-Bucau >> > > @rmannibucau <https://x.com/rmannibucau> | .NET Blog >> > > <https://dotnetbirdie.github.io/> | Blog < >> https://rmannibucau.github.io/> >> > | >> > > Old Blog <http://rmannibucau.wordpress.com> | Github >> > > <https://github.com/rmannibucau> | LinkedIn >> > > <https://www.linkedin.com/in/rmannibucau> | Book >> > > < >> > >> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 >> > > >> > > Javaccino founder (Java/.NET service - contact via linkedin) >> > > >> > > >> > > Le lun. 27 juil. 2026 à 19:31, Dmitri Bourlatchkov <[email protected]> >> a >> > > écrit : >> > > >> > >> ... but we still need to add (at least) one more jar to the >> application, >> > >> right? >> > >> >> > >> Is that possible without re-building? Sorry, I did not read the docs >> > about >> > >> "mutable-jar" :) >> > >> >> > >> Cheers, >> > >> Dmitri. >> > >> >> > >> On Mon, Jul 27, 2026 at 1:22 PM Alexandre Dutra <[email protected]> >> > >> wrote: >> > >> >> > >> > Hi Dmitri, >> > >> > >> > >> > From what I understand from the docs [1], it doesn't require a >> > >> > (separate) build, however the application startup will be very slow >> > >> > because it will be re-built on the fly. >> > >> > >> > >> > Here is the example they show: >> > >> > >> > >> > java -jar -Dquarkus.launch.rebuild=true >> > >> > -Dquarkus.datasource.db-kind=mysql >> target/quarkus-app/quarkus-run.jar >> > >> > >> > >> > Thanks, >> > >> > Alex >> > >> > >> > >> > [1]: >> > >> > >> > >> >> > >> https://quarkus.io/guides/reaugmentation#2-re-augment-your-application-with-a-different-build-time-configuration >> > >> > >> > >> > On Mon, Jul 27, 2026 at 7:06 PM Dmitri Bourlatchkov < >> [email protected] >> > > >> > >> > wrote: >> > >> > > >> > >> > > Hi Alex, >> > >> > > >> > >> > > Re-augmentation requires a build, does it not? >> > >> > > >> > >> > > We can probably do that inside docker: >> > >> > > >> > >> > > * User adds a jar to the image >> > >> > > * Quarkus build is executed inside docker build (using helper >> > scripts >> > >> > > from Polaris) >> > >> > > * Final image is has the driver available via Quarkus. >> > >> > > >> > >> > > Did you mean something like this? >> > >> > > >> > >> > > Cheers, >> > >> > > Dmitri. >> > >> > > >> > >> > > On Mon, Jul 27, 2026 at 10:30 AM Alexandre Dutra < >> [email protected] >> > > >> > >> > wrote: >> > >> > > >> > >> > > > Hi all, >> > >> > > > >> > >> > > > Indeed the Quarkus PR is likely not going to be accepted, >> however >> > it >> > >> > > > seems that moving it to Quarkiverse could be acceptable. >> > >> > > > >> > >> > > > Someone also suggested the Keycloak project's approach to this >> > >> > > > problem: re-augmentation. Keycloak has exactly the same >> problem. >> > Can >> > >> > > > we explore this idea as well? >> > >> > > > >> > >> > > > Thanks, >> > >> > > > Alex >> > >> > > > >> > >> > > > On Mon, Jul 27, 2026 at 4:26 PM Dmitri Bourlatchkov < >> > >> [email protected]> >> > >> > > > wrote: >> > >> > > > > >> > >> > > > > Hi All, >> > >> > > > > >> > >> > > > > Reading recent replies on Quarkus PR [55677] it does not >> looks >> > >> like >> > >> > this >> > >> > > > > proposal is viable... unfortunately. >> > >> > > > > >> > >> > > > > If we go with a mixed approach similar to our PR [4984], how >> > about >> > >> > the >> > >> > > > > following proposal? >> > >> > > > > >> > >> > > > > * Keep the JDBC persistence code generic and unaware of >> > DataSource >> > >> > > > > implementations (i.e. do not try to "manage" it there) >> > >> > > > > >> > >> > > > > * Handle custom DataSources at the CDI layer in the runtime/* >> > >> modules >> > >> > > > > (ServiceProducers or similar (shared) code). This layer will >> > >> choose >> > >> > > > whether >> > >> > > > > to use the Quarkus-managed DataSource (default), or load the >> > >> driver >> > >> > > > > dynamically and "manually" configure the DataSource. Custom >> > >> > downstream >> > >> > > > > builds will keep the option to override the DataSource via >> CDI >> > >> > mechanics. >> > >> > > > > >> > >> > > > > * Do not try to make custom DataSource configuration to be >> the >> > >> same >> > >> > as >> > >> > > > the >> > >> > > > > Quarkus configuration. It can only cause maintenance >> headache. >> > >> Define >> > >> > > > > separate, documented configuration options for the dynamic >> path. >> > >> > Users of >> > >> > > > > the dynamic driver will have to handle deployment differences >> > >> anyway. >> > >> > > > > >> > >> > > > > * Use Agroal on both paths for consistency. >> > >> > > > > >> > >> > > > > * Add a small integration test for the dynamic path based on >> > MySQL >> > >> > > > > (test-only GPL deps are ok, I guess). >> > >> > > > > >> > >> > > > > As Alex noted above, we'll need to review observability in >> the >> > >> custom >> > >> > > > > DataSource case. I believe that no OTel support will be >> > available >> > >> > there >> > >> > > > by >> > >> > > > > default, which probably needs to be documented (at least). >> > >> > > > > >> > >> > > > > [4984] https://github.com/apache/polaris/pull/4984 >> > >> > > > > >> > >> > > > > [55677] https://github.com/quarkusio/quarkus/pull/55677 >> > >> > > > > >> > >> > > > > Cheers, >> > >> > > > > Dmitri. >> > >> > > > > >> > >> > > > > On Mon, Jul 27, 2026 at 8:23 AM Jean-Baptiste Onofré < >> > >> > [email protected]> >> > >> > > > > wrote: >> > >> > > > > >> > >> > > > > > Hi all, >> > >> > > > > > >> > >> > > > > > I previously mentioned the potential for confusion in my >> > review >> > >> of >> > >> > the >> > >> > > > > > PR. I believe our next steps depend on timing: if a native >> > >> > solution in >> > >> > > > > > Agroal/Quarkus is achievable soon, that would be the ideal >> > path. >> > >> > > > > > Otherwise, I think PR #4984 could serve as a suitable >> > temporary >> > >> > > > > > mitigation. >> > >> > > > > > >> > >> > > > > > Regards, >> > >> > > > > > JB >> > >> > > > > > >> > >> > > > > > On Mon, Jul 27, 2026 at 9:30 AM Alexandre Dutra < >> > >> [email protected] >> > >> > > >> > >> > > > wrote: >> > >> > > > > > > >> > >> > > > > > > Hi Yufei, >> > >> > > > > > > >> > >> > > > > > > I am still uncomfortable with the approach taken in >> #4984 of >> > >> > mixing >> > >> > > > > > > managed and unmanaged datasources. IMHO it's confusing >> from >> > a >> > >> > > > > > > configuration and observability perspective, and I fear >> that >> > >> > > > > > > maintaining unmanaged datasources will prove way more >> > >> complicated >> > >> > > > than >> > >> > > > > > > "just" starting and stopping a datasource manually. >> > >> > > > > > > >> > >> > > > > > > Thanks, >> > >> > > > > > > Alex >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > On Sun, Jul 26, 2026 at 8:14 PM Yufei Gu < >> > >> [email protected]> >> > >> > > > wrote: >> > >> > > > > > > > >> > >> > > > > > > > Thanks for chiming in, JB! That's essentially the >> approach >> > >> in >> > >> > my >> > >> > > > > > PR(4984 >> > >> > > > > > > > <https://github.com/apache/polaris/pull/4984>), which >> > >> > corresponds >> > >> > > > to >> > >> > > > > > Option >> > >> > > > > > > > 2 in Robert's email. Are we OK moving foward with this? >> > >> > > > > > > > >> > >> > > > > > > > Per-realm routing is a potential use case, not the >> scope >> > of >> > >> > this >> > >> > > > > > effort. >> > >> > > > > > > > >> > >> > > > > > > > Yufei >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > On Sun, Jul 26, 2026 at 10:03 AM Jean-Baptiste Onofré < >> > >> > > > [email protected] >> > >> > > > > > > >> > >> > > > > > > > wrote: >> > >> > > > > > > > >> > >> > > > > > > > > Hi >> > >> > > > > > > > > >> > >> > > > > > > > > As already said, I still think Quarkus/Agroal stays >> the >> > >> > default >> > >> > > > and >> > >> > > > > > > > > single supported pool. I think adding a narrow, >> > JVM-only, >> > >> > > > documented >> > >> > > > > > > > > runtime driver escape hatch is right. >> > >> > > > > > > > > >> > >> > > > > > > > > Concretely, I would: >> > >> > > > > > > > > 1. Split the PR: runtime driver loading is a small, >> > >> > defensible >> > >> > > > > > > > > feature. The second pool, and per-realm routing are >> not >> > >> > imho, and >> > >> > > > > > > > > should not ride in on its coattails. >> > >> > > > > > > > > 2. I think per-realm routing is a way bigger >> > architectural >> > >> > > > decision. >> > >> > > > > > > > > 3. I think we should have an explicit agreement on >> the >> > >> > contract >> > >> > > > > > before >> > >> > > > > > > > > merging. >> > >> > > > > > > > > >> > >> > > > > > > > > The best would be to use Agroal, supporting a >> > >> runtime-mounted >> > >> > > > driver >> > >> > > > > > > > > in JVM mode. I will ping my Quarkus contacts to get >> the >> > >> > status of >> > >> > > > > > > > > that. >> > >> > > > > > > > > >> > >> > > > > > > > > Regards >> > >> > > > > > > > > JB >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > On Fri, Jul 24, 2026 at 10:24 PM Yufei Gu < >> > >> > [email protected]> >> > >> > > > > > wrote: >> > >> > > > > > > > > > >> > >> > > > > > > > > > Robert, >> > >> > > > > > > > > > >> > >> > > > > > > > > > I don't think these are hypothetical use cases. >> > They've >> > >> > been >> > >> > > > > > recurring >> > >> > > > > > > > > > design topics in Polaris for well over a year. >> > >> > > > > > > > > > >> > >> > > > > > > > > > - A JDBC driver supplied at runtime instead of >> > being >> > >> on >> > >> > the >> > >> > > > > > build time >> > >> > > > > > > > > > classpath is important for proprietary and >> Apache >> > >> > license >> > >> > > > > > incompatible >> > >> > > > > > > > > > drivers, such as MySQL. This has been discussed >> in >> > >> the >> > >> > > > > > community for >> > >> > > > > > > > > some >> > >> > > > > > > > > > time, and PR #4281[4] was blocked by this >> > limitation. >> > >> > > > > > > > > > - We've also discussed realm based datasource >> > routing >> > >> > > > > > repeatedly. For >> > >> > > > > > > > > > example: >> > >> > > > > > > > > > - Issue #3890 [1] tracks multi datasource >> > support >> > >> and >> > >> > > > > > explicitly >> > >> > > > > > > > > > discusses whether separation should be per >> realm >> > >> or >> > >> > by >> > >> > > > > > workload. >> > >> > > > > > > > > > - PR #1482 [2] proposed a concrete realm to >> > >> > datasource >> > >> > > > > > mapping. The >> > >> > > > > > > > > > discussion wasn't that the use case was >> invalid, >> > >> but >> > >> > that >> > >> > > > > > > > > Quarkus's build >> > >> > > > > > > > > > time datasource model made it difficult. >> > >> > > > > > > > > > - PR #3960 [3] introduced DataSourceResolver >> as >> > >> > > > groundwork >> > >> > > > > > for >> > >> > > > > > > > > > datasource routing. The feedback was to >> refine >> > the >> > >> > > > design, >> > >> > > > > > not >> > >> > > > > > > > > > that the use >> > >> > > > > > > > > > case itself shouldn't be supported. >> > >> > > > > > > > > > >> > >> > > > > > > > > > Given this history, I don't think the question is >> > >> whether >> > >> > these >> > >> > > > > > are real >> > >> > > > > > > > > > use cases. The project has already acknowledged >> them >> > >> > multiple >> > >> > > > > > times. >> > >> > > > > > > > > > >> > >> > > > > > > > > > Romain, thanks for the suggestion. I wish this >> could >> > be >> > >> > > > resolved >> > >> > > > > > upstream >> > >> > > > > > > > > > in Quarkus, but I don't have much hope, since build >> > time >> > >> > > > dependency >> > >> > > > > > > > > > resolution is one of Quarkus's core design >> principles. >> > >> > > > > > > > > > >> > >> > > > > > > > > > [1] https://github.com/apache/polaris/issues/3890 >> > >> > > > > > > > > > >> > >> > > > > > > > > > [2] https://github.com/apache/polaris/pull/1482 >> > >> > > > > > > > > > >> > >> > > > > > > > > > [3] https://github.com/apache/polaris/pull/3960 >> > >> > > > > > > > > > >> > >> > > > > > > > > > [4] https://github.com/apache/polaris/pull/4281 >> > >> > > > > > > > > > >> > >> > > > > > > > > > Yufei >> > >> > > > > > > > > > >> > >> > > > > > > > > > >> > >> > > > > > > > > > On Fri, Jul 24, 2026 at 8:54 AM Romain Manni-Bucau >> < >> > >> > > > > > > > > [email protected]> >> > >> > > > > > > > > > wrote: >> > >> > > > > > > > > > >> > >> > > > > > > > > > > If down stream users need to build anything >> instead >> > of >> > >> > mount >> > >> > > > the >> > >> > > > > > driver >> > >> > > > > > > > > > > then polaris becomes a lib and not a server, >> think >> > >> very >> > >> > few >> > >> > > > > > consumer >> > >> > > > > > > > > see it >> > >> > > > > > > > > > > this way nor would like it so I would favor >> runtime >> > >> > support. >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > The side note is that it is always better to not >> > >> compète >> > >> > with >> > >> > > > > > its own >> > >> > > > > > > > > stack >> > >> > > > > > > > > > > so maybe two push back to quarkus natively before >> > >> acting >> > >> > > > there. >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > Romain Manni-Bucau >> > >> > > > > > > > > > > @rmannibucau <https://x.com/rmannibucau> | .NET >> > Blog >> > >> > > > > > > > > > > <https://dotnetbirdie.github.io/> | Blog < >> > >> > > > > > > > > https://rmannibucau.github.io/> >> > >> > > > > > > > > > > | Old >> > >> > > > > > > > > > > Blog <http://rmannibucau.wordpress.com> | Github >> > >> > > > > > > > > > > <https://github.com/rmannibucau> | LinkedIn >> > >> > > > > > > > > > > <https://www.linkedin.com/in/rmannibucau> | Book >> > >> > > > > > > > > > > < >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > >> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > Javaccino founder (Java/.NET service - contact >> via >> > >> > linkedin) >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > Le ven. 24 juil. 2026, 17:50, Robert Stupp < >> > >> > [email protected]> >> > >> > > > a >> > >> > > > > > écrit : >> > >> > > > > > > > > > > >> > >> > > > > > > > > > > > Hi Yufei, >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > Option 1 would not provide either capability at >> > >> > runtime in >> > >> > > > the >> > >> > > > > > > > > upstream >> > >> > > > > > > > > > > > Polaris distribution. >> > >> > > > > > > > > > > > Optional drivers would be added through a >> > downstream >> > >> > build >> > >> > > > or >> > >> > > > > > > > > assembly, >> > >> > > > > > > > > > > and >> > >> > > > > > > > > > > > datasource creation would remain >> Quarkus-managed. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > That is intentional rather than a missing part >> of >> > >> > option 1. >> > >> > > > > > > > > > > > I mentioned runtime driver loading and >> per-realm >> > >> > routing >> > >> > > > > > because >> > >> > > > > > > > > they are >> > >> > > > > > > > > > > > the two use cases stated for the POC, not >> because >> > I >> > >> > think >> > >> > > > the >> > >> > > > > > > > > project has >> > >> > > > > > > > > > > > already agreed that Polaris itself must support >> > >> both. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > The concrete current ask I see is a viable path >> > for >> > >> > > > optional >> > >> > > > > > drivers >> > >> > > > > > > > > that >> > >> > > > > > > > > > > > Polaris cannot distribute in ASF releases. >> > >> > > > > > > > > > > > Runtime loading is one possible answer to that >> > ask. >> > >> > > > > > > > > > > > A downstream build or assembly is another. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > Dynamic per-realm datasource creation is a >> > separate >> > >> > future >> > >> > > > > > design. >> > >> > > > > > > > > > > > I do not think it should become an implicit >> > >> requirement >> > >> > > > for the >> > >> > > > > > > > > > > > optional-driver decision before its isolation, >> > >> > lifecycle, >> > >> > > > > > resource, >> > >> > > > > > > > > and >> > >> > > > > > > > > > > > operational contract has been discussed. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > So before evaluating option 1 against option >> 2's >> > >> > > > capabilities, >> > >> > > > > > I >> > >> > > > > > > > > think we >> > >> > > > > > > > > > > > need to decide whether runtime driver loading >> and >> > >> > > > Polaris-owned >> > >> > > > > > > > > dynamic >> > >> > > > > > > > > > > > datasource creation are project requirements. >> > >> > > > > > > > > > > > If both are requirements, option 1 is naturally >> > >> > excluded. >> > >> > > > > > > > > > > > If they are not, the POC's additional >> capabilities >> > >> > should >> > >> > > > not >> > >> > > > > > by >> > >> > > > > > > > > > > themselves >> > >> > > > > > > > > > > > become acceptance criteria for every >> alternative. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > My preference remains to preserve the >> > >> Quarkus-managed >> > >> > path >> > >> > > > and >> > >> > > > > > > > > address >> > >> > > > > > > > > > > the >> > >> > > > > > > > > > > > optional-driver ask as narrowly as possible. >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > Cheers, >> > >> > > > > > > > > > > > Robert >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > On Thu, Jul 23, 2026 at 8:59 PM Yufei Gu < >> > >> > > > [email protected] >> > >> > > > > > > >> > >> > > > > > > > > wrote: >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > That ask does not by itself justify moving >> all >> > >> > > > supported >> > >> > > > > > > > > deployments >> > >> > > > > > > > > > > > away >> > >> > > > > > > > > > > > > > from Quarkus datasource management. >> > >> > > > > > > > > > > > > > Doing so would make Polaris responsible for >> > >> > > > configuration >> > >> > > > > > > > > > > > compatibility, >> > >> > > > > > > > > > > > > > lifecycle, health, metrics, tracing, >> > >> > > > credentials-provider >> > >> > > > > > > > > > > integration, >> > >> > > > > > > > > > > > > > shutdown, upgrades, and the support matrix >> > >> > currently >> > >> > > > > > covered by >> > >> > > > > > > > > > > > Quarkus. >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > 1. Keep Quarkus-managed data-sources and >> > >> document >> > >> > the >> > >> > > > > > downstream >> > >> > > > > > > > > > > > > > build/assembly path for optional >> drivers. >> > >> > > > > > > > > > > > > > 2. Keep Quarkus-managed data-sources as the >> > >> > default and >> > >> > > > > > add a >> > >> > > > > > > > > > > > > deliberately >> > >> > > > > > > > > > > > > > limited JVM-only runtime-driver escape >> > hatch. >> > >> > > > > > > > > > > > > > 3. Replace Quarkus-managed data-sources >> > >> completely. >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > My current preference is ... (option1). >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > Robert, one thing I'm still unclear about is >> how >> > >> > option 1 >> > >> > > > > > would >> > >> > > > > > > > > support >> > >> > > > > > > > > > > > the >> > >> > > > > > > > > > > > > following use cases that you mentioned: >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > - Loading optional JDBC drivers at >> runtime. >> > >> > > > > > > > > > > > > - Creating datasources dynamically as a >> > >> building >> > >> > > > block for >> > >> > > > > > > > > future >> > >> > > > > > > > > > > per >> > >> > > > > > > > > > > > > realm routing. >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > My PR proposes option 2 because it addresses >> > these >> > >> > use >> > >> > > > cases >> > >> > > > > > while >> > >> > > > > > > > > > > > keeping >> > >> > > > > > > > > > > > > the existing Quarkus managed deployment path >> > >> > unchanged. >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > On Thu, Jul 23, 2026 at 8:59 AM Dmitri >> > >> Bourlatchkov < >> > >> > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > Hi Yufei, >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > I wonder why you chose Hikari initially in >> > your >> > >> PR >> > >> > > > 4984. >> > >> > > > > > > > > > > Understanding >> > >> > > > > > > > > > > > > that >> > >> > > > > > > > > > > > > > rationale could be helpful for this >> > discussion. >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > Thanks, >> > >> > > > > > > > > > > > > > Dmitri. >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > On Wed, Jul 22, 2026 at 11:28 PM Yufei Gu < >> > >> > > > > > [email protected]> >> > >> > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > Looks like we have two options at this >> > point: >> > >> > Hikari >> > >> > > > > > (Alex, >> > >> > > > > > > > > me) and >> > >> > > > > > > > > > > > > > Agroal >> > >> > > > > > > > > > > > > > > (Dmitri, JB, Romain). >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > Is there any further investigation we >> should >> > >> do >> > >> > > > before >> > >> > > > > > making a >> > >> > > > > > > > > > > > > decision? >> > >> > > > > > > > > > > > > > > Or are we ready to start a vote? >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at 10:15 PM Romain >> > >> > Manni-Bucau < >> > >> > > > > > > > > > > > > > [email protected] >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > Maybe add "is there more than one >> > committer" >> > >> > on the >> > >> > > > > > project >> > >> > > > > > > > > as a >> > >> > > > > > > > > > > > > > > criteria. >> > >> > > > > > > > > > > > > > > > Agroal is far to be my preferred pool >> but >> > it >> > >> > is as >> > >> > > > > > easy as >> > >> > > > > > > > > others >> > >> > > > > > > > > > > > in >> > >> > > > > > > > > > > > > > > terms >> > >> > > > > > > > > > > > > > > > of config starting from properties >> ([1]) >> > and >> > >> > using >> > >> > > > its >> > >> > > > > > > > > listeners. >> > >> > > > > > > > > > > > > > > > Also note that I assume all properties >> > will >> > >> > not be >> > >> > > > > > exposed >> > >> > > > > > > > > but >> > >> > > > > > > > > > > > > > abstracted >> > >> > > > > > > > > > > > > > > > by polaris configuration (potentially >> > >> enabling >> > >> > a >> > >> > > > switch >> > >> > > > > > > > > later or >> > >> > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > multipool support like in Apache >> TomEE) so >> > >> > maybe >> > >> > > > it is >> > >> > > > > > the >> > >> > > > > > > > > first >> > >> > > > > > > > > > > > > thing >> > >> > > > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > define, the needed properties and >> > callbacks? >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > [1] >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > >> https://github.com/agroal/agroal/blob/517fd36ab0cf1faebaae7d57a55c788d499a4c88/agroal-api/src/main/java/io/agroal/api/configuration/supplier/AgroalPropertiesReader.java#L56 >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > Romain Manni-Bucau >> > >> > > > > > > > > > > > > > > > @rmannibucau < >> https://x.com/rmannibucau> >> > | >> > >> > .NET >> > >> > > > Blog >> > >> > > > > > > > > > > > > > > > <https://dotnetbirdie.github.io/> | >> Blog >> > < >> > >> > > > > > > > > > > > > > https://rmannibucau.github.io/ >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > | Old >> > >> > > > > > > > > > > > > > > > Blog <http://rmannibucau.wordpress.com> >> | >> > >> > Github >> > >> > > > > > > > > > > > > > > > <https://github.com/rmannibucau> | >> > LinkedIn >> > >> > > > > > > > > > > > > > > > < >> https://www.linkedin.com/in/rmannibucau> >> > | >> > >> > Book >> > >> > > > > > > > > > > > > > > > < >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > >> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > Javaccino founder (Java/.NET service - >> > >> contact >> > >> > via >> > >> > > > > > linkedin) >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > Le jeu. 16 juil. 2026 à 22:18, >> Alexandre >> > >> Dutra >> > >> > < >> > >> > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > écrit : >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > Hi all, >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > I don't think the actual pool >> > >> implementation >> > >> > > > matters >> > >> > > > > > much, >> > >> > > > > > > > > but >> > >> > > > > > > > > > > I >> > >> > > > > > > > > > > > > > would >> > >> > > > > > > > > > > > > > > > > weigh in some important criteria >> before >> > >> > choosing: >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > - Is it easily configurable? >> > >> > > > > > > > > > > > > > > > > - Is it easily instrumentable? >> > >> > > > > > > > > > > > > > > > > - Is it well documented & maintained? >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > While Agroal is the de facto choice >> for >> > >> > Quarkus >> > >> > > > > > (it's a >> > >> > > > > > > > > JBoss >> > >> > > > > > > > > > > > > lib), I >> > >> > > > > > > > > > > > > > > > > am not sure it outperforms Hikari for >> > all >> > >> the >> > >> > > > > > criteria >> > >> > > > > > > > > above. >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > Thanks, >> > >> > > > > > > > > > > > > > > > > Alex >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at 6:22 PM Yufei >> > Gu < >> > >> > > > > > > > > [email protected] >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > Thanks everyone for chiming in. >> Agroal >> > >> is a >> > >> > > > good >> > >> > > > > > option >> > >> > > > > > > > > as >> > >> > > > > > > > > > > > well. >> > >> > > > > > > > > > > > > It >> > >> > > > > > > > > > > > > > > > looks >> > >> > > > > > > > > > > > > > > > > > like we're reaching consensus on >> > direct >> > >> > > > datasource >> > >> > > > > > > > > management >> > >> > > > > > > > > > > > at >> > >> > > > > > > > > > > > > > > > runtime. >> > >> > > > > > > > > > > > > > > > > > I'll start working on the >> > implementation >> > >> > soon. >> > >> > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at 4:16 AM >> > >> > Jean-Baptiste >> > >> > > > > > Onofré < >> > >> > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > Hi all, >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > I agree that direct datasource >> > >> > management at >> > >> > > > > > runtime >> > >> > > > > > > > > is a >> > >> > > > > > > > > > > > > better >> > >> > > > > > > > > > > > > > > > > > > approach than relying on >> > >> > quarkus-datasource, >> > >> > > > > > which >> > >> > > > > > > > > > > currently >> > >> > > > > > > > > > > > > > > requires >> > >> > > > > > > > > > > > > > > > > > > build-time dependencies. >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > However, we can stay within the >> > >> Quarkus >> > >> > > > > > ecosystem and >> > >> > > > > > > > > avoid >> > >> > > > > > > > > > > > > > > > > > > introducing new dependencies by >> > using >> > >> > Agroal, >> > >> > > > > > which is >> > >> > > > > > > > > > > > already >> > >> > > > > > > > > > > > > > > > > > > included in our dependencies. >> This >> > >> also >> > >> > keeps >> > >> > > > > > the door >> > >> > > > > > > > > open >> > >> > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > > > > combining it with Panache in the >> > >> future, >> > >> > > > should >> > >> > > > > > we >> > >> > > > > > > > > decide >> > >> > > > > > > > > > > to >> > >> > > > > > > > > > > > do >> > >> > > > > > > > > > > > > > so. >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > Regards, >> > >> > > > > > > > > > > > > > > > > > > JB >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at 1:28 AM >> > Yufei >> > >> Gu >> > >> > < >> > >> > > > > > > > > > > > [email protected] >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > If our goal is to transition >> > >> > entirely to >> > >> > > > a >> > >> > > > > > > > > > > > "runtime-driven" >> > >> > > > > > > > > > > > > > > > > > > architecture, >> > >> > > > > > > > > > > > > > > > > > > > we should commit to it >> completely >> > by >> > >> > fully >> > >> > > > > > removing >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > > io.quarkus:quarkus-datasource >> > >> > > > > > > > > > > > > > > > > > > > dependency and switching to >> Hikari >> > >> > > > > > unconditionally. >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > Good point, Alex! I'm open to >> > that. >> > >> If >> > >> > the >> > >> > > > > > community >> > >> > > > > > > > > > > > agrees, >> > >> > > > > > > > > > > > > I >> > >> > > > > > > > > > > > > > > can >> > >> > > > > > > > > > > > > > > > > make >> > >> > > > > > > > > > > > > > > > > > > > that change. >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > Romain, I chose Hikari because >> it >> > is >> > >> > lean, >> > >> > > > > > fast, >> > >> > > > > > > > > simple. >> > >> > > > > > > > > > > > I'm >> > >> > > > > > > > > > > > > > open >> > >> > > > > > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > > > > > alternatives like dbcp2 if its >> > >> > evaluation >> > >> > > > > > proves >> > >> > > > > > > > > better. >> > >> > > > > > > > > > > As >> > >> > > > > > > > > > > > > you >> > >> > > > > > > > > > > > > > > > said, >> > >> > > > > > > > > > > > > > > > > > > both >> > >> > > > > > > > > > > > > > > > > > > > have pros and cons. >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > On Wed, Jul 15, 2026 at >> 11:03 AM >> > >> Romain >> > >> > > > > > Manni-Bucau < >> > >> > > > > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > Dumb question: why hikari? it >> > has >> > >> > some >> > >> > > > > > issues like >> > >> > > > > > > > > not >> > >> > > > > > > > > > > > > > > respecting >> > >> > > > > > > > > > > > > > > > > its >> > >> > > > > > > > > > > > > > > > > > > conf >> > >> > > > > > > > > > > > > > > > > > > > > intentionally (max size in >> > >> > particular is >> > >> > > > the >> > >> > > > > > one >> > >> > > > > > > > > which >> > >> > > > > > > > > > > > > hurts >> > >> > > > > > > > > > > > > > > > since >> > >> > > > > > > > > > > > > > > > > you >> > >> > > > > > > > > > > > > > > > > > > > > overconsume for a moment your >> > >> > database >> > >> > > > > > connections >> > >> > > > > > > > > == >> > >> > > > > > > > > > > > > prevent >> > >> > > > > > > > > > > > > > > > some >> > >> > > > > > > > > > > > > > > > > > > services >> > >> > > > > > > > > > > > > > > > > > > > > to connect when scaled and >> tuned >> > >> at >> > >> > max >> > >> > > > > > count), >> > >> > > > > > > > > there >> > >> > > > > > > > > > > is >> > >> > > > > > > > > > > > no >> > >> > > > > > > > > > > > > > > > silver >> > >> > > > > > > > > > > > > > > > > > > bullet >> > >> > > > > > > > > > > > > > > > > > > > > but something like dbcp2 can >> be >> > >> neat >> > >> > to >> > >> > > > start >> > >> > > > > > > > > _there_ >> > >> > > > > > > > > > > if >> > >> > > > > > > > > > > > > > agroal >> > >> > > > > > > > > > > > > > > > is >> > >> > > > > > > > > > > > > > > > > not >> > >> > > > > > > > > > > > > > > > > > > used >> > >> > > > > > > > > > > > > > > > > > > > > as a base no - that said I >> dont >> > >> see >> > >> > why >> > >> > > > > > switching >> > >> > > > > > > > > at >> > >> > > > > > > > > > > all, >> > >> > > > > > > > > > > > > > > agroal >> > >> > > > > > > > > > > > > > > > > can be >> > >> > > > > > > > > > > > > > > > > > > > > used without build time >> > >> integration >> > >> > and >> > >> > > > stay >> > >> > > > > > > > > consistent >> > >> > > > > > > > > > > > > with >> > >> > > > > > > > > > > > > > it >> > >> > > > > > > > > > > > > > > > if >> > >> > > > > > > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > > > > day it >> > >> > > > > > > > > > > > > > > > > > > > > comes back? >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > Romain Manni-Bucau >> > >> > > > > > > > > > > > > > > > > > > > > @rmannibucau < >> > >> > https://x.com/rmannibucau> >> > >> > > > | >> > >> > > > > > .NET >> > >> > > > > > > > > Blog >> > >> > > > > > > > > > > > > > > > > > > > > < >> > https://dotnetbirdie.github.io/> >> > >> | >> > >> > > > Blog < >> > >> > > > > > > > > > > > > > > > > > > https://rmannibucau.github.io/> >> > >> > > > > > > > > > > > > > > > > > > > > | Old >> > >> > > > > > > > > > > > > > > > > > > > > Blog < >> > >> > http://rmannibucau.wordpress.com> >> > >> > > > | >> > >> > > > > > Github >> > >> > > > > > > > > > > > > > > > > > > > > < >> https://github.com/rmannibucau >> > > >> > >> | >> > >> > > > LinkedIn >> > >> > > > > > > > > > > > > > > > > > > > > < >> > >> > https://www.linkedin.com/in/rmannibucau> >> > >> > > > | >> > >> > > > > > Book >> > >> > > > > > > > > > > > > > > > > > > > > < >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > >> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > Javaccino founder (Java/.NET >> > >> service >> > >> > - >> > >> > > > > > contact via >> > >> > > > > > > > > > > > > linkedin) >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > Le mer. 15 juil. 2026 à >> 19:13, >> > >> > Alexandre >> > >> > > > > > Dutra < >> > >> > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > > > > > > écrit : >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > Hi all, >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > If jdbc-url is set, >> Polaris >> > >> > creates >> > >> > > > and >> > >> > > > > > owns >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > Hikari >> > >> > > > > > > > > > > > > > > > > > > datasource. If >> > >> > > > > > > > > > > > > > > > > > > > > > it is not set, we keep >> using >> > the >> > >> > > > existing >> > >> > > > > > Quarkus >> > >> > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > path. >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > I have strong reservations >> > >> > regarding >> > >> > > > this >> > >> > > > > > design. >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > Alternating between a >> Hikari >> > >> pool >> > >> > and >> > >> > > > an >> > >> > > > > > Agroal >> > >> > > > > > > > > pool >> > >> > > > > > > > > > > > > > > depending >> > >> > > > > > > > > > > > > > > > > on the >> > >> > > > > > > > > > > > > > > > > > > > > > configuration introduces >> > >> > unnecessary >> > >> > > > > > complexity >> > >> > > > > > > > > and >> > >> > > > > > > > > > > > > > potential >> > >> > > > > > > > > > > > > > > > > > > > > > confusion. A major >> drawback is >> > >> that >> > >> > > > bugs, >> > >> > > > > > > > > performance >> > >> > > > > > > > > > > > > > > > > > > characteristics, >> > >> > > > > > > > > > > > > > > > > > > > > > and configuration issues >> will >> > >> vary >> > >> > > > across >> > >> > > > > > > > > deployments >> > >> > > > > > > > > > > > > > purely >> > >> > > > > > > > > > > > > > > > > based on >> > >> > > > > > > > > > > > > > > > > > > > > > the underlying connection >> pool >> > >> in >> > >> > use. >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > If our goal is to >> transition >> > >> > entirely >> > >> > > > to a >> > >> > > > > > > > > > > > > "runtime-driven" >> > >> > > > > > > > > > > > > > > > > > > > > > architecture, we should >> commit >> > >> to >> > >> > it >> > >> > > > > > completely >> > >> > > > > > > > > by >> > >> > > > > > > > > > > > fully >> > >> > > > > > > > > > > > > > > > > removing the >> > >> > > > > > > > > > > > > > > > > > > > > > >> io.quarkus:quarkus-datasource >> > >> > > > dependency >> > >> > > > > > and >> > >> > > > > > > > > > > switching >> > >> > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > Hikari >> > >> > > > > > > > > > > > > > > > > > > > > > unconditionally. >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > Thanks, >> > >> > > > > > > > > > > > > > > > > > > > > > Alex >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, 2026 at >> 7:10 PM >> > >> > Yufei >> > >> > > > Gu < >> > >> > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > Hi Robert, JB, Dmitri, >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > Thanks, this feedback >> makes >> > >> > sense. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > There are really two >> > >> motivations >> > >> > > > here: >> > >> > > > > > runtime >> > >> > > > > > > > > > > > loading >> > >> > > > > > > > > > > > > of >> > >> > > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > drivers, >> > >> > > > > > > > > > > > > > > > > > > > > > and >> > >> > > > > > > > > > > > > > > > > > > > > > > dynamic datasource >> creation. >> > >> The >> > >> > > > former >> > >> > > > > > is >> > >> > > > > > > > > useful >> > >> > > > > > > > > > > for >> > >> > > > > > > > > > > > > ASF >> > >> > > > > > > > > > > > > > > > > binaries >> > >> > > > > > > > > > > > > > > > > > > > > where >> > >> > > > > > > > > > > > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > > > > > > > > driver is supplied after >> > >> Polaris >> > >> > is >> > >> > > > > > built. The >> > >> > > > > > > > > > > latter >> > >> > > > > > > > > > > > > is >> > >> > > > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > > building >> > >> > > > > > > > > > > > > > > > > > > > > block >> > >> > > > > > > > > > > > > > > > > > > > > > > for future per realm >> > >> datasources. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > I'm OK that >> Quarkus/Agroal >> > >> > remains >> > >> > > > the >> > >> > > > > > default >> > >> > > > > > > > > for >> > >> > > > > > > > > > > > > > > supported >> > >> > > > > > > > > > > > > > > > > > > backends. >> > >> > > > > > > > > > > > > > > > > > > > > > > That's already part of >> the >> > >> POC. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > The gap I'm trying to >> > address >> > >> is >> > >> > > > where >> > >> > > > > > those >> > >> > > > > > > > > > > > > assumptions >> > >> > > > > > > > > > > > > > no >> > >> > > > > > > > > > > > > > > > > longer >> > >> > > > > > > > > > > > > > > > > > > > > hold. >> > >> > > > > > > > > > > > > > > > > > > > > > > Quarkus can select from >> > >> > predefined >> > >> > > > > > > > > datasources, but >> > >> > > > > > > > > > > > > they >> > >> > > > > > > > > > > > > > > > still >> > >> > > > > > > > > > > > > > > > > > > need to >> > >> > > > > > > > > > > > > > > > > > > > > be >> > >> > > > > > > > > > > > > > > > > > > > > > > configured ahead of >> time. It >> > >> > doesn't >> > >> > > > > > currently >> > >> > > > > > > > > > > > provide >> > >> > > > > > > > > > > > > > > > Polaris >> > >> > > > > > > > > > > > > > > > > > > with a >> > >> > > > > > > > > > > > > > > > > > > > > > clean >> > >> > > > > > > > > > > > > > > > > > > > > > > way to create new >> > datasources >> > >> > > > > > dynamically. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > So my intent is for the >> > >> contract >> > >> > to >> > >> > > > be: >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > - Quarkus/Agroal >> remains >> > >> the >> > >> > > > default. >> > >> > > > > > > > > > > > > > > > > > > > > > > - Polaris managed JDBC >> > is a >> > >> > JVM >> > >> > > > only >> > >> > > > > > escape >> > >> > > > > > > > > > > hatch >> > >> > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > runtime >> > >> > > > > > > > > > > > > > > > > > > > > provided >> > >> > > > > > > > > > > > > > > > > > > > > > > drivers and >> dynamically >> > >> > created >> > >> > > > > > datasources. >> > >> > > > > > > > > > > > > > > > > > > > > > > - Polaris owns the >> pool >> > and >> > >> > driver >> > >> > > > > > > > > lifecycle on >> > >> > > > > > > > > > > > that >> > >> > > > > > > > > > > > > > > path. >> > >> > > > > > > > > > > > > > > > > > > > > > > - Per realm datasource >> > >> routing >> > >> > > > should >> > >> > > > > > be a >> > >> > > > > > > > > > > > separate >> > >> > > > > > > > > > > > > > > design >> > >> > > > > > > > > > > > > > > > > > > > > discussion. >> > >> > > > > > > > > > > > > > > > > > > > > > > It's out of scope for >> > this >> > >> > POC. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > JB, I agree we should >> > continue >> > >> > using >> > >> > > > > > Quarkus >> > >> > > > > > > > > JDBC >> > >> > > > > > > > > > > > > drivers >> > >> > > > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > > > > backends >> > >> > > > > > > > > > > > > > > > > > > > > > > we support directly. This >> > >> path is >> > >> > > > mainly >> > >> > > > > > for >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > cases >> > >> > > > > > > > > > > > > > > > outside >> > >> > > > > > > > > > > > > > > > > that >> > >> > > > > > > > > > > > > > > > > > > > > > model. >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, 2026 at >> > 8:03 AM >> > >> > > > > > Jean-Baptiste >> > >> > > > > > > > > > > Onofré < >> > >> > > > > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > Hi >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > Regarding JDBC drivers >> in >> > >> the >> > >> > > > Quarkus >> > >> > > > > > > > > ecosystem >> > >> > > > > > > > > > > (in >> > >> > > > > > > > > > > > > > > > > > > > > quarkus-extensions >> > >> > > > > > > > > > > > > > > > > > > > > > or >> > >> > > > > > > > > > > > > > > > > > > > > > > > quarkiverse), I think >> we >> > can >> > >> > just >> > >> > > > > > leverage >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > > quarkus >> > >> > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > drivers. >> > >> > > > > > > > > > > > > > > > > > > > > > > > Using another loading >> > >> mechanism >> > >> > > > could >> > >> > > > > > be >> > >> > > > > > > > > > > > problematic >> > >> > > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > future >> > >> > > > > > > > > > > > > > > > > > > > > > features >> > >> > > > > > > > > > > > > > > > > > > > > > > > (imagine with we want >> to >> > try >> > >> > > > native app >> > >> > > > > > > > > buld). >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > What is the problem >> with >> > >> using >> > >> > the >> > >> > > > > > Quarkus >> > >> > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > drivers? >> > >> > > > > > > > > > > > > > > > > > > > > > > > I remember that we >> agreed >> > >> to be >> > >> > > > > > opinionated >> > >> > > > > > > > > about >> > >> > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > backends >> > >> > > > > > > > > > > > > > > > > > > > > we >> > >> > > > > > > > > > > > > > > > > > > > > > want >> > >> > > > > > > > > > > > > > > > > > > > > > > > to support, so we can >> be >> > >> > > > opinionated >> > >> > > > > > about >> > >> > > > > > > > > the >> > >> > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > drivers >> > >> > > > > > > > > > > > > > > > > :) >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > I'm not against it, >> but I >> > >> would >> > >> > > > like to >> > >> > > > > > > > > > > understand >> > >> > > > > > > > > > > > > > better >> > >> > > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > > > > rationale. >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > Regards >> > >> > > > > > > > > > > > > > > > > > > > > > > > JB >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, 2026 at >> > >> 3:03 PM >> > >> > > > Robert >> > >> > > > > > Stupp < >> > >> > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > Thanks for pushing >> this >> > >> > forward. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > I agree that >> > >> runtime-provided >> > >> > > > JDBC >> > >> > > > > > drivers >> > >> > > > > > > > > are >> > >> > > > > > > > > > > a >> > >> > > > > > > > > > > > > real >> > >> > > > > > > > > > > > > > > > > problem >> > >> > > > > > > > > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > > > > > > > solve. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > For ASF-distributed >> > >> binaries, >> > >> > > > there >> > >> > > > > > are >> > >> > > > > > > > > valid >> > >> > > > > > > > > > > > cases >> > >> > > > > > > > > > > > > > > where >> > >> > > > > > > > > > > > > > > > > > > Polaris >> > >> > > > > > > > > > > > > > > > > > > > > > should >> > >> > > > > > > > > > > > > > > > > > > > > > > > > not bundle a driver, >> but >> > >> > > > operators >> > >> > > > > > still >> > >> > > > > > > > > need a >> > >> > > > > > > > > > > > way >> > >> > > > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > > > > provide >> > >> > > > > > > > > > > > > > > > > > > one. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > My concern is that >> this >> > PR >> > >> > does >> > >> > > > more >> > >> > > > > > than >> > >> > > > > > > > > load >> > >> > > > > > > > > > > > > > runtime >> > >> > > > > > > > > > > > > > > > > driver >> > >> > > > > > > > > > > > > > > > > > > jars. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > It also introduces a >> > >> second >> > >> > > > > > datasource >> > >> > > > > > > > > stack: >> > >> > > > > > > > > > > > > > > > > Quarkus/Agroal >> > >> > > > > > > > > > > > > > > > > > > via >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> `quarkus.datasource.*` >> > on >> > >> one >> > >> > > > side, >> > >> > > > > > and >> > >> > > > > > > > > > > > > Polaris-owned >> > >> > > > > > > > > > > > > > > > > Hikari >> > >> > > > > > > > > > > > > > > > > > > pools >> > >> > > > > > > > > > > > > > > > > > > > > > via >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > `polaris.persistence.relational.jdbc.*` on >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > > other. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > Those two paths look >> > >> similar >> > >> > to >> > >> > > > > > operators, >> > >> > > > > > > > > but >> > >> > > > > > > > > > > > they >> > >> > > > > > > > > > > > > > do >> > >> > > > > > > > > > > > > > > > not >> > >> > > > > > > > > > > > > > > > > > > have the >> > >> > > > > > > > > > > > > > > > > > > > > > same >> > >> > > > > > > > > > > > > > > > > > > > > > > > > contract. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > The Quarkus path >> brings >> > >> > > > > > Quarkus/Agroal >> > >> > > > > > > > > > > lifecycle, >> > >> > > > > > > > > > > > > > > health, >> > >> > > > > > > > > > > > > > > > > > > metrics, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > credentials/secret-manager >> > >> > > > > > integrations, >> > >> > > > > > > > > and >> > >> > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > broader >> > >> > > > > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > > > > > > config >> > >> > > > > > > > > > > > > > > > > > > > > > > > > surface; those are >> all >> > >> > important >> > >> > > > for >> > >> > > > > > > > > operators. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > The Polaris-managed >> path >> > >> > means >> > >> > > > > > Polaris owns >> > >> > > > > > > > > > > pool >> > >> > > > > > > > > > > > > > > > lifecycle, >> > >> > > > > > > > > > > > > > > > > > > driver >> > >> > > > > > > > > > > > > > > > > > > > > > > > loading, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > classloader behavior, >> > and >> > >> a >> > >> > > > separate >> > >> > > > > > > > > > > > config/support >> > >> > > > > > > > > > > > > > > > > surface. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > So I do not think >> this >> > is >> > >> > ready >> > >> > > > to >> > >> > > > > > move >> > >> > > > > > > > > forward >> > >> > > > > > > > > > > > as >> > >> > > > > > > > > > > > > > just >> > >> > > > > > > > > > > > > > > > > > > “another >> > >> > > > > > > > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > > > > > > > configuration >> option.” >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > Before I would >> consider >> > >> this >> > >> > > > > > mergeable, I >> > >> > > > > > > > > think >> > >> > > > > > > > > > > > we >> > >> > > > > > > > > > > > > > need >> > >> > > > > > > > > > > > > > > > > > > explicit >> > >> > > > > > > > > > > > > > > > > > > > > > > > agreement >> > >> > > > > > > > > > > > > > > > > > > > > > > > > on the contract: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > 1. Is Polaris-managed >> > JDBC >> > >> > only a >> > >> > > > > > narrow >> > >> > > > > > > > > escape >> > >> > > > > > > > > > > > > hatch >> > >> > > > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > > > > > > > > runtime-provided >> > >> > > > > > > > > > > > > > > > > > > > > > > > > driver jars, or a >> peer >> > >> > supported >> > >> > > > > > datasource >> > >> > > > > > > > > > > path? >> > >> > > > > > > > > > > > > > > > > > > > > > > > > 2. Which >> Quarkus/Agroal >> > >> > > > integrations >> > >> > > > > > are >> > >> > > > > > > > > > > > > > intentionally >> > >> > > > > > > > > > > > > > > > not >> > >> > > > > > > > > > > > > > > > > > > > > available >> > >> > > > > > > > > > > > > > > > > > > > > > on >> > >> > > > > > > > > > > > > > > > > > > > > > > > > that path? >> > >> > > > > > > > > > > > > > > > > > > > > > > > > 3. What lifecycle >> does >> > >> > Polaris >> > >> > > > own >> > >> > > > > > for >> > >> > > > > > > > > pools, >> > >> > > > > > > > > > > > > loaded >> > >> > > > > > > > > > > > > > > > > drivers, >> > >> > > > > > > > > > > > > > > > > > > > > > shutdown, >> > >> > > > > > > > > > > > > > > > > > > > > > > > and >> > >> > > > > > > > > > > > > > > > > > > > > > > > > driver upgrades? >> > >> > > > > > > > > > > > > > > > > > > > > > > > > 4. Is this meant to >> be >> > >> part >> > >> > of >> > >> > > > future >> > >> > > > > > > > > per-realm >> > >> > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > routing? >> > >> > > > > > > > > > > > > > > > > > > > > > If >> > >> > > > > > > > > > > > > > > > > > > > > > > > so, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > I think that needs a >> > >> separate >> > >> > > > design >> > >> > > > > > > > > > > discussion. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > Until that contract >> is >> > >> > agreed, I >> > >> > > > do >> > >> > > > > > not >> > >> > > > > > > > > think >> > >> > > > > > > > > > > we >> > >> > > > > > > > > > > > > > should >> > >> > > > > > > > > > > > > > > > > present >> > >> > > > > > > > > > > > > > > > > > > > > this >> > >> > > > > > > > > > > > > > > > > > > > > > as a >> > >> > > > > > > > > > > > > > > > > > > > > > > > > second supported JDBC >> > >> path or >> > >> > > > treat >> > >> > > > > > the PR >> > >> > > > > > > > > as >> > >> > > > > > > > > > > > > > mergeable >> > >> > > > > > > > > > > > > > > > > with >> > >> > > > > > > > > > > > > > > > > > > > > > > > documentation >> > >> > > > > > > > > > > > > > > > > > > > > > > > > updates alone. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, 2026 >> at >> > >> > 3:48 AM >> > >> > > > Dmitri >> > >> > > > > > > > > > > > Bourlatchkov >> > >> > > > > > > > > > > > > < >> > >> > > > > > > > > > > > > > > > > > > > > [email protected] >> > >> > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Hi Yufei, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Thanks for the >> update. >> > >> That >> > >> > > > > > approach to >> > >> > > > > > > > > > > loading >> > >> > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > driver >> > >> > > > > > > > > > > > > > > > > > > can >> > >> > > > > > > > > > > > > > > > > > > > > > work, I >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > think. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > However, I'm not >> sure >> > >> > whether >> > >> > > > it is >> > >> > > > > > > > > > > preferable >> > >> > > > > > > > > > > > > to a >> > >> > > > > > > > > > > > > > > > > proper >> > >> > > > > > > > > > > > > > > > > > > > > Quarkus >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > downstream build. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Adding jars to >> Polaris >> > >> > still >> > >> > > > > > requires >> > >> > > > > > > > > some >> > >> > > > > > > > > > > form >> > >> > > > > > > > > > > > > of >> > >> > > > > > > > > > > > > > > > > downstream >> > >> > > > > > > > > > > > > > > > > > > > > > build, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > whether it is >> > tar-based >> > >> or >> > >> > > > > > docker-based. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Performing a full >> > >> Quarkus >> > >> > build >> > >> > > > > > > > > downstream >> > >> > > > > > > > > > > > offers >> > >> > > > > > > > > > > > > > > some >> > >> > > > > > > > > > > > > > > > > > > > > advantages, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > though: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * Integration tests >> > can >> > >> be >> > >> > > > > > executed with >> > >> > > > > > > > > the >> > >> > > > > > > > > > > > > > specific >> > >> > > > > > > > > > > > > > > > > driver. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * Dependencies are >> > >> > resolved / >> > >> > > > > > validated >> > >> > > > > > > > > at >> > >> > > > > > > > > > > > build >> > >> > > > > > > > > > > > > > > time. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * Quarkus manages >> the >> > >> > > > DataSource >> > >> > > > > > > > > lifecycle. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > I wonder what other >> > >> people >> > >> > > > think >> > >> > > > > > too. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Cheers, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Dmitri. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Jul 6, >> 2026 at >> > >> > 9:22 PM >> > >> > > > > > Yufei Gu < >> > >> > > > > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Hi Dmitri, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Good catch. The >> > >> initial >> > >> > POC >> > >> > > > only >> > >> > > > > > > > > proved the >> > >> > > > > > > > > > > > > > driver >> > >> > > > > > > > > > > > > > > > > works if >> > >> > > > > > > > > > > > > > > > > > > > > it’s >> > >> > > > > > > > > > > > > > > > > > > > > > > > > already >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > visible to the >> > runtime >> > >> > > > > > classloader. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > I updated the >> > approach >> > >> > so the >> > >> > > > > > > > > > > Polaris-managed >> > >> > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > > > can >> > >> > > > > > > > > > > > > > > > > > > > > > > > load >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > driver jars >> > explicitly >> > >> > before >> > >> > > > > > creating >> > >> > > > > > > > > > > > Hikari. >> > >> > > > > > > > > > > > > In >> > >> > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > binary >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > distribution, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > users can drop >> jars >> > >> into: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> server/jdbc-drivers/ >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > For admin-tool >> > >> > > > bootstrap/purge, >> > >> > > > > > the >> > >> > > > > > > > > same >> > >> > > > > > > > > > > > > applies >> > >> > > > > > > > > > > > > > > > under: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> admin/jdbc-drivers/ >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > They can also >> > override >> > >> > the >> > >> > > > > > location >> > >> > > > > > > > > with: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > >> polaris.persistence.relational.jdbc.driver-directory=/path/to/jdbc-drivers >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > So this does not >> > >> depend >> > >> > on >> > >> > > > > > adding jars >> > >> > > > > > > > > to >> > >> > > > > > > > > > > > > > lib/main >> > >> > > > > > > > > > > > > > > or >> > >> > > > > > > > > > > > > > > > > > > > > rebuilding >> > >> > > > > > > > > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Quarkus fast-jar >> > >> > metadata. >> > >> > > > The >> > >> > > > > > jar just >> > >> > > > > > > > > > > needs >> > >> > > > > > > > > > > > > to >> > >> > > > > > > > > > > > > > be >> > >> > > > > > > > > > > > > > > > > present >> > >> > > > > > > > > > > > > > > > > > > > > > before >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Polaris >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > creates the >> > >> datasource. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Jul 6, >> 2026 >> > at >> > >> > > > 3:25 PM >> > >> > > > > > Dmitri >> > >> > > > > > > > > > > > > > Bourlatchkov >> > >> > > > > > > > > > > > > > > < >> > >> > > > > > > > > > > > > > > > > > > > > > [email protected] >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi Yufei, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Could you >> provide >> > >> some >> > >> > more >> > >> > > > > > details >> > >> > > > > > > > > about >> > >> > > > > > > > > > > > how >> > >> > > > > > > > > > > > > > > > > exactly a >> > >> > > > > > > > > > > > > > > > > > > 3rd >> > >> > > > > > > > > > > > > > > > > > > > > > party >> > >> > > > > > > > > > > > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > driver is >> > >> incorporated >> > >> > into >> > >> > > > > > Polaris? >> > >> > > > > > > > > I >> > >> > > > > > > > > > > > might >> > >> > > > > > > > > > > > > > have >> > >> > > > > > > > > > > > > > > > > missed >> > >> > > > > > > > > > > > > > > > > > > that >> > >> > > > > > > > > > > > > > > > > > > > > > in >> > >> > > > > > > > > > > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > PR, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > but it was not >> > >> > apparent to >> > >> > > > me >> > >> > > > > > at >> > >> > > > > > > > > first >> > >> > > > > > > > > > > > > reading. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Dmitri. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Jul 6, >> > 2026 >> > >> at >> > >> > > > 6:22 PM >> > >> > > > > > Yufei >> > >> > > > > > > > > Gu < >> > >> > > > > > > > > > > > > > > > > > > > > [email protected]> >> > >> > > > > > > > > > > > > > > > > > > > > > > > > wrote: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi all, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > I put >> together a >> > >> > small >> > >> > > > POC( >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > https://github.com/apache/polaris/pull/4984 >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > ) >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > the >> relational >> > >> JDBC >> > >> > > > backend >> > >> > > > > > so >> > >> > > > > > > > > Polaris >> > >> > > > > > > > > > > > can >> > >> > > > > > > > > > > > > > > create >> > >> > > > > > > > > > > > > > > > > its >> > >> > > > > > > > > > > > > > > > > > > own >> > >> > > > > > > > > > > > > > > > > > > > > > JDBC >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > from config, >> > >> instead >> > >> > of >> > >> > > > > > always >> > >> > > > > > > > > relying >> > >> > > > > > > > > > > on >> > >> > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > Quarkus >> > >> > > > > > > > > > > > > > > > > > > > > > datasource. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > The config >> looks >> > >> like >> > >> > > > this: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > >> polaris.persistence.relational.jdbc.jdbc-url=jdbc:postgresql://... >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > >> > >> > polaris.persistence.relational.jdbc.driver=org.postgresql.Driver >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> polaris.persistence.relational.jdbc.username=... >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> polaris.persistence.relational.jdbc.password=... >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > If jdbc-url >> is >> > >> set, >> > >> > > > Polaris >> > >> > > > > > > > > creates and >> > >> > > > > > > > > > > > > owns >> > >> > > > > > > > > > > > > > > the >> > >> > > > > > > > > > > > > > > > > Hikari >> > >> > > > > > > > > > > > > > > > > > > > > > > > datasource. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > If >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > it >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > is not set, >> we >> > >> keep >> > >> > > > using the >> > >> > > > > > > > > existing >> > >> > > > > > > > > > > > > > Quarkus >> > >> > > > > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > > > > path. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > I also added >> > tests >> > >> > > > showing >> > >> > > > > > that: >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - We can >> > create >> > >> > > > > > datasources >> > >> > > > > > > > > > > > dynamically >> > >> > > > > > > > > > > > > > from >> > >> > > > > > > > > > > > > > > > > config >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - >> Different >> > >> > > > > > configurations can >> > >> > > > > > > > > > > create >> > >> > > > > > > > > > > > > > > > > independent >> > >> > > > > > > > > > > > > > > > > > > > > > datasources, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > which >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > could help >> > >> future >> > >> > > > > > per-realm >> > >> > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > support >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - A JDBC >> > driver >> > >> > can be >> > >> > > > > > supplied >> > >> > > > > > > > > at >> > >> > > > > > > > > > > > > runtime >> > >> > > > > > > > > > > > > > > > from >> > >> > > > > > > > > > > > > > > > > a >> > >> > > > > > > > > > > > > > > > > > > jar >> > >> > > > > > > > > > > > > > > > > > > > > > instead >> > >> > > > > > > > > > > > > > > > > > > > > > > > of >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > being >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > on the >> > >> build-time >> > >> > > > > > classpath. >> > >> > > > > > > > > This is >> > >> > > > > > > > > > > > > very >> > >> > > > > > > > > > > > > > > > > helpful >> > >> > > > > > > > > > > > > > > > > > > for >> > >> > > > > > > > > > > > > > > > > > > > > > > > > proprietary >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > and >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Apache >> > >> > > > > > license-incompatible >> > >> > > > > > > > > drivers, >> > >> > > > > > > > > > > > > like >> > >> > > > > > > > > > > > > > > > MySQL. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > This POC does >> > not >> > >> yet >> > >> > > > > > implement >> > >> > > > > > > > > full >> > >> > > > > > > > > > > > > > per-realm >> > >> > > > > > > > > > > > > > > > > > > datasource >> > >> > > > > > > > > > > > > > > > > > > > > > > > routing. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > It >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > only >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > demonstrates >> the >> > >> > > > lower-level >> > >> > > > > > > > > building >> > >> > > > > > > > > > > > > blocks: >> > >> > > > > > > > > > > > > > > > > Polaris >> > >> > > > > > > > > > > > > > > > > > > can >> > >> > > > > > > > > > > > > > > > > > > > > > create >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > managed >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > JDBC pools >> from >> > >> > config, >> > >> > > > > > multiple >> > >> > > > > > > > > pools >> > >> > > > > > > > > > > > can >> > >> > > > > > > > > > > > > be >> > >> > > > > > > > > > > > > > > > > created >> > >> > > > > > > > > > > > > > > > > > > > > > > > > independently, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > and >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > the JDBC >> driver >> > >> can >> > >> > be >> > >> > > > > > supplied at >> > >> > > > > > > > > > > > runtime. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Feedback is >> > >> welcome >> > >> > > > before I >> > >> > > > > > turn >> > >> > > > > > > > > this >> > >> > > > > > > > > > > > > into a >> > >> > > > > > > > > > > > > > > > > formal >> > >> > > > > > > > > > > > > > > > > > > PR. >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yufei >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > > >> > >> > > > > > > > > > > > > >> > >> > > > > > > > > > > > >> > >> > > > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > >> > >> > > > > > >> > >> > > > >> > >> > >> > >> >> > > >> > >> >
