Date:
RR> Just using application.properties is a good idea
indeed.
RR> I am sure Ed and Jared will respond, but I
believe the idea here
RR> is to allow both Jakarta EE and MicroProfile to
evolve
RR> independently in accordance with their own needs
and also
RR> collaborate when best seen fit.
Indeed, doing that now.
RC> A few comments inline. Thank you!
JA> This email is a follow up to the discussion at
the 2025-02-04
JA> Jakarta EE platform call.
JA> In that call, we discussed an approach where
Jakarta EE 12 could
JA> effectively use MicroProfile Config "as is" with
some important
JA> non-technical accommodations.
JA> 1. The APIs for Jakarta Config would be the
MicroProfile Config APIs,
JA> but with jakarta namespace. Yes, a copy/paste.
RC> After the initial copy/paste, how would things
evolve?
My intention is that technical evolution would take
place in the
MicroProfile Config project. In the event of Jakarta
specific
accommodations, we would
1. Cross that bridge when we come to it.
2. Try to come up with solutions that are palatable to
both communities, Jakarta
EE and MicroProfile.
3. If absolutely necessary, we would define content in
MP Config that
would have the proviso such as "this only takes
effect in Jakarta
EE environments". There is ample precedent for such
approaches. See
what we did with Faces when Validation was present
(in EE) vs. not
present (such as in Tomcat).
RC> Would Jakarta keep the APIs in-sync?
Yes. Every time Jakarta needed a new version, they would
pick up a
chosen release of MP config to give the copy/paste
treatment to.
RC> What restricts Jakarta from using the API as-is?
As far as I know:
1. A technical problem regarding introducing circular
dependencies.
2. A non-technical problem where Jakarta specs may not
make
dependencies on MicroProfile artifacts.
JA> 2. The implementation may delegate to the
MicroProfile Config implementation.
JA> 3. The Spec document would be one-line: see the
corresponding
JA> MicroProfile config spec document. May need
additional text to
JA> talk about the difference in namespace and adding
in
JA> jakarta-config.properties until a new MP Config
version added that
JA> to its specification. See #5 below.
JA> 4. The TCK would be a copy/paste of the
MicroProfile Config TCK
JA> and updating the name space and adding
jakarta-config.properties
JA> testing
JA> 5. Need to introduce a new line in the
ConfigSource (MicroProfile
JA> Config API) “Some configuration sources are known
as default
JA> configuration sources. These configuration
sources are normally
JA> available in all automatically-created
configurations, and can be
JA> manually added to manually-created configurations
as well. The
JA> default configuration sources are:
JA> 1. System properties, with an ordinal value of
400
JA> 2. Environment properties, with an ordinal value
of 300
JA> 3. The /META-INF/jakarta-config.properties
resource, with an ordinal value of 200
JA> 4. The /META-INF/microprofile-config.properties
resource, with an
JA> ordinal value of 100
RC> How about dropping microprofile-config.properties
(keep it for
RC> compatibility) and jakarta-config.properties, and
use
RC> application.properties? This one is already used
by many popular
RC> runtimes like Spring, Quarkus, and Micronaut, to
name a few.
Roberto, that's a rad idea. I like it.
Ed