On 8/15/07, Simon Laws <[EMAIL PROTECTED]> wrote:
>
>
>
> On 8/15/07, ant elder <[EMAIL PROTECTED]> wrote:
> >
> > On 8/15/07, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
> > >
> > > ant elder wrote:
> > > > On 8/15/07, Jean-Sebastien Delfino < [EMAIL PROTECTED]> wrote:
> > > >
> > > >> Jean-Sebastien Delfino wrote:
> > > >>
> > > >>> Jean-Sebastien Delfino wrote:
> > > >>>
> > > >>>> [snip]
> > > >>>>
> > > >>>>
> > > >>>>>> Another problem is all our bindings work differently. So
> > > >>>>>> <binding.ws/>, <
> > > >>>>>>
> > > >>>>>>> binding.rmi/> <binding.jms/> <binding.jsonrpc/> etc all result
> > in
> > > a
> > > >>>>>>> service
> > > >>>>>>> being available at a different endpoint. Also the uri
> > attribute
> > > >>>>>>>
> > > >>>>>> on those
> > > >>>>>>
> > > >>>>>>> bindings all work differently so uri="foo" for some bindings
> > > >>>>>>>
> > > >>>>>> would be
> > > >>>>>>
> > > >>>>>>> treated as relative uri, for others an absolute one. What we
> > need
> > > >>>>>>>
> > > >>>>>> is a
> > > >>>>>>
> > > >>>>>>> bit
> > > >>>>>>> of code that implements section 1.7.2.1 of the assembly spec
> > > >>>>>>>
> > > >>>>>> which all
> > > >>>>>>
> > > >>>>>>> bindings then use. (a generic version of
> > > >>>>>>> Axis2ServiceProvider.computeActualURI). Didn't this come up
> > once
> > > >>>>>>>
> > > >>>>>> before
> > > >>>>>>
> > > >>>>>>> and
> > > >>>>>>> something was changing in the runtime binding for this?
> > > >>>>>>>
> > > >>>> I think that these URIs should be determined as part of the
> > process
> > > >>>> of combining wires and uris specified at different levels in the
> > SCA
> > > >>>> assembly. If the correct URIs are determined once as part of this
> > > >>>> process, a binding provider should be able to just call
> > > >>>> binding.getURI(), without having to calculate it at all, on its
> > own
> > > >>>> or even calling a central URI calculator method.
> > > >>>>
> > > >>>>
> > > >>> Before trying to implement a common algorithm for all bindings, I
> > > >>> thought I'd double check the various SCA spec docs. Here's what I
> > > found:
> > > >>>
> > > >>> - WebService binding
> > > >>> absolute URI specified in binding/@uri
> > > >>> or
> > > >>> base domain URI for http: + '/' + component URI + '/' + relative
> > URI
> > > >>> specified in binding/@uri
> > > >>> or
> > > >>> absolute URI specified in WSDL
> > > >>> or
> > > >>> base domain URI for http: + '/' + component URI + '/' + relative
> > URI
> > > >>> specified in WSDL
> > > >>> or
> > > >>> absolute URI specified in a wsa:Address
> > > >>> or
> > > >>> base domain URI for http: + '/' + component URI + '/' + relative
> > URI
> > > >>> specified in a wsa:Address
> > > >>>
> > > >>> - JMS binding
> > > >>> JMS specific URI specified in binding/@uri
> > > >>> or
> > > >>> no URI, combination of JMS specific attributes
> > > >>>
> > > >>> - EJB binding
> > > >>> base domain URI for corba:iiop: + '#' + relative URI specified in
> > > >>> binding/@uri
> > > >>> or
> > > >>> base domain URI for corba:rir: + '#' + relative URI specified in
> > > >>> binding/@uri
> > > >>> or
> > > >>> absolute URI specified in binding/@uri
> > > >>>
> > > >>> I think that other bindings introduced by Tuscany can follow
> > similar
> > > >>> patterns:
> > > >>>
> > > >>> - RMI binding
> > > >>> similar to EJB binding
> > > >>>
> > > >>> - JSON, Ajax and Feed bindings
> > > >>> absolute URI specified in binding/@uri
> > > >>> or
> > > >>> base domain URI for http: + '/' + component URI + '/' + relative
> > URI
> > > >>> specified in binding/@uri
> > > >>>
> > > >>> Thoughts? could you guys please review to make sure I understood
> > the
> > > >>> specs correctly? Thanks.
> > > >>>
> > > >>>
> > > >> Default values for service binding URIs are now initialized by
> > > >> CompositeBuilder, so binding extensions do not have to repeat that
> > > logic
> > > >> anymore.
> > > >>
> > > >> Service binding extensions can now call binding.getURI() and get:
> > > >>
> > > >> - binding/@uri if it the specified URI is absolute
> > > >>
> > > >> - component URI + binding/@uri if the specified URI is relative
> > > >> ../ ./ etc. are supported as supported by java.net.URI
> > > >> for a domain level composite service, component URI is empty
> > > >> for a service on a domain level component, component URI is the
> > > >> component name
> > > >> for a nested component, component URI is the sum of the names of
> > the
> > > >> nested components separated by '/'
> > > >>
> > > >> - component URI / binding/@name if no URI is specified on the
> > binding
> > > >>
> > > >> - component URI / service/@name if no binding name is specified
> > > >>
> > > >> Binding extensions are still responsible for determining the
> > effective
> > > >> URI, choosing their specific protocol scheme, or applying any other
> > > >> binding-specific precedence rules (for example the Web Service
> > binding
> > > >> needs to consider the URI specified in a WSDL port or WSDL
> > endpoint).
> > > >>
> > > >
> > > >
> > > > Why is component URI empty for a service on a domain level
> > component? Is
> > > > that in the spec somewhere?
> > > >
> > > >    ...ant
> > > >
> > > >
> > >
> > > Not for a domain level component, but for a domain level composite
> > > service.
> > >
> > > From my original description:
> > > "for a domain level composite service, component URI is empty"
> > >
> > > From the assembly spec:
> > >
> > > 2380 Services deployed into the Domain (as opposed to services of
> > > components) have a URI that does
> > > 2381 not include a component name
> >
> >
> > Ok i see, thanks for the line numbers.
> >
> > The website page on binding.ws describes this a bit but i think I'm
> > going to
> > a new page on the website just about how binding uri's work and link to
> > that
> > from the other binding pages. Anyone feel free to help out and make it
> > as
> > clear as possible.
> >
> >    ...ant
> >
> I'd like to make sure this is absolutely clear in my mind (if no one
> else's). What would you like me to do?
>
> Simon
>

The page i've started is at
http://cwiki.apache.org/confluence/display/TUSCANY/SCA+Java+binding+endpoints

So the idea was just add a bunch more examples of different configurations
and the resulting endpoints, maybe also adding a sentence or two saying how
the endpoint is arrived at for each example. Does that sound ok / useful?
Feel free to suggest alternative approaches , add different examples or more
description etc.

    ...ant

Reply via email to