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