Kito/all,
Thanks for forwarding this, although the quote
of quotes of quotes makes it very hard to
read.
I fully agree with Otavio's message that both
are developed under the Eclipse Foundation,
and users of a product don't really care, if
it was developed in repository A or B.
However, what Roberto outlined earlier about
continuous copying between MP Config and
Jakarta Config makes absolutely no sense.
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.
MicroProfile consumes Jakarta EE, so there is
no MP application or platform without a
Jakarta EE platform, at the very least the
Core Profile. So Jakarta Config is expected to
be available in every profile. If the MP
Config API was to co-exist with Jakarta Config
forever, then applications would have to
exclude one of them from their build system,
otherwise they risk confusion or even mixing
them in the same project with unforseen and
unpredictable consequences. Especially if a
Jakarta EE application using Jakarta Config
API also wanted to use certain MP features
like OpenTelemetry, Health, etc. internally
configured via MP Config, but potentially even
a different version of the API, if e.g. MP 8.1
used a new version of MP Config while Jakarta
EE was still on 12 or 13 based on an older MP
Config API.
If the API is a drop-in-replacement then
nothing keeps the MP projects from using the
Jakarta one after the next release. And it
does not really matter, if it was maintained
in
https://github.com/jakartaee/config or
Otherwise everyone, most importantly
developers and users of both MP and Jakarta EE
would face a "config hell".
Regards,
Werner
I think that, in the case of
config, other specifications can
just specify the accepted config
properties, regardless of how these
properties are provided. The TCK
could use system properties as a
common config source.
Then Microprofile umbrella can
state that these properties are
supplied by MP Config, Jakarta EE
Platform would state they are
supplied by Jakarta Config. Jakarta
Core profile wouldn't need to
include Jakarta Config. Or it could,
but then MicroProfile would state
that Jakarta Config is not required.
I'm sure there's a way to define all
this in a simple way so that
everybody is happy.
I think that makes a lot of sense.
Each spec just says what it needs from
a "Configuration Provider" and that
provider would be either MP Config or
Jakarta Config.
With all that, I share the same
sentiment with Reza. I always hoped
that MP would tend to donate APIs to
Jakarta after they become stable,
and then completely rely on the
Jakarta version of the API.
I agree with this sentiment as
well...
We need to also keep in mind the
perspective of the end users... they
want a "normal" configuration setup
that "just works" with all of the
different parts of the app. And it
would be confusing to have two
different namespaces with the same
classes. It's also confusing for the
end user to have two different Config
specifications, even if they're
roughly the same.
I think that, in the case of
config, other specifications can
just specify the accepted config
properties, regardless of how
these properties are provided. The
TCK could use system properties as
a common config source.
Then Microprofile umbrella can
state that these properties are
supplied by MP Config, Jakarta EE
Platform would state they are
supplied by Jakarta Config.
Jakarta Core profile wouldn't need
to include Jakarta Config. Or it
could, but then MicroProfile would
state that Jakarta Config is not
required. I'm sure there's a way
to define all this in a simple way
so that everybody is happy.
With all that, I share the same
sentiment with Reza. I always
hoped that MP would tend to donate
APIs to Jakarta after they become
stable, and then completely rely
on the Jakarta version of the API.
But that's not necessary, and I
think anything is better than the
current state, when many
implementations rely on MP config
even for their Jakarta EE
functionality, or even worse, MP
parts support MP Config while
Jakarta EE parts don't.
All the best,
Ondro
I am sure Ed and/or Jared
will respond with their own
thoughts - in the meantime let
me share my two cents,
including on some of the
broader technical intricacies.
First a purely personal
opinion independent of
Microsoft. These are some of
the intricacies of managing
two platforms run by two
separate working groups that
in practice need to co-exist
closely. It's the reason some
of us espoused the hope that
common dependencies and
possible sources of colliding
resources to manage would only
be in one direction with the
Jakarta EE Core Profile being
keenly mindful of the needs of
both MicroProfile as well as
the other Jakarta EE Profiles
(and hopefully in some distant
future other non-Eclipse
Foundation platforms that also
depend on a
stable/high-quality/minimal
Core Profile). The hope would
have been that platforms such
as MicroProfile would
deprecate APIs that are
effectively standardized onto
the shared space of the Core
Profile.
Setting aside the above
purely personal opinion, if
MicroProfile is very averse to
supporting both Jakarta Config
and MicroProfile Config, I
don't think it's too hard to
just keep Config out of the
Core Profile including the
small handful of Jakarta EE
APIs there (via spec profiles
if needed). The major customer
pain point is needing to
configure the data/external
infrastructure related Jakarta
EE technologies using old
style embedded XML or Java,
which are mostly not in the
Core Profile anyway.
On 2/17/2025 11:17 AM,
Roberto Cortez via config-dev
wrote:
If we have separate
namespaces and APIs are
synced manually /
selectively (and evolve
independently), I’m guessing
that any Jakarta
specification would use its
own Jakarta Config, and
MicroProfile specifications
would use MP Config?
In practice, even if
Jakarta Config is not part
of the Core, if any Core
specification adopts it,
it would force Jakarta
Config with its own API to
the MP platform. Is this
correct?
Cheers,
I plan to
bring this up in
the Jakarta EE
Steering
Committee. The
technical debate
aside, I think
there are also
process and
branding/IP
considerations
here. For one,
it's important
to track down
what the
existing
consensus had
been in Jakarta
EE WG/Jakarta
Config with
regards to
namespace. A
sanity check
from the
perspective
of branding/IP
is also in order
as these are in
reality two
different
working groups.
I agree that
the most prudent
approach is
avoiding
needlessly
introducing
mutual
inter-dependencies.
Both
MicroProfile and
Jakarta EE
should be able
to independently
evolve their
configuration
approaches when
needed. Separate
namespaces with
APIs synced
manually/selectively
when needed does
that well.
On 2/11/2025
11:00 AM, Ed
Burns via
config-dev
wrote:
Even
with
approaches
that allow for
mitigating the
circular
dependencies,
I am strongly
predisposed to
prefer the
repackaging
approach that
allows the
content of
MicroProfile
config to be
accessed by
Jakarta
specifications
using an
entirely
Jakarta
namespace.
Ed
My responses
are inline. We
will discuss
this issue in
more detail at
this Tuesday's
MP Technical
call. Please
join if you
are
interested.
The joining
details can be
found
here.
Hi Ed,
Thank you
for the
response.
1.
A technical
problem
regarding
introducing
circular
dependencies.
Yes, the
issue is that
MP Config is
dependent on
CDI. This has
been discussed
many times,
and I believe
MP is open to
make the
necessary
adjustme=