Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate impact of removing support for optional EJB 2.x features (homes, CIs, etc.) #1250

Closed
Tracked by #1126
brideck opened this issue Mar 7, 2024 · 8 comments
Labels
11.0 Issues related to the Jakarta EE 11 Platform TCK release

Comments

@brideck
Copy link
Contributor

brideck commented Mar 7, 2024

There's an ongoing discussion around if/when support for the currently optional EJB 2.x features should be removed from the platform spec and therefore from the TCK. Doing so would have a lot broader impact in the TCK then simply affecting the obvious ejb tests. As we investigate this impact, we'll keep a growing list of tests and proposed plans for them here. Discussion can follow in the comments of this issue.

appclient.deploy.compat* --
assembly.compat.cocktail.compat* --
assembly.compat.single.compat* --
assembly.compat.standalone.jar.compat* --
assembly.compat.standalone.war.compat* --
These tests need to be trimmed and updated to cover only the versions of deployment descriptors supported by the platform specification: n & n-1. In the case of EE 11, this would mean that we would only need a compat10_11 test. This test would need to have the application updated to use an EJB 3+ business interface.

assembly.altDD.Client#testEJB --
assembly.classpath.ejb --
assembly.standalone.jar --
connector.deployment --
connector.localTx.transaction.* --
connector.xa.transaction.jta --
integration.sec.propagation --
integration.session.* --
jta.ee.txpropagationtest --
samples.ejb --
These tests would need to have the application updated to use an EJB 3+ business interface.

Everything that uses the ejb vehicle also needs to be updated to use an EJB 3+ business interface. This involves updating the vehicle's interfaces, as well as the deployment descriptors for each of the impacted tests. These include:
connector
javamail
jaxws
jdbc
jta
jms
samples
webservices12
xa

@brideck brideck added the 11.0 Issues related to the Jakarta EE 11 Platform TCK release label Mar 7, 2024
@brideck
Copy link
Contributor Author

brideck commented Mar 30, 2024

I've attached PRs that take care of most of the impacted tests. There are somewhere around 10-15 applications that still need updating in connector, integration, jacc, jta, samples, webservices12, and xa.

There are possibly also impacts in this space in the legacy tests that were moved as-is to separate TCKs in EE 10, like Faces, Authentication, and Security. I have not taken a look at those at all.

@brideck
Copy link
Contributor Author

brideck commented May 3, 2024

@scottmarlow
Working on the remaining tests and I'm not entirely sure what to do with these tests:
ejb30/bb/session/stateful/sessioncontext
ejb30/bb/session/stateless/sessioncontext

For the most part, they are straightforward EJB 3.x tests, but there are a handful of scenarios in each in which they try to invoke 3.x-specific things through 2.x interfaces (homes/CIs) to make sure that they throw exceptions. All of the 2.x scenarios are negative tests and only make sense with the older APIs, so these cannot be migrated to 3.x.

Options would be:

  • Mark these tests as ejb2x_optional, javaee_optional in keyword.properties
  • Disable the negative 2.x tests and remove the 2.x interfaces, etc.
  • Factor the 2.x tests out into their own package and mark them as optional

The last choice seems perhaps the most correct, but also seems like a lot more work.

I'm going to skip them for now as I work on my 3rd PR and tackle all of the more obvious cases.

@scottmarlow
Copy link
Contributor

Options would be:

Mark these tests as ejb2x_optional, javaee_optional in keyword.properties
Disable the negative 2.x tests and remove the 2.x interfaces, etc.
Factor the 2.x tests out into their own package and mark them as optional

Disable the negative 2.x tests and remove the 2.x interfaces, etc.

^ sounds the closest to removing the tests. Any reason why that isn't an option?

@brideck
Copy link
Contributor Author

brideck commented May 6, 2024

Disable the negative 2.x tests and remove the 2.x interfaces, etc.

^ sounds the closest to removing the tests. Any reason why that isn't an option?

We're not looking to remove tests that are actually testing EJB 2.x, are we? e.g. everything under ejb (not ejb30). If that stuff isn't staying as an optional set of tests in EE 11, then sure, I can just remove these here.

I'm having trouble keeping straight what specific function needs to stay in what place these days.

@scottmarlow
Copy link
Contributor

Disable the negative 2.x tests and remove the 2.x interfaces, etc.

^ sounds the closest to removing the tests. Any reason why that isn't an option?

We're not looking to remove tests that are actually testing EJB 2.x, are we? e.g. everything under ejb (not ejb30). If that stuff isn't staying as an optional set of tests in EE 11, then sure, I can just remove these here.

I'm having trouble keeping straight what specific function needs to stay in what place these days.

I'm going by what the https://jakarta.ee/specifications/platform/11 lists as being removed from Jakarta EE 11:

Removals, deprecations or backwards incompatible changes
Remove all optional specifications

^ means to me that the EE 11 Platform TCK doesn't need to test any optional technologies as they are being removed.

I do note that https://jakarta.ee/specifications/webprofile/11/ doesn't mention optional specifications but perhaps that is because the Web Profile is a subset of the Platform.

@brideck
Copy link
Contributor Author

brideck commented May 6, 2024

I'm going by what the https://jakarta.ee/specifications/platform/11 lists as being removed from Jakarta EE 11:

Removals, deprecations or backwards incompatible changes
Remove all optional specifications

^ means to me that the EE 11 Platform TCK doesn't need to test any optional technologies as they are being removed.

I do note that https://jakarta.ee/specifications/webprofile/11/ doesn't mention optional specifications but perhaps that is because the Web Profile is a subset of the Platform.

Okay, I'll go ahead and try to rip that part out then. Making good progress -- just have this set we're talking about here and a pile of tests in the xa bucket left to go.

@scottmarlow
Copy link
Contributor

@brideck do you know of any remaining work that needs to be done for this investigation?

@brideck
Copy link
Contributor Author

brideck commented Aug 22, 2024

For EJB 2.x specifically? No, not that I'm aware of.

There's probably still work to be done on identifying and removing the ManagedBeans tests that are scattered throughout various buckets, unless that's been handled somewhere, but I think this particular tech group is good to go.

@starksm64 starksm64 closed this as completed by moving to Done in Jakarta EE11 TCK Release Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
11.0 Issues related to the Jakarta EE 11 Platform TCK release
Projects
Status: Done
Development

No branches or pull requests

3 participants