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]

Reply via email to