You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Jim Marino <jm...@myromatours.com> on 2006/08/14 23:29:04 UTC
callbacks transcript from today
[12:24pm] jmarino: sorry you pinged before?
[12:25pm] isilval__: yeah, I want to try to get on the same page wrt
CompositeReference, its binding, wiring and connections prior to
getting callbacks for the local via reference case
[12:26pm] jmarino: k
[12:27pm] isilval__: don't know if you saw my note asking about
bindings for composite references
[12:27pm] jmarino: not yet - let me read it for a sec
[12:27pm] isilval__: it's just a couple of paras
[12:28pm] jmarino: k so in sca there is a concept of an SCA "default"
binding that can act remotely. I think this is different, it's a
"composite binding"
[12:30pm] isilval__: that sounds agreeable, but (as rfeng also seems
to be asking about) it seems like a CompositeReference object would
need a binding in order for the builder to add it the
CompositeComponent that contains it
[12:30pm] jmarino: this means we would have some type of reference
entry and a binding entry that would point to the target address. The
binding could be set either in the SCDL directly or in the use of the
composite
[12:31pm] jboynes: is this a different type of "default" binding?
[12:31pm] isilval__: by reference entry do you mean the SCAObject?
[12:31pm] jboynes: I mean, if there is no <binding> element, do we
supply a default?
[12:32pm] jboynes: and what is the difference between no <binding>
and <binding.sca> ?
[12:32pm] isilval__: the way I understand binding.sca is as a
proprietary implementation of a remote binding
[12:33pm] isilval__: so it sounds reasonable not to use in this case
[12:33pm] isilval__: but I may be wrong
[12:33pm] jmarino: yes it is a proprietary implementation of a binding
[12:33pm] jmarino: we could however say we also support a
"proprietary" composite binding as well
[12:34pm] isilval__: a remote one, more specifically
[12:34pm] jmarino: in that case we need to be able to express a
target uri
[12:35pm] jboynes: where would you use this?
[12:35pm] isilval__: unless the component whose implementation the
composite that contains the reference is resolves the target
[12:35pm] jboynes: yes
[12:36pm] jboynes: (that was a hard one to parse)
[12:36pm] isilval__: sorry ...
[12:36pm] jboynes:
[12:37pm] mdinges left the chat room.
[12:37pm] jmarino: on ingacio's point, we always go through a
reference in the child
[12:37pm] jmarino: the reference needs to point to some target at
some point, e.g. the binding could be set in the parent
[12:38pm] isilval__: the parent being the hard to parse component?
[12:39pm] jboynes:
[12:39pm] jmarino: I think we have two composites, a parent and a child
[12:39pm] jmarino: the child contains a component and a reference
[12:39pm] jboynes: ah, confusion over parent
[12:40pm] jmarino: the component in the child is wired to a reference
in the child
[12:40pm] isilval__: with you so far
[12:40pm] jmarino: the reference is wired to something else
[12:40pm] isilval__: the reference in the child does not have a target
[12:40pm] jboynes: the reference is not wired
[12:40pm] jmarino: k then it needs to be wired in the parent
[12:41pm] jmarino: all references must be satisfied at some point
[12:41pm] isilval__: presumably the parent resolves the reference?
[12:41pm] jboynes: the component in the parent composite that is
implemented by the child composite defines the target for the
reference in the cild
[12:41pm] jmarino: there needs to be a wire in the parent or some way
to satisfy the reference
[12:41pm] jmarino: yes
[12:42pm] jboynes: equally hard to parse
[12:42pm] isilval__: yes
[12:42pm] isilval__:
[12:42pm] jmarino: k so we're on that page
[12:43pm] isilval__: so we need a separate mechanism to generate a
BoundReference for the targetless reference
[12:43pm] isilval__: or will we not even call it a BoundReference?
[12:43pm] jmarino: at some point the loaders have to set the target
[12:44pm] jboynes: i don't think it's a BoundReference
[12:44pm] jmarino: the wiring infrastructure I don't think should
have special cases in it if possible
[12:44pm] jboynes: the component will have a ReferenceTarget
[12:44pm] isilval__: right now the connector only recognizes
BoundReferences
[12:45pm] jboynes: the ReferenceTarget will define the target for the
Reference in the componenttype
[12:45pm] isilval__: and it thinks the alternative (ie,
ReferenceDefinitions) are references on atomic components
[12:46pm] isilval__: need to step out for a min
[12:47pm] jmarino: I think we may be talking about different things
again
[12:47pm] lresende: jboynes: is there any tools to update all headers
on a specific tree ?
[12:47pm] jboynes: maybe - I think there is confusion and a lack of
clarity here
[12:48pm] jboynes: lresende: look in etc
[12:48pm] jmarino: I see this child component---->reference---->
(binding)--->target in parent
[12:48pm] jboynes: addLicense2java.pl
[12:48pm] jboynes: give it a list of java source files to crunch
[12:49pm] jboynes: jmarino: I don't grok
[12:50pm] jboynes: are you talking about how its configured or how it
turns out at runtime?
[12:50pm] jmarino: how it is configured first
[12:50pm] jboynes: ok
[12:50pm] jboynes: I see ...
[12:50pm] jmarino: in the runtime the reference just gets turned into
invocation chains
[12:50pm] jboynes: parent composite has a ComponentDefinition which
will have a ReferenceTarget
[12:51pm] jmarino: yes
[12:51pm] jboynes: the ComponentDefinition will have a
Implementation<Composite>
[12:51pm] jmarino: ah k got it
[12:51pm] jboynes: which will identify the child composite
[12:51pm] isilval__: sorry, I'm back
[12:51pm] jmarino: I thought you were saying a targetRef on the child
[12:51pm] jmarino: k recap for Ignacio?
[12:51pm] jboynes: k
[12:52pm] jboynes: can you - I have to step out for a couple as well
[12:52pm] jmarino:
[12:52pm] jmarino: k basically have the following:
[12:52pm] jmarino: for configuration:
[12:53pm] jmarino: child component---> reference :: in same composite
[12:53pm] ant_away is now known as ant.
[12:53pm] isilval__: in the scdl, you mean
[12:53pm] jmarino: in the parent composite we use a target reference
to wire the child reference to a target
[12:53pm] jmarino: yes
[12:53pm] isilval__: ok
[12:53pm] jboynes: not quite
[12:53pm] jmarino: ?
[12:54pm] isilval__: a reference element in the component
[12:54pm] jboynes: the ReferenceTarget is wiring the component
[12:54pm] jboynes: the component happens to be implemented by a
composite
[12:54pm] isilval__: that somehow gets associated with the composite
reference?
[12:55pm] jboynes: yes the child Composite needs to delegate down to
the CompositeReference that is it's child
[12:56pm] isilval__: when the child CompositeComponent's
addOutboundWire is called, you mean?
[12:56pm] jboynes: yes
[12:56pm] isilval__: I don't any occurrence of that call at the moment
[12:57pm] isilval__: perhaps I'm not looking where I should
[12:57pm] jboynes: jmarino: agree?
[12:57pm] jmarino: I think that is what I said above about the target
reference. Target reference is the config item
[12:58pm] jmarino: we need the wiring infrastructure to turn that
into the addOutboundWire call
[12:58pm] jboynes: I didn't get the bit "to wire the child reference
to a target"
[12:58pm] jmarino: right?
[12:59pm] jmarino: there are two things in the child composite: a
child component and a reference
[12:59pm] jboynes: yes
[12:59pm] isilval__: with you
[1:00pm] jmarino: the reference has a wire that ultimately points to
some target
[1:00pm] jboynes: yes
[1:00pm] isilval__: ok
[1:00pm] jmarino: that wire is supplied by the addOutboundwire
[1:00pm] jboynes: no
[1:00pm] jmarino: ?
[1:00pm] isilval__: or is it supplied to the addOutboundWire?
[1:00pm] jboynes: addOutboundWire is called on the CompositeComponent
- it delegates that down
[1:01pm] jmarino: yes
[1:01pm] jmarino: down to what?
[1:01pm] jboynes: the important think is that the wiring framework is
wriing the CompositeComponent not the child reference
[1:01pm] jmarino: yes!
[1:01pm] jmarino: CompositeComponent.addOutboundWire
[1:02pm] jboynes:
[1:02pm] isilval__: sounds ok, who wires the CompositeComponent?
[1:02pm] jmarino: so I think we're talking the same thing
[1:02pm] jmarino: the Connector needs to wire it
[1:02pm] jboynes: good
[1:02pm] jboynes: I have to run for 30min
[1:03pm] jmarino: I can stay for a bit
[1:03pm] jmarino: how about you Ignacio?
[1:03pm] isilval__: ok, given the CompositeComponent that represents
the component with the target reference
[1:03pm] jboynes: I think the key thing we've established is that the
connector is wiring the CompositeComponent not the reference
[1:03pm] jmarino: yes
[1:03pm] jboynes: cool
[1:03pm] jboynes: I'l be here lurking
[1:03pm] isilval__: I can stay, agree w jboynes
[1:03pm] jmarino: k go ahead Ignacio
[1:04pm] isilval__: but how does the connector see the composite
reference?
[1:05pm] isilval__: I does not seem to be there because it was not
put in the composie component because it was not a bound reference
[1:05pm] jmarino: right so in ConnectorImpl we will need to add a few
things: line 90
[1:06pm] isilval__: k
[1:06pm] isilval__: on it
[1:06pm] jmarino: k I see the issue I think
[1:07pm] jmarino: hold on a sec...just got distracted
[1:07pm] isilval__: ok
[1:09pm] jmarino: sorry, we're going to need to have to connect the
composite's reference targets...
[1:10pm] isilval__: in the if of line 90?
[1:10pm] jmarino: I'm not sure there
[1:11pm] jmarino: that's the main point where it gets evaluated but
the issue like you mentioned is there is no model information at that
point
[1:11pm] isilval__: and I also don't see how the composite component
gets its outbound wire to pass on to the reference
[1:12pm] isilval__: but that may be that I have not looked hard enough
[1:12pm] jmarino: addOutboundWire is on Component
[1:12pm] jmarino: Composite inherits from it
[1:13pm] isilval__: right, but is it being called at the moment?
[1:13pm] jmarino: probably not
[1:13pm] jmarino: it is for Component
[1:13pm] jmarino: Atomic
[1:14pm] jmarino: I'd have to check for the composite case
[1:14pm] isilval__: about the model info, would it make sense to have
an additional object for this kind of reference?
[1:14pm] isilval__: given that ReferenceDefinition and BoundReference
have meanings of their own?
[1:15pm] jmarino: I still think it is a Reference
[1:15pm] jsisson left the chat room. (Read error: 104 (Connection
reset by peer))
[1:15pm] isilval__: me too
[1:15pm] jsisson joined the chat room.
[1:15pm] isilval__: but it does not have a remote binding and it does
not yet have a target
[1:16pm] jmarino: this one may require a bit of thought. At one level
it is a Reference. At another level it is part of the component type
[1:17pm] isilval__: hmm, it seems to me a composite is also a
component type
[1:18pm] jmarino: yes
[1:19pm] isilval__ left the chat room.
[1:20pm] jmarino: yt?
[1:22pm] isilval__ joined the chat room.
[1:22pm] jmarino: yt?
[1:22pm] isilval__: sorry, hit what seems like a trillian bug
[1:23pm] isilval__: back now but lost my chat history
[1:23pm] isilval__: can you see me?
[1:23pm] jmarino: yes
[1:23pm] isilval__: ok, so how should we proceed?
[1:24pm] jmarino: I think we need to come up with a way to handle
this issue of references and how the connector is made aware of them
[1:24pm] jmarino: do you want to start off a discussion/proposal on
the list?
[1:25pm] isilval__: I can, would you mind posting the script of this
discussion so I can refer back to it, as I lost it when trillian
kicked me out?
[1:26pm] jmarino: sure
[1:26pm] jmarino: do you have enough to go on?
[1:27pm] isilval__: I pretty much lost the whole conversation (hit
esc thinking it would erase my current line and it made trillian
freeze and go blank)
[1:28pm] jmarino: k I have the transcript will post. I was asking in
terms of the discussion - do you think you have enough context to
keep going?
[1:30pm] isilval__: I need to better understand where and how the
reference object gets created and how the wiring of the composite
happens prior to connection
[1:30pm] isilval__: I'll try to elucidate from the code but will ping
you if I get stuck
[1:31pm] jmarino: k great thx. the place to look is ConnectorImpl and
also DeployerImpl
[1:32pm] isilval__: yeah, been looking at those, I guess wiring of
the composite happens at some point during build and prior to connect
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org