| Yes, but you make it sound that the issues you raise are totally unfixable. Maybe they are, I would just want to know why people feel that way? 
 But I doubt that this is the way to go in reality. MP Config most probably cann't meet the standards of Jakarta EE.
 Which standards can’t MP meet? 
 Another problem is that MP and EE have different release cycles
 You are also a committer on the MP Config, so you could help align releases. We shouldn’t confuse platform releases with single project releases. 
 I doubt that the MP would accept that.
 
 This is just an assumption from your end. I can tell you it would have my support and I’m sure many other folks in the MP community would support it as well, but we can’t just assume things without even asking.
 Well, unfortunately, we had to return to these discussions. But let me continue that discussion in another thread. On 21 Feb 2025, at 17:29, Ondro Mihályi <mihalyi@xxxxxxxxxxx> wrote: 
 I wrote my arguments against Jakarta EE depending on MP Config earlier today, quoting: 
 > Jakarta EE can depend on MP Config, or a core part of it (without CDI). But I doubt that this is the way to go in reality. MP Config most probably cann't meet the standards of Jakarta EE. Another problem is that MP and EE have different release cycles, and, even if EE depended only on a core MP Config part, releases of MP, MP Config Core, and EE would need to be synchronized. I doubt that the MP would accept that. 
 End of quote. 
 We discussed this multiple times and always came to a conclusion that Jakarta EE shouldn’t depend on MP specs. If we’re going to question this again, we’re going nowhere. 
 I stated proposals that I think are the only viable options. I hope we’ll have an agreement or that somebody comes with a betrer option. 
 And I don’t question your past effort or contributions. I was talking about these endless discussions with no conclusions. 
 OndroI’m sorry Ondro, you are being completely unfair with your observations. 
 We had this exact same discussion 5 years ago. In the now inactive CN4J group, there were two proposals, one to move and the other to keep, which were voted and the one to move won: 
 
 
 
 The MP community never disrupted or hindered any efforts on a Jakarta Config after that decision. In fact, me and Emily were (with some other folks) the most active members in that group, either in calls, commits, issues, and so on. And we were there in good faith and pushed to move things forward, so threatening actions are not a good way to collaborate. You need to realize that based on previous experience, many of us are way more skeptical about the end results, so you also need to be more patient and educate us to convince us that your proposal is the best one.  
 I have to apologize again, because I read the entire thread, and I couldn’t understand why Jakarta cannot accept anything in MicroProfile repositories. Do you mind explaining it again? You can reply privately if you want. 
 Cheers, Roberto
 Jakarta Core Profile cannot accept anything in MicroProfile repositories, as I argumented, it wouldn’t work. Disputing about things like this is exactly what I mean by hindering. We shouldn’t talk about options that just wouldn’t work, that’s a waste of time and going in circles. 
 Ondro I might have misunderstood what you meant on Option 1.  I will just say Jakarta Core Profile just includes MP Config core. The repo will stay in MP. 
