I see two cases, managed and non-managed code. In the former, where
the source is a component, there would be one set of chains (no
distinction between inbound and outbound) attached to the source
component. For non-managed code, it would be pretty much the same
thing with the chains held in the proxy or CallableReference.


Apologies if this has been explained previously and is now common
knowledge (if so, could you point me at the explanation?).
We've always had concepts of managed vs. non-managed code. The problem is the specs never made the distinction very well and confused the two in places. One of the main goals of the recent spec changes was to clarify this (hence the reintroduction of things like ComponentContext). The code is now in the 1.0 spec module but Jeremy also posted to the wiki on this. I'm not sure, though, if you are referring to this.
So is the idea that each chain has interceptors (say, databinding and
security) that are used for both incoming and outgoing messages? Is
there going to be a way to indicate to an interceptor which way is in
effect?
I'm not following and probably missing something. I don't think this is any different than what we have today. There would be forward and callback chains associated with a Wire. If the interceptor needs to know if the invocation is a forward or callback invocation, it would be the job of the interceptor "builder" on the slave to provide it with that information (or have the builder instantiate different interceptors). There is a mail thread on interceptor builders from last week which covers the format for serializing a portable wire definition from master to slave. The idea is the definition would be created on the master and sent to the slave where interceptor builders would be responsible for creating interceptors according to some extensible wire definition information.

And would there be a way to indicate the order in each
direction? Maybe making the chain a doubly-linked list?

Could you explain a little further? I think the chain is exactly how we have it today except it is one as opposed to two chains for each direction.



A --------------\
                       |-----------------C
B --------------/

I'm proposing we do the following:

A ---------------
                       C
B ---------------

In the approach connections would be:

1. Between components
2. From a transport to a component
3. From a component to a transport
4. From a transport to a transport


When you say transport, do you mean a composite reference and/or
service implementation for a given binding?
I think of transport as what a binding provides a "link" to (not a composite reference or service since they may have multiple bindings).
Even with a single hop, a callback invocation handler at C would still
need to be able to choose between A and B depending on where the
forward call came from. How do you see it referring to the correspon-
ding wire when it needs to make the callback?
It would be retrieved from the context, basically how it is today. We need to be careful here, though, about dealing with context cleanup on threads.

Jim



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to