PS: with the help of George with the latest setup "merges" we get it on central: https://repo1.maven.org/maven2/io/quarkiverse/jdbc/quarkus-jdbc-generic/0.0.1/
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. 3 août 2026 à 09:38, Romain Manni-Bucau <[email protected]> a écrit : > 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 >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > >>> > >> > > > > > >>> > >> > > > >>> > >> > >>> > >> >>> > > >>> > >>> >>
