[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [sca-j] ISSUE 4 - Dependency reinjection
+1 with amendment that @callback should not be supported in multi-threaded components (like composite scoped components). The solution of a smart proxy that resolves potential concurrency problems by relying on something inherently thread-local (like the request context) introduces the problem that the service reference at hand does not truly represent a conversation (target) anymore but a conversation (target) only as far as the current thread is concerned. It should however be completey legal to keep the service reference and have it call from another request (for example to a different service of the component). Thanks, Henning -----Original Message----- From: Simon Nash [mailto:NASH@uk.ibm.com] Sent: Donnerstag, 1. November 2007 18:13 To: sca-j@lists.oasis-open.org Subject: RE: [sca-j] ISSUE 4 - Dependency reinjection On last week's SCA-J call, I took an action to consider what the callback target would be if multiple forward calls are made to callback interfaces of a composite-scoped component. I can think of 3 options: 1. Use the value from the last forward call that was made. This could lead to a need for reinjection. It is not safe if the component can receive multithreaded forward invocations. 2. Store the callback address on the thread when a forward call is received, and use this address for the callback. This works with multithreaded forward invocations but does not work if a forward request spins off a new thread to make the callback. 3. When the callback request is made, take the callback address from the current RequestContext. This is a small variation on 2, but it is more robust because it uses official APIs. I think 3 is the best approach. Simon Simon C. Nash, IBM Distinguished Engineer Member of the IBM Academy of Technology Tel. +44-1962-815156 Fax +44-1962-818999 "Peshev, Peter" <peter.peshev@sap.com> 05/10/2007 08:12 To <sca-j@lists.oasis-open.org> cc Subject RE: [sca-j] ISSUE 4 - Dependency reinjection Hi, The issue in the JIRA has an amendment : AMENDMENT: This issue covers not only @Reference, but also (reinjection of) @Callback and @Property. Can someone clarify what scenario would lead to reinjection of callback ? Unlike references, callbacks can not start unwired, an attempt to call such component with unwired callback would result to - "NoRegisteredCallbackException" Best Regards Peter ________________________________ From: Michael Rowley [mailto:mrowley@bea.com] Sent: Thursday, 4. October 2007 16:31 To: Barack, Ron; sca-j@lists.oasis-open.org Subject: RE: [sca-j] ISSUE 4 - Dependency reinjection Subject line shortened. ________________________________ From: Barack, Ron [mailto:ron.barack@sap.com] Sent: Thursday, October 04, 2007 5:27 AM To: sca-j@lists.oasis-open.org Subject: [sca-j] ISSUE LOGGED: JAVA-4: Dependency reinjection http://www.osoa.org/jira/browse/JAVA-4 ________________________________ Von: Michael Rowley [mailto:mrowley@bea.com] Gesendet: Mittwoch, 26. September 2007 00:31 An: sca-j@lists.oasis-open.org Betreff: [sca-j] NEW ISSUE: Dependency reinjection TARGET: Java Common Annotations and APIs specification section "@Reference" DESCRIPTION: The description of the @Reference annotation does not specify what happens if the wire changes after the component has been instantiated. One example of a place where this could occur is for a composite-scoped component that exists at the domain level. The target of its reference could start off unwired (and thus would be null). A later deployment could deploy a <wire source="" target=""> element which provides a target for this component. PROPOSAL: In the above scenario, when constructor-based injection is not being used, the target MAY be reinjected. This would be marked as "MAY" behavior, since it would not be required of all runtimes. However, the developer who is creating portable code needs to know that this reinjection may occur. Other scenarios where such reinjection may occur is TBD. Note that reinjection should never occur for a conversational-scoped component that is in middle of its conversation. Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. You may a link to this group and all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]