Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cn4j-alliance] MP apis and "graduation" to Jakarta EE

>By immediately forking any MP specification into Jakarta when there is a desire to use it in Jakarta, we are increasing the effort without a demonstrated need. 

The fact that MicroProfile doesn't provide any stable release makes this in my opinion the only way a Jakarta EE implementation can provide a stable release over a longer period.

Since MicroProfile intends to release every year a release with breaking changes, a Jakarta EE implementation has 2 options
- Do not ship newer versions of MP anymore since it contains a breaking change and users need to adapt their application in order to be able to deploy it to the latest version.
- Have some modular design in place so that multiple versions of MicroProfile can be shipped and the user needs to define the version it wants to use through configuration. However, this complicates the implementation and testing of the Server implementation and makes it much more difficult to user as it needs to do the proper configuration (and some combination might not work due to conflicts)

An LTS version of MicroProfile is also not desired, due to the MicroProfile community decision of 2020 of the pull model (If Jakarta EE wants a stable version it needs to create a fork as MicroProfile will not push any versions to any other community.

This means that when you need the Jakarta EE stability a fork of MicroProfile is required within Jakarta EE (or integration of for example MP Rest client into Jakarta Rest)

Rudy


On Mon, 18 Jan 2021 at 15:03, Edwin Derks <ederks85@xxxxxxxxx> wrote:
I also think the LTS concept can become a concept that is hard to understand. Unless we find a real need for this and a way to properly govern it, I would advise we don't introduce this.

What I do like is the concept of adopting the MP specifications in Jakarta, either directly or with a fork. As Scott addressed, it may not always make sense or be desirable to create a fork, because it brings additional maintenance and governance when there are no differences.

What I do want to point out is that this upstream/downstream fork idea is what is also being done with Java itself, and it seems to work great there. Forks of the OpenJDK can adopt downstream updates from the OpenJDK project, and in their fork provide their own updates. then these can be propagated upstream to the OpenJDK, possibly as-is. All forks can then again adopt these updates downstream etc.

I hope I'm on the right track with this, but maybe it is possible to find the sweet spot of alignment between Jakarta EE and MicroProfile without having to invent a whole new system of governance?

Edwin

On Mon, 18 Jan 2021 at 14:54, Scott Stark <starksm64@xxxxxxxxx> wrote:
By immediately forking any MP specification into Jakarta when there is a desire to use it in Jakarta, we are increasing the effort without a demonstrated need. Until the compatibility requirements of Jakarta are broken, the MP specification should be used as is in order to minimize the effort. Even in the case of consistency across Jakarta specifications where additional requirements should be added, that could be done as an extension to the MP specification by describing the additional integration requirements around the Jakarta Security support for example. Only when that cannot be done without changes in the MP specification should that cause a need to fork.



On Thu, Jan 14, 2021 at 4:04 AM Steve Millidge (Payara) <steve.millidge@xxxxxxxxxxx> wrote:

I’ve thought a lot over the last year about the relationship of MP and Jakarta and how apis should be consumed for each. I just thought I’d put this down as a conversation starter from my vendor perspective.

 

So some overall statements.

 

  1. Jakarta EE should not use the MicroProfile namespace
  2. Jakarta EE should adopt MP apis by moving them into the Jakarta namespace when they are mature
  3. MP can choose to add the adopted api back into their platform just like Jakarta REST today or can continue to evolve the api in its own namespace.

 

Why do I think this?

 

Jakarta EE has a focus on backwards compatibility while MicroProfile has the goal of experiment and innovate without backwards compatibility. Moving a Jakarta adopted api into the Jakarta namespace means the Jakarta team can ensure backwards compatibility.

 

Prevents developer confusion. Developers can know that when they import an api in the Jakarta namespace they get stability and backwards compatibility and when they import an api in the microprofile namespace that it may change between major releases.

 

Vendors like Payara can more easily support both platforms. Take for example the case of where Jakarta EE wants to adopt MicroProfile Wombat 2.0 but MicroProfile WG wants to keep evolving MicroProfile Wombat 3.0 to a completely new api. By moving namespace and creating Jakarta EE Wombat 2.0 Payara can support both the latest MicroProfile Wombat 3.0 AND Jakarta EE Wombat 2.0 delivering the needs of the different developer communities.

 

Platform consistency – when moving an api into Jakarta EE it may need to be evolved to ensure it is consistent with the rest of the Jakarta EE platform e.g. supporting Jakarta Security etc. This is likely not possible in MP.

 

Easier demarcation between independent groups. The groups are independent of each other and this enables each group to be in control of its own platform without the need to maintain an LTS or Profile on one side just for the benefit of the other.

 

The alliance is then more about minimising duplication of effort when creating and evolving specification and deciding where the creation and maintenance of a specification should live.

 

Thanks

 

 

Steve

 

 

_______________________________________________
cn4j-alliance mailing list
cn4j-alliance@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cn4j-alliance
_______________________________________________
cn4j-alliance mailing list
cn4j-alliance@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cn4j-alliance
_______________________________________________
cn4j-alliance mailing list
cn4j-alliance@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cn4j-alliance

Back to the top