Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cu-dev] Concurrency 3.0 pulls ready for review: #43, #103 - and two questions on them

Reza,

Thanks for your replies.

I'll add your vote for @Asynchronous.

Considering some ideas for simplest solutions, one might be to use Java default methods to have the interface methods related to serialization be provided but raise an unsupported error so that only providers that can actually do serialization would need to implement them.  Although having said that, I just thought of that it would be possible to have the context provider SPI start out lacking those methods and then use this same default methods approach to add them in later, once a third-party provider is identified which could actually leverage the capability. For now, the CDI spec which will be the initial user of this (so that third-party implementations of CDI can plug in to context propagation) has indicated they absolutely do not want serialization of context.  I didn't find that out until after I sent my original email, but I probably should have guessed it considering how most of what would be in a CDI context are not the sort of things to be persisting across JVMs.  So I'm starting to think that the safest and simplest thing to do would be to cover only what there is currently a use case for while ensuring it's extensible enough to adapt to whatever solution/alternative Java ends up with for serialization if java.io.Serializable is deprecated and removed.  There will always need to be a tradeoff regardless between propagating a non-serializable context type like CDI and being able to persist captured context across JVMs, and the user will just end up needing to decide which it wants.




From:        "Reza Rahman" <reza_rahman@xxxxxxxxx>
To:        "cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        10/12/2021 09:38 PM
Subject:        [EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #43, #103 - and two questions on them
Sent by:        "cu-dev" <cu-dev-bounces@xxxxxxxxxxx>




Hi Nathan,

Firstly thanks for posting this to the mailing list.

I prefer following EJB naming and call it @Asynchronous. I think this will serve to make it clear the intent is to supersede the EJB functionality eventually.

For the Serializable Context issue, I would favor going with the simplest solution that still allows for providers to create more robust implementations that cover clustering cases for timers and batch. I would hate to standardize something that makes that impossible.

Reza Rahman
Jakarta EE Ambassador, Author, Blogger, Speaker

Please note views expressed here are my own as an individual community member and do not reflect the views of my employer.
 


From: cu-dev <cu-dev-bounces@xxxxxxxxxxx> on behalf of Nathan Rauh <nathan.rauh@xxxxxxxxxx>
Sent:
Monday, October 11, 2021 5:46 PM
To:
cu developer discussions
Subject:
Re: [cu-dev] Concurrency 3.0 pulls ready for review: #43, #103 - and two questions on them

 
Thanks everyone who has been reviewing pulls for the Concurrency spec.

The two following pulls could benefit from some additional discussion.

The first of these, for asynchronous methods has thus far received some good review comments which have all been addressed except for the discussion on whether to name it @Async or @Asynchronous or @Asynch, which seemed like a good question to put before the group in case there are any strong preferences.  Among the reviewers thus far, one had a strong preference for @Async and others weren't sure or didn't have a strong preference. Some of the thoughts which have been pointed out thus far:  @Asynchronous would match the EJB and MP FaultTolerance names, which could be an advantage or disadvantage.  @Async lines up with the CompletableFuture.*Async method names.

Issue #43Asynchronous Methods Annotation
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/147




The second of these, for third-party providers of thread context (which will be useful as a prerequisite to getting CDI context propagation from a third-party like Weld), is mostly a copy from MicroProfile Context Propagation, but I want to highlight one aspect that didn't match up because MicroProfile intentionally excluded a couple of methods to avoid addressing it, which is the question of whether to allow for Serializable thread context.  The only place in the specification where this is possible is with the 4 ContextService.createContextualProxy methods that let you create contextual proxies that can be serialized and deserialized across JVMs. MicroProfile avoided the problem by excluding these methods. We could do that, too, by declaring that the combination of third-party thread context with the createContextualProxy methods is only valid if the interface types are not serializable. That could simplify things for providers of third-party context, especially those for which deserializing context to another JVM makes no sense. But it could also be limiting in scenarios such as persistent (EJB) timers and potentially batch that might use the ContextService to store contextual tasks and expect them to be able to run on another JVM.  What are everyones' thoughts on this?

Issue #103Third-Party Providers of Thread Context
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/149








From:        
Nathan Rauh/Rochester/IBM
To:        
"cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        
10/01/2021 03:20 PM
Subject:        
Re: [EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #43, #35, #99, jakartaee-schemas #28



With
 #141for the resource definition annotations being merged now, I created the corresponding to update the deployment descriptors with equivalents for the annotations.
This needs a review under the jakartaee-schemas repo,
https://github.com/eclipse-ee4j/jakartaee-schemas/pull/29.

Here is the full list of outstanding issues with pulls that still need a review,


Issue
#28Jakarta EE Schema Updates for Resouce Definition Annotations
pull to review:

https://github.com/eclipse-ee4j/jakartaee-schemas/pull/29


Issue #43Asynchronous Methods Annotation
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/147


Issue
#35Java SE 8 Date and Time Support
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/143

Issue
#99Cron-based Trigger
This builds on the Java SE Date/Time based trigger (#35 above) so it also includes the commit for it.
For only the changes that are unique to this pull, see the following commit:

https://github.com/eclipse-ee4j/concurrency-api/pull/144/commits/8cec1222b66ea6ff68a730d1923fc7355592efe2








From:        
Nathan Rauh/Rochester/IBM
To:        
"cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        
09/20/2021 04:19 PM
Subject:        
Re: [EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #38, #46, #35, #99, #43



The pulls for copying from MicroProfile were merged last week.


Next I'll aim to get
#140and#141merged, maybe around a week from now.
Let me know if anyone is still in the process of reviewing these.


Also, I've added
#147to the list of pulls open for review,

Issue #38Define Concurrency Resources Portably
This pull is the first step - getting the annotations defined with the most basic attributes.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/141

Issue
#46Parallel Stream Support
The most I can see doing for this one is to have ManagedThreadFactory also implement ForkJoinWorkerThreadFactory.  Alternatively, we could do nothing and leave it to the user to implement something similar based on ContextService.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/140

Issue
#35Java SE 8 Date and Time Support
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/143

Issue
#99Cron-based Trigger
This builds on the Java SE Date/Time based trigger (#35 above) so it also includes the commit for it.
For only the changes that are unique to this pull, see the following commit:

https://github.com/eclipse-ee4j/concurrency-api/pull/144/commits/8cec1222b66ea6ff68a730d1923fc7355592efe2

Issue #43Asynchronous Methods Annotation
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/147








From:        
"Steve Millidge (Payara)" <steve.millidge@xxxxxxxxxxx>
To:        
"cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        
09/13/2021 06:25 AM
Subject:        
[EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #38, #40, #46, #100, #101, #35, #99
Sent by:        
"cu-dev" <cu-dev-bounces@xxxxxxxxxxx>


Hi Nathan,

 

Go ahead and merge.

 

Apologies of being a bit slow in responding recently I am in the middle of a house move and sale.

 

Steve

 

From:cu-dev <cu-dev-bounces@xxxxxxxxxxx> On Behalf Of Nathan Rauh
Sent:
10 September 2021 23:12
To:
cu developer discussions <cu-dev@xxxxxxxxxxx>
Subject:
Re: [cu-dev] Concurrency 3.0 pulls ready for review: #38, #40, #46, #100, #101, #35, #99

 

I'd like to start merging the 3 pulls from the list below that consist of copying interfaces over from MicroProfile.
Let me know if anyone is still in the process of reviewing these and would like more time, otherwise I'll go ahead and merge them in 5 days or so


Issue
#40Completion stages backed by ManagedExecutorService
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/104

Issue
#100ContextService methods for contextualizing individual dependent stage actions
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/138

Issue
#101Completion stages backed by a ContextService
pull (also contains the commit for #100 which is a prereq due to references made in JavaDoc):
https://github.com/eclipse-ee4j/concurrency-api/pull/139
commit that is unique to this pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/139/commits/ba9c817de5e47c4a32ee40c6bd46d97dcb3eea0e




From:        
Nathan Rauh/Rochester/IBM
To:        
"cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        
08/27/2021 01:26 PM
Subject:        
Re: [EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #38, #40, #46, #100, #101, #143, #144




Adding 2 more pulls to the list needing review,


Issue
#40Completion stages backed by ManagedExecutorService
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/104

Issue
#100ContextService methods for contextualizing individual dependent stage actions
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/138

Issue
#101Completion stages backed by a ContextService
pull (also contains the commit for #100 which is a prereq due to references made in JavaDoc):
https://github.com/eclipse-ee4j/concurrency-api/pull/139
commit that is unique to this pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/139/commits/ba9c817de5e47c4a32ee40c6bd46d97dcb3eea0e

Issue
#38Define Concurrency Resources Portably
This pull is the first step - getting the annotations defined with the most basic attributes.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/141

Issue
#46Parallel Stream Support
The most I can see doing for this one is to have ManagedThreadFactory also implement ForkJoinWorkerThreadFactory.  Alternatively, we could do nothing and leave it to the user to implement something similar based on ContextService.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/140

Issue
#35Java SE 8 Date and Time Support
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/143

Issue
#99Cron-based Trigger
This builds on the Java SE Date/Time based trigger (#35 above) so it also includes the commit for it.
commit that is unique to this pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/144/commits/8cec1222b66ea6ff68a730d1923fc7355592efe2






From:        
"Steve Millidge (Payara)" <steve.millidge@xxxxxxxxxxx>
To:        
"cu developer discussions" <cu-dev@xxxxxxxxxxx>
Date:        
08/10/2021 06:52 AM
Subject:        
[EXTERNAL] Re: [cu-dev] Concurrency 3.0 pulls ready for review: #38, #40, #46, #100, #101
Sent by:        
"cu-dev" <cu-dev-bounces@xxxxxxxxxxx>


 

Hi,

 

I will get my team to review. I’m also trying to push to get more feedback and involvement from others through a number of JUG talks and Jakarta tech talks. I’d like to get together a team that is interested in driving this forward in the Jakarta EE 10 timeframe.

 

I think it would be good to also have a co-project lead so I don’t feel the burden to drive the specification falls to me. @Nathan would you be interested in being a co-project lead?

 

Steve

 

From:cu-dev <cu-dev-bounces@xxxxxxxxxxx> On Behalf Of Nathan Rauh
Sent:
09 August 2021 22:31
To:
cu developer discussions <
cu-dev@xxxxxxxxxxx>
Subject:
[cu-dev] Concurrency 3.0 pulls ready for review: #38, #40, #46, #100, #101


 
Now that we are at a point where we can start making updates for Jakarta EE 10, could specification participants review the 5 pulls for the Concurrency 3.0 planned items below (whichever you are comfortable with reviewing) and make comments in them regarding any changes that are needed or otherwise approve them for merging? Thanks!

Issue
#40Completion stages backed by ManagedExecutorService
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/104

Issue
#100ContextService methods for contextualizing individual dependent stage actions
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/138

Issue
#101Completion stages backed by a ContextService
pull (also contains the commit for #100 which is a prereq due to references made in JavaDoc):
https://github.com/eclipse-ee4j/concurrency-api/pull/139
commit that is unique to this pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/139/commits/ba9c817de5e47c4a32ee40c6bd46d97dcb3eea0e

Issue
#38Define Concurrency Resources Portably
This pull is the first step - getting the annotations defined with the most basic attributes.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/141

Issue
#46Parallel Stream Support
The most I can see doing for this one is to have ManagedThreadFactory also implement ForkJoinWorkerThreadFactory.  Alternatively, we could do nothing and leave it to the user to implement something similar based on ContextService.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/140




From:        
Nathan Rauh/Rochester/IBM
To:        
cu developer discussions <cu-dev@xxxxxxxxxxx>
Date:        
05/10/2021 04:29 PM
Subject:        
Ready for review: #38, #40, #46, #100, #101



In addition to the 3 pulls that I mentioned previously (forwarded) for bringing over MicroProfile API,
the following 2 pulls are also ready for review:



Issue
#38Define Concurrency Resources Portably
This pull is the first step - getting the annotations defined with the most basic attributes.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/141


Issue
#46Parallel Stream Support
The most I can see doing for this one is to have ManagedThreadFactory also implement ForkJoinWorkerThreadFactory.  Alternatively, we could do nothing and leave it to the user to implement something similar based on ContextService.
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/140


see below for 3 additional pulls to copy over MicroProfile API,


----- Forwarded by Nathan Rauh/Rochester/IBM on 05/10/2021 04:11 PM -----


From:        
Nathan Rauh/Rochester/IBM
To:        
cu developer discussions <cu-dev@xxxxxxxxxxx>
Date:        
03/31/2021 10:11 AM
Subject:        
Ready for review: #40, #100, #101 for transferring over MicroProfile API to Jakarta EE Concurrency 3.0




Given the amount of proposed content for Concurrency in Jakarta 10, I've started putting together pulls for the MicroProfile-related enhancements currently in the
Milestone 3 list, starting with the ones for copying over API methods around CompletionStage/CompletableFuture.  The following 3 are ready to start reviewing now (I won't actually be merging anything until after the release plan is official, and of course pending approval from the community)

When reviewing these, it will be helpful to note that MicroProfile class ManagedExecutor is the equivalent of our ManagedExecutorService,
and MicroProfile class ThreadContext is the equivalent of our ContextService.

The method signatures themselves are an exact copy (which will be great for compatibility), except for the one place where MicroProfile's ManagedExecutor has a getThreadContext method that returns a ThreadContext, which is switched to ContextService. The intent behind the MicroProfile method here is so that threadContext/contextService.withContextCapture(completionStage/completableFuture) can create CompletionStage/CompletableFuture proxies that are backed by the ManagedExecutor.  But managedExecutor[Service].copy(completionStage/completableFuture) can already do that.  We can decide if the equivalent getContextService method is really wanted/needed here, and if not, I can remove it.  To start out with, I included it in the pull so that you have the opportunity to see what it would look like if we did include it. Please add your feedback on it in the review.  I would be happy with either outcome and will go with the majority on it.


Issue
#40Completion stages backed by ManagedExecutorService
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/104

Issue
#100ContextService methods for contextualizing individual dependent stage actions
pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/138

Issue
#101Completion stages backed by a ContextService
pull (also contains the commit for #100 which is a prereq due to references made in JavaDoc):
https://github.com/eclipse-ee4j/concurrency-api/pull/139
commit that is unique to this pull to review:

https://github.com/eclipse-ee4j/concurrency-api/pull/139/commits/ba9c817de5e47c4a32ee40c6bd46d97dcb3eea0e



_______________________________________________
cu-dev mailing list

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

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



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





Back to the top