Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Nathan Rauh
    @njr-11
    Excellent - Thanks. I reviewed and approved it.
    Nathan Rauh
    @njr-11
    Given that the only change to align with Jakarta EE 8 is the TCK dependency update (and I noticed #172 requiring us to exclude the EL dependency, which I opened a pull for), I've added a comment to #183 suggesting that this could just be another micro release (1.0.2) rather than a new minor version (1.1). We haven't merged any commits for new API since releasing 1.0, and staying at 1.0 would make it clear that nothing has changed.
    Matej Novotny
    @manovotn
    Fine by me, but as I commented on the issue, if other MP spec go with minor version bump, we might as well do that too.
    No harm done for us either way I think.
    Emily Jiang
    @Emily-Jiang
    Doing a micro release is ok @njr-11 as Context Propagation won't be included in umbrella release. If it does, you have to a minor release as micro releases will not be picked up by umbrella releases.
    Nathan Rauh
    @njr-11
    A 1.0.2 micro release for updating the TCK dependency to Jakarta EE is available here:
    https://mvnrepository.com/artifact/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.0.2
    Matej Novotny
    @manovotn
    @FroMage @njr-11 Does any of you remember how we decided to handle SECURITY context propagation? We declare its propagation in the spec, but we only vaguely declare what it is and have no TCKs for it. There isn't a unified way to do security in MP, so we cannot easily test it (granted, JTA isn't part of MP either), unless we'd add an SPI for that (not saying we should).
    But with this in mind, we should maybe mention this in the spec text somehow, e.g. the reasons why there are no TCKs and that it's probably as optional as transaction propagation is.
    Nathan Rauh
    @njr-11
    I think the idea behind SECURITY context was basically Java EE - compatibility with Java (now Jakarta) EE Concurrency, which included security as one of the core context types. Security context doc was written very generically and sparsely in MicroProfile to avoid requiring any sort of dependency on Java EE and avoid tying implementations to Java EE, but still aligning with it and remaining compatible with it. Initially, TRANSACTION context was treated similarly, although we ended up elaborating more and even adding tests for it, with various checks in place allowing implementations to optionally include none/some/all of it. We could certainly add some Java/Jakarta EE related TCK tests for security context, and make them optional in the sense that tests pass if you don't have a concept of security context, although I suspect it would require the additional complexity of the developer who is running the tests needing to follow prerequisite vendor-specific instructions for defining users and such.
    Matej Novotny
    @manovotn
    Yeah, I gave it some more thought and I am not sure a TCK would make much sense given that MP has no specification for security and even in EE the solutions very between application servers.
    Emily Jiang
    @Emily-Jiang
    We are looking at integrating Context Propagation with Fault Tolerance, we have a question on CDI context, application context and transaction context.
    1. Does weld support session and conversation context propation?
    2. What does application context mean? Does it mean jndi context?
    3. When I specify transaction context propagation, will the method failure cause transaction rollback? What exactly does it mean?
    Ken Finnigan
    @kenfinnigan
    How can it be integrated with Context Prop outside the platform?
    Emily Jiang
    @Emily-Jiang
    We are in the planning stage. Making it optional is one of the choices. I planned to discuss this in MP call.
    Nathan Rauh
    @njr-11
    Application context includes the java:comp, java:module, and so forth JNDI namespace of the application component, as well as its thread context class loader..
    Transaction context propagation means that the task or completion stage runs under the same transaction of the thread that submits the task or creates the stage. If the task or completion stage wants to roll back the transaction, it can do so with the usual rollback API, or it can mark the transaction for rollback with setRollbackOnly. The spec does not have anything where we auto-rollback due to a failure, which would limit flexibility of implementation by forcing rollback on exception paths.
    Transaction context propagation also covers propagation of the lack of any transaction to a thread. So if the original thread was not running in a transaction to start with, then the task or completion stage will also run without any active transaction on the thread.
    Emily Jiang
    @Emily-Jiang
    awesome thanks @njr-11 !
    Stéphane Épardaud
    @FroMage
    Is the TCCL propagation tested by the TCK? We were wondering if we should implement that for Quarkus, so I don't think it is, because we don't have it ATM.
    And I didn't know it was supposed to be covered by the Application context.
    Emily Jiang
    @Emily-Jiang
    @manovotn can Weld propagate session, conversation context?
    Stéphane Épardaud
    @FroMage
    yes
    Nathan Rauh
    @njr-11
    @FroMage the TCK covers thread context classloader propagation as part of Application context in the coverage for ManagedExecutor,
    https://github.com/eclipse/microprofile-context-propagation/blob/45016b23962d8e1e63c2ea0a7b40e3c6ffc9bc0f/tck/src/main/java/org/eclipse/microprofile/context/tck/ManagedExecutorTest.java#L1543
    I don't see a similar test for ThreadContext, but Application context should logically mean the same for both. The Java EE Concurrency spec also includes propagation of the application component's thread context class loader, and we were intending to at least match the amount of context propagation that is done there.
    Stéphane Épardaud
    @FroMage
    This doesn't look like it checks if the TCCL is propagated, but merely if there is one, no?
    I don't even see where it's set.
    Matej Novotny
    @manovotn
    @Emily-Jiang yes, all built-in contexts in Weld can do that
    Emily Jiang
    @Emily-Jiang
    @manovotn thanks
    Nathan Rauh
    @njr-11
    @FroMage yes, the test could use some improvement. Currently it assumes that the thread context class loader was set by the container when running the servlet request, and verifies that an application class, which the thread context class loader ought to be able to load, is actually loadable. So it's dependent on implementation whether this is actually testing anything. It would be nice to include a test that actually sets a different thread context class loader as you say, and check if that propagates
    Stéphane Épardaud
    @FroMage
    I wonder if TestNG sets it, because in our case we're not setting it, pretty sure
    So this test just tests that the current TCCL is the same for everyone and can load a class on the classpath, not that it's propagated
    ¯_(ツ)_/¯
    Emily Jiang
    @Emily-Jiang
    @FroMage @njr-11 @manovotn as I mentioned earlier MicroProfile Fault Tolerance would like to consume Context Propagation. Would any of you and others be able to come to our call on 30th June 2-3pm UK time?
    Stéphane Épardaud
    @FroMage
    I could, yes
    Nathan Rauh
    @njr-11
    For anyone who did not attend the June 30 MP Fault Tolerance call mentioned above, I have added an agenda item to the next MP Context Propagation meeting on July 9 to consider whether or not we should define a minimal set of context for implementations to propagate by default. Emily raised eclipse/microprofile-context-propagation#193 for this.
    Nathan Rauh
    @njr-11
    Does anyone know if the details/process around using the MicroProfile Community Live Hangout has changed? I tried to join today's MP Context Propagation call and Zoom is giving me the "Waiting for host to start this meeting" message.
    Emily Jiang
    @Emily-Jiang
    yes
    Zoom now reinforced the password login
    only host can start the call and the host can accept attendees. MP is looking how to distribute password. For now, I suggest you use alternative webex or zoom links.
    Nathan Rauh
    @njr-11
    Given the MP Config breaking change that required MP Context Propagation to change how the user configures an empty set of context, it looks like we will need to cut a new release (1.1?) in order to be compatible with MicroProfile 4.0. I can start to look into that if there are no objections. Also let me know if there are any outstanding open issues that we ought to wait for, although glancing quickly over what is out there, it doesn't look like there is anything out there that is currently being worked.
    Stéphane Épardaud
    @FroMage
    I think it should be fine
    Nathan Rauh
    @njr-11
    Here is a link to the newly created MicroProfile Context Propagation 1.1 release, for compatibility with MicroProfile 4.0,
    https://github.com/eclipse/microprofile-context-propagation/releases/tag/1.1
    Stéphane Épardaud
    @FroMage
    @njr-11 Hi, I've a question. I'm trying to upgrade to 1.1 in SR-CP and hitting an issue due to our implementation of the Application ThreadContext
    Which deals with the TCCL
    Some tests in the TCK now require this Application ThreadContext, so I added it
    But now the TCK fails because lots of tests clear the TCCL
    And so we end up having some code that rely on it not being null, suddenly fail
    So, is it really the right thing to do to set the TCCL to null, is it what you do in OpenLiberty?
    Perhaps I should reset it to the system CL
    Stéphane Épardaud
    @FroMage
    That makes it pass, it's probably the better thing to do
    Nathan Rauh
    @njr-11
    I just checked, and OpenLiberty sets it to the system class loader when clearing it.
    Stéphane Épardaud
    @FroMage
    OK thanks, that makes a lot of sense
    Nathan Rauh
    @njr-11
    Given that the main MicroProfile number is still unavailable (requires a host code), I scheduled a one-time webex meeting for today's call. Let's give this a try and see how it goes,
    Meeting link:
    https://ibm.webex.com/ibm/j.php?MTID=m7f7f70a64874d7a9889d6fc7f8d67a2d
    Meeting number:
    145 548 5765
    MPCP12Nov20 (67271266 from phones and video systems)
    Nathan Rauh
    @njr-11
    One-time webex meeting for Thursday's (Dec 10) MicroProfile Context Propagation call:
    Meeting Link:
    https://ibm.webex.com/ibm/j.php?MTID=mafafd6613681f093db1bf4db8597715a
    Meeting number:
    145 325 2560
    Password:
    mpcp2020D10 (67272020 from phones and video systems)