My comments are inline. Exactly as Reza wrote. Just the latest Jakarta EE 10 is implemented by 9 distinct solutions, out of those at least 4 have full or partial support for MicroProfile. Only 2 solutions plus Quarkus primarily support MicroProfile and have no or only partial support for EE. I think this is in line of the adoption trends Reza wrote about.
   And now, it seems to me like Jakarta EE wants to evolve and bring Config, but MicroProfile has effectively hindered this initiative for a very long time, instead of helping and supporting Jakarta EE, which is at the core of MicroProfile. I don't see why Jakarta EE should take any consideration about MicroProfile at this stage, after MicroProfile choosing the pull model, and after being slowed down with all these discussion how to align with MicroProfile while MicroProfile doesn't even want to collaborate and align with Jakarta EE.
 I am not sure what you meant by saying MicroProfile has hindered this initiative. There was suggestions and I said multiple times at some calls. MicroProfile Config is willing to split up into 2 parts: core; cdi parts. 
 
 I see only 2 options now: MicroProfile will cooperate and agree to move MP Config or at least its non-CDI part to Jakarta Core Profile, and then we can keep the packages without breaking the API
 This is the option I offered to help and contribute. This is so far the best approach. 
 Jakarta Config will be created in Jakarta Core Profile, with jakarta packages, and MicroProfile will need to cope with it. The new API can map the MP Config API or create a variant inspired by it
 If this discussion continues for too long without a resolution, I will strongly support creating Jakarta Config spec without any regard to MicroProfile, either as a copy of MP Config APIs in jakarta packages, or a completely new API. And I will start contributing to Jakarta Config as a committer, together with some other committers who want to do some work instead of wasting time in discussions. There's no reason why these discussions should slow down Jakarta EE. I don't see these kind of discussions in Microprofile, why should we have them in EE?
 
 Ondro
 
  
    
  
  This is indeed a very important branding, marketing, and
      strategic consideration. What we observe is that while Jakarta EE
      adoption and usage is not stellar, MicroProfile adoption and usage
      fares even worse:
      https://trends.google.com/trends/explore?date=2016-01-21%202025-02-21&q=Jakarta%20EE,MicroProfile&hl=en.
      These have been the trends for some time now. It's not surprising
      when customer express the preferences on this matter to us.
 On 2/21/2025 9:54 AM, Werner Keil
      wrote:
 
      
      As
        Steve mentioned, the adoption and true certification of MP is
        merely a fraction of Jakarta EE. The
        most recent MP versions only got certified by one or two
        products, before that MP 6 had 4 compatible products according
        to Steve. Jakarta EE lists around 20 product by almost the same
        number of vendors. Not all may have certified against Jakarta EE
        10, but in general the number of compatible implementations is
        higher. And let's not forget, MP as well as Spring also
        implements some of Jakarta EE, so that multiplies the usage
        drastically. 
 Regards, Werner 
 
        
        
          Hi,
             
 Can you please clarify which standards MicroProfile
              Config cannot meet?  
 Also, why is there an assumption that MP Config
              wouldn’t accept some sort of release alignment? MP
              projects are free to release anytime they want. 
 Cheers,
            
              
                
                  
                    
                      Hi, 
 Yes, MP decided on the pull model. That means
                        that the decision is solely on Jakarta EE, with
                        the pull model, MicroProfile has decided they
                        don't care about EE.
 
 Copying/forking MP Config is not the only
                        option, even with the pull model. Even with this
                        model, Jakarta EE can depend on MP Config, or a
                        core part of it (without CDI). But I doubt that
                        this is the way to go in reality. MP Config most
                        probably cann't meet the standards of Jakarta
                        EE. Another problem is that MP and EE have
                        different release cycles, and, even if EE
                        depended only on a core MP Config part, releases
                        of MP, MP Config Core, and EE would need to be
                        synchronized. I doubt that the MP would accept
                        that. 
 For the arguments above, the only
                          reasonable options I see, are: 
                          
                            MP Config participates in this process
                              and splits to core part and CDI part, so
                              that the core part can be moved to Jakarta
                              EE Core Profile without package changes
