Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-platform-dev] Sanity Check - Making Core Profile a Dependency of Web Profile

Hi Manfred,

Full Profile has always depended on Web Profile, that has not changed.

Why do we need this?
The problem with Core profile specifically is the conflicts that arise between different versions included with Jakarta EE and MicroProfile,
and there is no “clean” way to resolve this unless Web Profile depends on Core Profile.
Well, there is one way… MicroProfile stops depending on Core profile and depends on individual SPECs instead.

However, this brings up, again, cooperation between MP and EE groups.
I would be more than happy to break the dependency if MP starts depending on individual SPECs instead of Core.
Otherwise, Web / Full Profile and MicroProfile just don’t work together well.

All of this is a technical issue, not a philosophical one.

On Mar 25, 2025, at 9:19 PM, Manfred Riem <m_riem@xxxxxxxxxxx> wrote:

Hi all,
 
Why is this necessary? If you want a Core Profile runtime you have a set of specifications that you expect.
 
And when you are using Web Profile you have another set of specifications that you expect and there is no reason for those specifications to have to include all the same that Core Profile contains.
 
Now a vendor might or might deliver a runtime for either. And IF the vendor decides to support all of it in one runtime that is up to them.
 
And imagine if we would argue this one out even further for #2 as Lenny mentioned below.
 
Why is the full platform not dependent on Web Profile?
 
And to make matters worse now I want an AI profile. Where will that fit in?
 
Keeping them separate seems a prudent course of action to me.
 
Manfred Riem
“Have you prompted your prompt today?”
 
PS. This is my personal perspective Reza/Ed speak for Microsoft.
 
From: jakartaee-platform-dev <jakartaee-platform-dev-bounces@xxxxxxxxxxx> On Behalf Of lenny--- via jakartaee-platform-dev
Sent: Tuesday, March 25, 2025 8:40 PM
To: jakartaee-platform developer discussions <jakartaee-platform-dev@xxxxxxxxxxx>
Cc: lenny@xxxxxxxxxxxxx; Jakarta EE community discussions <jakarta.ee-community@xxxxxxxxxxx>; Jakarta specification discussions <jakarta.ee-spec@xxxxxxxxxxx>
Subject: Re: [jakartaee-platform-dev] Sanity Check - Making Core Profile a Dependency of Web Profile
 
Hi, Reza,
 
Thank you for bringing up this discussion, it’s yet another reason why Jakarta EE and MicroProfile should live under the same umbrella.
 
This issue was brought up 2 years ago because Jakarta EE 10 was “not playing nice” with MicroProfile.
 
When I proposed that web profile have a dependency on core profile, Scott Stark rightfully brought
 
There was much discussion about this that followed.
 
This was talked about on the platform call on May 30th - see https://github.com/jakartaee/jakartaee-api/issues/138#issuecomment-1568731879
and was resolved that the relationship between Web and Core profile via maven dependency would no longer be an issue.
 
If this was “not enough” / not voted / process not followed / etc. I apologize, as I figured that with Scott’s and Ed’s buy-in, this would be ok.
 
Even before this happened, the reality was that Web Profile was very much dependent on Core Profile already, via the “hard” Javadoc dependency, for example.
This was just not as evident because there was no “direct” dependency.
However, there was no way to separately evolve Core profile even before this happened anyway.
 
Currently, Core profile can freely evolve separately just by putting Maven “optional” tag on any new SPECs introduced,
as this will prevent it to be included transitively by the Web profile.
 
From what I can see, there is a choice to be made here.
 
1) Remove dependency on Core profile.
What this implies, however, is that every application that uses Jakarta EE Web / Full Profiles and MicroProfile together would have to go through all
the maven gymnastics to make sure every spec they need is correctly included in their application, making this combination hard to use and get right.
 
2) Leave things as they are.
Evolve Core profile by using maven <optional> tag in dependencies to exclude them from flowing into Web / Full profile
Document that dependency on Core profile is technical in nature.
 
My preference would obviously be #2 because I personally use Jakarta EE Full and MicroProfile together,
and this is why the issue came up in the first place, after days of debugging to figure out why things weren’t working as they should.
 
On Mar 25, 2025, at 6:38PM, Reza Rahman via jakartaee-platform-dev <jakartaee-platform-dev@xxxxxxxxxxx> wrote:
 

Hello folks,

Today in the Jakarta EE Steering Committee meeting, I came to learn that
a Core Profile dependency was added to the Web Profile Maven POM. I am
unconvinced this was done through adequate deliberation and consensus
(that is, votes to support a truly majority stakeholder decision). More
than anything else, I want to ensure that in fact has happened or
happens soon.

Adding a Core Profile Maven dependency for Web Profile is problematic
for the following reasons:

* Strictly from a specification perspective (please read the actual
specification to verify this), Core and Web are separate profiles
targeted to separate domains. The Web Profile is geared to web
applications while the Core Profile is geared towards microservices.
Neither profile refer to each other and can freely evolve to meet the
needs of their respective target use cases.

* While from a specification perspective no such dependency actually
exists, the Maven POM will give end users the impression that there is
such a concrete dependency. Moreover, users will effectively have this
dependency chain in their applications and may even come to rely on it.

* If the Core and Web Profiles do evolve separately (for example by
adding or removing APIs), this dependency chain will get in the way,
will no longer work, or will require awkward Maven gymnastics to make
work. All it would take is needing separate out-of-sync releases of
these profiles for things to break.

* It risks reinforcing an impression that passing the Web Profile TCK
means also passing the Core Profile TCK. This is not the case and you
need to in fact go through separate certifications for each profile.

I think the best solution is to not introduce this dependency at all,
get back to properly separated Core and Web profiles just as the actual
specification reflects, and proceed with the Web Profile release. If
this must be done and there is proper consensus, it should be done by
updating the Web Profile specification to explicitly reference the Core
Profile specification. The Core Profile specification should be updated
to evidently serve as a "base" Jakarta EE profile in addition to serving
it's currently identified domain.

I understand everybody is working hard to get releases out and everyone
has the best of intentions. However, I feel these things need to be
carried out with the weight that Jakarta EE has in the Java ecosystem. I
want to make sure that's actually the case. I hope that is understandable.

Thanks,

Reza

P.S: I have already discussed this matter with Ed before commencing this
communication in case you are wondering.

_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev



Back to the top