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

Implement Concurrency 3.0 #1458

Merged
merged 46 commits into from
Sep 16, 2024
Merged

Implement Concurrency 3.0 #1458

merged 46 commits into from
Sep 16, 2024

Conversation

jungm
Copy link
Member

@jungm jungm commented Aug 26, 2024

Implements the missing gap to pass the Jakarta Concurrency 3.0 TCK including:

  • Asynchronous Interceptor
  • Defining Resources via annotations/web.xml
  • Rework ApplicationThreadContextProvider as well as implement TxThreadContextProvider
  • ManagedConnection invocation handler can now enroll already created connections in a Transaction
  • ManagedThreadFactory is now wired up to ContextService

Important: This change disables SXC for parsin web.xml, I wasn't able to get the sxc-maven-plugin to run on java 17/jaxb 4 in a meaningful time, probably needs some more work

Thanks to @rzo1 a full build for this branch is already running here

TCK results

tck/concurrency-standalone:

[INFO] Tests run: 147, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 176.575 s - in TestSuite
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 147, Failures: 0, Errors: 0, Skipped: 0

tck/concurrency-sigtest:

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.950 s -- in ee.jakarta.tck.concurrent.spec.signature.SignatureTests
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

@rzo1
Copy link
Contributor

rzo1 commented Sep 2, 2024

Note: We are currently looking into SXC to avoid to having to disable it here. Current status is, that we created a Jakarta-migrated version of SXC and @jungm started to integrated this version on a separate branch. If this works out, we can update it here.

@jungm
Copy link
Member Author

jungm commented Sep 2, 2024

IMO we should not regenerate the SXC accessors in this PR, would make the diff absolutely huge and hard to review.
Think it's best to first merge both the SXC rework and this PR, then regenerate accessors on main branch

@jungm
Copy link
Member Author

jungm commented Sep 2, 2024

Also there is currently one test failure left (org.apache.openejb.threads.ManagedScheduledExecutorServiceTest.triggerRunnableSchedule)

@rzo1
Copy link
Contributor

rzo1 commented Sep 2, 2024

IMO we should not regenerate the SXC accessors in this PR, would make the diff absolutely huge and hard to review. Think it's best to first merge both the SXC rework and this PR, then regenerate accessors on main branch

Yup. This is done in a separate PR but my comments aim to avoid merging this PR until we have re-generated the accessors because disabled something tends to be forgotten in the code base :)

From my POV I would prefer:

  1. Integrate SXC work
  2. Regenerate stuff
  3. Rebase this PR
  4. Regenerate concurrency related stuff
  5. Be Happy

Or are there any objections in doing so?

I am also open to

  1. Integrate SXC
  2. Integrate Concurrency
  3. Re-generate accessors + re-enable SXC (but I can remember a discussion on the dev list, that disabling SXC isn't a particulary good idea :) )

@jungm
Copy link
Member Author

jungm commented Sep 2, 2024

+1 for your preferred suggestion, just don't want this PR to become like a 10k+ diff that's impossible to review

# Conflicts:
#	container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBeanInfo.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/Interceptor.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/SessionBean.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
#	container/openejb-jee/src/main/java/org/apache/openejb/jee/WebFragment.java
@jungm
Copy link
Member Author

jungm commented Sep 15, 2024

I merged main into this branch, regenerated the SXC accessors and enabled SXC again for parsing web.xml. Also the test I mentioned in a comment above should be fixed now.

TCK is still passing on my machine and full build is green: https://ci-builds.apache.org/job/Tomee/view/tomee-10.x/job/pull-request-manual/130/

@jungm jungm merged commit 0dddb2a into apache:main Sep 16, 2024
1 check passed
@jungm jungm deleted the concurrency-work branch September 18, 2024 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants