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

Reply via email to