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 > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > >> > > > > > > >> > > > > >> > > >> > > >
