atom feed28 messages in org.oasis-open.lists.sca-jRE: [sca-j] ISSUE 4 - Dependency rein...
FromSent OnAttachments
Michael RowleySep 25, 2007 3:31 pm 
Barack, RonOct 4, 2007 2:30 am 
Michael RowleyOct 4, 2007 6:30 am 
Peshev, PeterOct 5, 2007 12:12 am 
Simon NashNov 1, 2007 10:13 am 
Blohm, HenningNov 1, 2007 11:15 am 
Simon NashNov 2, 2007 3:17 am 
Mike EdwardsNov 5, 2007 2:46 am 
Michael RowleyNov 29, 2007 12:19 pm 
Peshev, PeterNov 29, 2007 1:31 pm 
Michael RowleyNov 30, 2007 4:45 pm 
Mike EdwardsDec 4, 2007 7:22 am 
David BoozDec 4, 2007 12:59 pm 
Michael RowleyDec 4, 2007 5:07 pm 
Michael RowleyDec 4, 2007 5:11 pm 
David BoozDec 4, 2007 6:37 pm 
Mike EdwardsDec 5, 2007 1:52 am 
Mike EdwardsDec 5, 2007 1:58 am 
David BoozDec 5, 2007 5:35 am 
Mike EdwardsDec 5, 2007 5:57 am 
Blohm, HenningDec 5, 2007 7:05 am 
Peshev, PeterDec 6, 2007 1:05 am 
Michael RowleyDec 6, 2007 5:18 am 
Mike EdwardsDec 6, 2007 9:07 am 
Peshev, PeterDec 7, 2007 12:58 am 
Peshev, PeterDec 7, 2007 2:29 am 
Michael RowleyDec 7, 2007 7:55 am 
Mike EdwardsDec 7, 2007 8:50 am 
Subject:RE: [sca-j] ISSUE 4 - Dependency reinjection
From:Simon Nash (NA@uk.ibm.com)
Date:Nov 2, 2007 3:17:40 am
List:org.oasis-open.lists.sca-j

Having thought about the use cases some more, including the conversational callback callback case explained by Mike R at the end of yesterday's call, I'm OK with this restriction. I think we could make the "injected smart proxy" work, but the subtle differences in semantics from the normal injected proxy would be a pitfall for the unwary.

To make a slightly more general point, I think it's a good principle to favour simplicity rather than sophistication in these discussions. This group of experts may be able to understand the subtle semantics of the more esoteric cases, but I worry that the average business programmer will find some of the advanced features of callbacks more confusing than beneficial.

Simon

Simon C. Nash, IBM Distinguished Engineer Member of the IBM Academy of Technology Tel. +44-1962-815156 Fax +44-1962-818999

"Blohm, Henning" <henn@sap.com> 01/11/2007 18:16

To Simon Nash/UK/IBM@IBMGB, <sca@lists.oasis-open.org> cc

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:NA@uk.ibm.com] Sent: Donnerstag, 1. November 2007 18:13 To: sca@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" <pete@sap.com> 05/10/2007 08:12

To <sca@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"

________________________________

From: Michael Rowley [mailto:mrow@bea.com] Sent: Thursday, 4. October 2007 16:31 To: Barack, Ron; sca@lists.oasis-open.org Subject: RE: [sca-j] ISSUE 4 - Dependency reinjection

Subject line shortened.

________________________________

From: Barack, Ron [mailto:ron.@sap.com] Sent: Thursday, October 04, 2007 5:27 AM To: sca@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:mrow@bea.com] Gesendet: Mittwoch, 26. September 2007 00:31 An: sca@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

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