Hi,
In the process of refactoring core, I'm attempting to remove the need
for Wire.getContainer(). Two places this is used is
DataBindingInterceptor and PassByValueInterceptor. The former tunnels
up to the wire container's parent and passes the CompositeComponent
as metadata in the transformation context but does not appear to be
used (or at least it's not used in kernel or explicitly called out in
a typed API). Why do we need to do this?
Similarly, PassByValueInterceptor performs a Wire.getContainer on the
target wire and attempts to downcast it to AtomicComponent so that it
can call AtomicComponent.isAllowsPassByReference(). The
AtomicComponent.isAllowsPassByReference() I don't think should exist
at all since allows-pass-by-reference is an service operation-related
quality, i.e. a component implementation may offer multiple services
some of which may contain a mix of operations that allow and/or do
not allow by-reference.
I'd like to remove the use of Wire.getContainer from
DataBindingInterceptor and not pass the composite as context
information unless there is a good reason to do so (it should also
probably be done through a typed API if so).
For PassByValueInterceptor, I'd like to remove this check as well
since the behavior is not correct and later implement metadata that
is added to the service contract Operation.
If people working in these areas can let me know if I've overlooked
something I would appreciate it.
Jim
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]