Jakarta EE copies the core part of MP
                              config under the jakarta package prefix
                              and adds it to the Core Profile. Jakarta
                              EE can introduce a new CDI Config
                              integration spec, or the existing CDI spec
                              can specify integration in the non-lite
                              part, which is not part of EE Core
                              Profile. This could still cause conflicts
                              for implementations that provide both MP
                              and EE, but we can hardly do anything
                              about itJakarta EE will not care about MP Config
                              and will introduce its own API. This
                              option makes sense only if all other
                              options fail. We tried that already and
                              haven't delivered in more than 2 years.  This basically boils down to extracting
                            core parts of MP Config, and the question is
                            whether to keep the package names or
                            introduce jakarta package names, and whether
                            MP helps and splits the MP Config spec or
                            not. The third option is probably the least
                            desired right now.
 
 Are any other options on the table? 
 Ondro
 
                      On Fri, Feb 21,
                        2025 at 1:15 PM Steve Millidge (Payara) via
                        config-dev <confi...@xxxxxxxxxxx >
                        wrote:
                      
                        
                          To be honest the whole thing
                            is a mess that should have been sorted out
                            years ago. As one of the 4 vendors that
                            actually has a compatible implementation of
                            Microprofile 6 and above the two WG should
                            have merged years ago with innovation
                            occurring in Jakarta ee as standalone specs
                            then maturity being signalled by adoption
                            into a platform spec.  
 
  "Downstream
                            consumers will probably require a fork (with
                            changing package names)  to meet the
                            downstream projects requirements."  
  This should not be
                            controversial as it is rehashed continually.  
  While we have the
                            same debates the market does not care and
                            moves on.  
  Steve 
                            
 
                              I strongly disagree with forking MP
                                Config to Jakarta with namespace
                                changes. This introduces unnecessary
                                headaches and namespace clashes in the
                                IDEs. Why cannot Jakarta EE adopt
                                MicroProfile Config as it is and job
                                done? No more hassle.
 The namespace update is purely
                                artificial and causes too many headaches
                                and version matching. In order to
                                continue the forking and namespace
                                changes, can anyone show me the rule of
                                Jakarta not allowing the use of
                                MicroProfile specs first?
 Emily 
                              
                              
                                
                                  
                                    
                                      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
                                                          adjustments
                                                          and removing
                                                          that
                                                          restriction.
                                                          In the
                                                          previous
                                                          Jakarta Config
                                                          initiative,
                                                          that was
                                                          already a
                                                          goal. One of
                                                          the things
                                                          I’ve been
                                                          advocating is
                                                          for MP Config
                                                          (or any other
                                                          Config
                                                          specification),
                                                          to work
                                                          standalone
                                                          without any
                                                          other
                                                          dependency.
                                                          This would
                                                          allow any Java
                                                          project to
                                                          consume it
                                                          without
                                                          requiring the
                                                          use of the
                                                          platform. As
                                                          for the CDI,
                                                          that can be an
                                                          addendum to
                                                          the
                                                          specification
                                                          or even be
                                                          integrated
                                                          into CDI
                                                          itself.   +1. We
                                                          can rework MP
                                                          Config to use
                                                          the CDI
                                                          approach by
                                                          dividing MP
                                                          Config to MP
                                                          Config Core
                                                          and MP Config
                                                          full, where MP
                                                          Config Core
                                                          will just have
                                                          the spi part
                                                          while the
                                                          other part
                                                          will include
                                                          CDI. In this
                                                          way, Jakarta
                                                          can simply
                                                          include MP
                                                          Config Core in
                                                          the Jakarta
                                                          Core profile.
                                                          With this, I
                                                          think Jakarta
                                                          can simply
                                                          include MP
                                                          Config Core
                                                          with the need
                                                          of having
                                                          Jakarta
                                                          Config.  With
                                                          this approach,
                                                          renaming
                                                          microprofile-config.properties
                                                          to
                                                          application.properties
                                                          is not
                                                          mandatory as
                                                          the package
                                                          namespace
                                                          would contain
                                                          microprofile. 
                                                          
                                                          2.
                                                          A
                                                          non-technical
                                                          problem where
                                                          Jakarta specs
                                                          may not make  
                                                           dependencies
                                                          on
                                                          MicroProfile
                                                          artifacts.   Can we
                                                          clarify what
                                                          the problem is
                                                          exactly? Is
                                                          this something
                                                          that can be
                                                          worked out?   What I’m
                                                          trying to
                                                          understand is
                                                          if we could
                                                          work on the
                                                          technical and
                                                          non-technical
                                                          issues that
                                                          prevent
                                                          Jakarta from
                                                          adopting MP as
                                                          is (without
                                                          copying and
                                                          renaming
                                                          packages), and
                                                          assuming we
                                                          can have those
                                                          fixed, would
                                                          Jakarta be
                                                          able to use it
                                                          as a regular
                                                          dependency? To my
                                                          best
                                                          knowledge,
                                                          there was no
                                                          restriction
                                                          for Jakarta to
                                                          use MP as long
                                                          as the MP spec
                                                          do not depend
                                                          on Jakarta. If
                                                          MP Config Core
                                                          is consumed by
                                                          Jakarta, there
                                                          would be no
                                                          circular
                                                          dependency.  
                                                          
 
   
                                                            Cheers, Roberto   
                                                          
                                                            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>
                  
 |