Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-platform-dev] Specification backward compatibility requirements

Hi Ondro!

Let me clarify my critic a bit:

Moving from java.* to jakarta.* obviously breaks backward spec. But as you said this is a one off and only requires changing the imports and recompile. I'm NOT talking about this.

I'm also not talking about final removal of methods which got marked as deprecated a long time ago. This 'pruning' was afaict also allowed in the past in the JCP process. We just very seldomly made use of it. But this is also fine.

What I'm talking is that the behaviour of an empty beans.xml got totally inverted and changed from meaning bean discovery ALL (since CDI-10 up until including CDI-3.0) to ANNOTATED in CDI-4.0. Without much visibility, without much discussion. Really, I thought this is such a stupid idea that it does't make it into the final spec after Antoine publicly spoke out against this change on 2021-04-20 as well:
"Isn't it as dangerous as changing behavior of empty beans.xml or beans.xml with bean discovery to annotated at the spec level?"

This really breaks tons of applications in a very subtle way. I only discovered this because a few TCK tests now fail. But which other such 'eggs' are hidden in JakartaEE 10?
This is all about establishing trust into Jakarta EE as stable platform. Or rather how to avoid loosing all this trust we built in the last decades with lots of effort?

LieGrue,
strub


Am 28.01.2023 um 14:00 schrieb Ondro Mihályi <mihalyi@xxxxxxxxxxx>:

I would also like to see the discussion or minutes from a meeting where this was decided. I believe that this is a thing that requires a ballot.

It§s true that we had to bend the rules for Jakarta EE 9, but it's not a reason to keep bending the rules for all the future releases. It's also true that Jakarta EE 10 dropped some deprecated functionality, which used to be allowed in Java EE but the rules for Jakarta EE in https://eclipse-ee4j.github.io/jakartaee-platform/CompatibilityRequirements don't cover this option. Even if those rules are still valid, they aren't complete, and even state this explicitly in one place:

XXX - This section needs to be updated with new rules for the actual removal of APIs and specifications from the Jakarta EE platform as anticipated in Jakarta EE 9, similar to what’s done for the Java SE platform.

I suggest that we update the https://eclipse-ee4j.github.io/jakartaee-platform/CompatibilityRequirements page to be up to date with the current Backwards Compatibility Requirements (Decided by whom? Jakarta EE Steering or Specification Committee?  ). We can't accept that we have an official document that we don't follow, and, on the other hand, have some unwritten non-transparent agreement that some of us follow.



All the best,
Ondro Mihalyi

Director, Jakarta EE expert
OmniFish - Jakarta EE Consulting & Support | www.omnifish.ee
Omnifish OÜ, Narva mnt 5, 10117 Tallinn, Estonia | VAT: EE102487932

On Sat, Jan 28, 2023 at 12:10 PM Mark Struberg <struberg@xxxxxxxxxx> wrote:
Wow, really. I'm speechless.

Do the people who decide such things IN THE DARK (aka undocumented it seems) mean this serious?
I mean, really this got nowhere made public, was it? Please point me to the articles covering this!

That would imo TOTALLY ditch the whole purpose of JavaEE / JakartaEE in my eyes.
If a project wants to use quickly evolving technologies, then they do usually NOT choose JavaEE.
JavaEE - in my experience - was previously chosen by companies and governmental organisations whose primary goal is stability over a very long period of time. We are talking in 5 to 10 years of stability. Now when you folks ditch this, then I fear we will loose banks, governments, etc. Those 'slow moving dinosaurs' in my experience used to be the main users of JavaEE. They provide the main money, they have the most code running in JavaEE.

There is a good reason why people used to say "JavaEE is these days COBOL". That's because COBOL apps are running till today. Like many JavaEE apps I see at customers. Many of them older than 10 years, but still perfectly maintainable.

And for container vendors: why should I pass a TCK if the rules are totally turned around in 2 years anyway? I mean this is a joke, really :(

LieGrue,
strub


PS: Scott, I understand you are just the messenger, so no personal offense meant.



Am 28.01.2023 um 05:47 schrieb Scott Stark <starksm64@xxxxxxxxx>:

We have switched to a semantic versioning approach, but I don't see that this was captured in that page or elsewhere. That notion of backwards compatibility was completely violated in the EE 8 to EE 9 release due to the package rename, and in general, maintaining such stringent backwards compatibility was seen as counterproductive to evolving the platform.


On Jan 27, 2023 at 1:08:14 PM, Mark Struberg <struberg@xxxxxxxxxx> wrote:
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev

_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
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