Simon,

Thank you for your reply.

I haven't looked at the node APIs yet, so I will take a look.

I think I will be able to use SCADomainFinder in the scenario that I have at
the moment, where an OSGi service is exposed as a remote service through
SCA, and a remote reference is obtained in another OSGi runtime also using
SCA. But in the general case, I might (I think) want  to use SCA to create a
proxy to a remote web service where the service itself  is not exposed
through SCA.  If I want to use SCADomainFinder to obtain the domain and then
use it to find the web service, presumably I have to create an SCA domain
with a service definition for the webservice. Or a reference definition. But
I am not sure how that domain could be created with these definitions
without a component definition. I am obviously confused, so I will look at
the node APIs before asking stupid questions.

Thank you...

Regards,

Rajini


On 10/5/07, Simon Laws <[EMAIL PROTECTED]> wrote:
>
> On 10/5/07, Rajini Sivaram <[EMAIL PROTECTED]> wrote:
> >
> > Simon,
> >
> > The service that the reference is wired to is not in the same JVM. At
> the
> > moment, the component definition looks like this:
> >
> >     <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
> >             targetNamespace="http://osgidistribution";
> >             name="helloworldreference">
> >
> >             <component name="HelloWorldServiceComponent">
> >                    <implementation.java class="helloworld.DummyImpl" />
> >                    <reference name="helloWorldService">
> >                         <interface.java interface="
> > helloworld.HelloWorldService" />
> >                         <binding.ws wsdlElement="
> > http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort)"/<
> > http://helloworld/#wsdl.port(HelloWorldService/HelloWorldSoapPort)"/>
> > >
> >                    </reference>
> >             </component>
> >
> >    </composite>
> > I would like to get hold of the proxy corresponding to the reference and
> > add
> > it to the OSGi registry so that an OSGi bundle which has no knowledge of
> > SCA
> > can lookup the proxy in its OSGi registry and invoke the service through
> > this proxy. The OSGi bundle which wants to use this reference is not
> > running
> > in an SCA runtime. It is running in an OSGi runtime and uses its normal
> > OSGi
> > registry lookup (with no remote service support) to resolve its
> > references.
> > We would like to use Tuscany to parse the metadata corresponding to the
> > reference element above and create a proxy for the remote service which
> is
> > then registered with the OSGi registry.
> >
> > Which code in Tuscany should I look at to create a reference on the fly?
> >
> >
> > Thank you...
> >
> > Regards,
> >
> > Rajini
> >
> >
> > On 10/5/07, Simon Laws <[EMAIL PROTECTED]> wrote:
> > >
> > > On 10/4/07, Rajini Sivaram <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Hello,
> > > >
> > > > I would like to use Tuscany as a library (rather than a runtime) to
> > > parse
> > > > a
> > > > reference or service definition containing bindings, and obtain a
> > proxy
> > > to
> > > > a
> > > > service.
> > > >
> > > > At the moment, I create a composite containing a dummy component
> with
> > a
> > > > reference, and then create an SCA domain, add a contribution
> > containing
> > > > the
> > > > composite, and then obtain the reference and get a proxy through the
> > > > runtimeWire. Apart from being very messy, this requires a large
> number
> > > of
> > > > Tuscany modules to be in the classpath.
> > > >
> > > > Is there a better way for me to use the modules in Tuscany -
> > > specifically
> > > > the bindings modules?
> > > >
> > > > Thank you...
> > > >
> > > > Regards,
> > > >
> > > > Rajini
> > > >
> > > Hi Rajini
> > >
> > > Is the service you are trying to get a reference to local to the JVM
> you
> > > are
> > > running in?
> > >
> > > If yes, what runtime is the component/service running it?
> > >
> > > If no,  then the tuscany code should already be able to construct a
> > > reference on the fly for you without you having to go through the
> > process
> > > of
> > > creating the dummy component. The code in getService looks in the
> local
> > > model and if it can't find the required service creates a unresolved
> > > reference which will be resolved when you try to use it. This relies
> on
> > > using the distributed domain support.
> > >
> > > Can you say a bit more about the scenario you are working with?
> > >
> > > Regards
> > >
> > > Simon
> > >
> >
> I'm going to talk in terms of the new domain and node apis. Within a given
> domain I would expect you to be able to get hold of the domain and ask it
> for a reference to a service that exists in the domain. The reference
> returned with hide whether that service is local or remote.  So that is
> the
> intention, if you look at some of the code in the node implementation you
> can see this at work..
>
>
> http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeDrivenTestCase.java
>
> Here you see that a number of nodes are created and contributions are
> added
> and toward the end you see local references being extracted. Right at the
> end you see a reference being retrieved for a service that is not in the
> node being asked.
>
> addServiceB = nodeA.getDomain().getService(AddService.class,
> "AddServiceComponentB");
>
>
> The domain that the node belongs to is retrieved from the node and the
> domain is asked for a reference to the required service. In this case the
> AddServiceComponentB is not in nodeA so a remote reference is created.
>
> Now this doesn;t necessarily meet your requirements as I had to create a
> node here. As part of the new interfaces there is a domain finder
> mechanism
>
> SCADomainFinder domainFinder = SCADomainFinder.newInstance();
> SCADomain domain = domainFinder.getDomain(domainName);
>
> This provides an SCADomain interface that you can then call getService on.
> The resulting reference can be stored somewhere (your OSGi registry) for
> future use. The slight drawback is that this doesn't work properly just
> yet
> (a little more work required). However if it did work would this fit the
> bill?
>
> Regards
>
> Simon
>

Reply via email to