sca-j message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: RE: [sca-j] ISSUE 4 - Dependency reinjection
- From: Mike Edwards <mike_edwards@uk.ibm.com>
- To: "OASIS Java" <sca-j@lists.oasis-open.org>
- Date: Tue, 8 Jan 2008 08:50:46 +0000
Folks,
Regarding the relationship between reinjection
and the value returned from getServiceReference():
- I think that getServiceReference()
should always return a reference that reflects the current state
of the wiring for the component. This
should not be influenced by whether reinjection is enabled or
not.
- If reinjection is not allowed, then
why is the component using getServiceReference() ?? The component
should already have a copy of the reference
to use - the act of calling getServiceReference() to me looks
like a desire to get a new copy of the
reference - why bother unless you expect it to have changed ??
For me reinjection is one way of getting
a new service reference - calling getServiceReference() is simply
an alternate means to achieve the same
thing.
My viewpoint is based on the simple
idea that the original reference (originally injected or originally
obtained from getServiceReference()
) will always be available for the component to use - the component
may get an exception thrown if, for
example, the target service ain't there any more, but the component
will still be free to use the reference
and to invoke operations on it. The implication is that IF a wiring
change has occurred, this may not affect
the component instances already running - only new instances
created after the change get affected.
Yours, Mike.
Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
Email: mike_edwards@uk.ibm.com
"Reza Shafii" <rshafii@bea.com> wrote
on 07/01/2008 21:07:32:
>
> Another option would be to use Mike's idea of a "reinject"
parameter on
> @Reference to also derive the behavior of the getServiceReference()
> method. If reinject="true" reinjection should occur and
subsequent
> invocations of getServiceReference() would lead to an object referencing
> the new target. If reinject="false", reinjection should
not occur and
> subsequent invocations of getServiceReference() would lead to the
target
> prior to rewiring.
>
> I am also thinking that the reinject=true value would only be valid
if
> the conditions previously discussed apply (i.e. scope is composite,
> conversational interfaces must not be active, and the reference is
field
> based or setter based). This would change the table as attached.
>
> Cheers,
>
> Reza
>
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
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]