You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by fahim salim <sa...@gmail.com> on 2008/10/08 18:56:06 UTC

Tuscany mecanism

Hi

I'm currently trying to understand what's going on in Tuscany tool in order
to use it in an efficient way later on (for a demo).
My purpose is to have a clear idea concerning  the main mecanisms involved
in the creation of the artifacts.
For example, I'm trying to understand the Calculator sample.
As far as I understand, the CalculatorClient invokes newInstance method to
get a new domain.
Ok
Then, it invokes getService method in order to get a reference for the
service offered by the CalculatorServiceComponent.
Ok

But what about the creation of the components, services and references ?
In the "sca-java-architecture-guide.html" it seems to be related to the
bootsrap process. The process described here is difficult for me to
understand .
Any explanations are welcom.

Thanks
Fahim

Re: Tuscany mecanism

Posted by fahim salim <sa...@gmail.com>.
Hello Luciano

Thanks a lot for your responses.
They really helped me to have a better understanding of Tuscany Java.

Fahim

2008/10/16 Luciano Resende <lu...@gmail.com>

> See responses inline.
>
> On Mon, Oct 13, 2008 at 9:21 AM, fahim salim <sa...@gmail.com> wrote:
> > Hello Luciano
> >
> > Thank you for your useful informations.
> >
> > Yes I'd like to get some details if possible.
> >
> > For the contribution phase :
> > How is the java annotation processor working ?
>
> This is part of the Java implementation.You can check
> org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor
> for the SPI used to plug new visitors that handle these annotations.
>
> As for when this happens, it's done when the runtime is processing the
> composite file and finds a component that has a java implementation
> (e.g implementation.java)
>
>
> > For example, what will be done when @Reference is encountered. Does a
> proxy
> > will be created to give access to this component reference ?
>
> When the @Reference is processed, it will only create a reference
> model in the component type, this is also used as a injection point
> for the particular reference. As for the proxy creation, it will
> happen when the component gets instantiated, at this time, dependency
> injection happens and the proxy is created and injected.
>
>
> > What is the role of the ModelResolver (as decribed in the contribution
> part
> > of the sca-java-architecture-guide) ?
> >
>
> ModelResolver is used to resolve artifacts/models to it's fully
> initialized instance. As an example, imagine a composite being
> processed and having a reference to a resource (e.g
> content/store.html)... this resource might be part of the current
> contribution or not... when the composite is being resolved, we need
> to find the actual model for the given resource, and modelResolver
> will be used.
>
> > For the build phase :
> >
> > What kind of object is a wire ?How is a wire constructed between one
> > component and one component reference  ?
> > Then how is a wire invoked ?
> >
>
> Wire links a SCA Reference to a SCA Service, they could be defined by
> using @target in your component reference or use the wire element.
> As for the invocation, this happens when you invoke the proxy in your
> application. The wire will have an invocation chain, which consists of
> a bunch of interceptors or invokers ending at the component type
> invoker that understands how to invoke your implementation code.
>
> > Regards
> > Fahim
> >
> >
> >
> >
> > 2008/10/10 Luciano Resende <lu...@gmail.com>
> >>
> >> On Wed, Oct 8, 2008 at 9:56 AM, fahim salim <sa...@gmail.com> wrote:
> >> > Hi
> >> >
> >> > I'm currently trying to understand what's going on in Tuscany tool in
> >> > order
> >> > to use it in an efficient way later on (for a demo).
> >> > My purpose is to have a clear idea concerning  the main mecanisms
> >> > involved
> >> > in the creation of the artifacts.
> >> > For example, I'm trying to understand the Calculator sample.
> >> > As far as I understand, the CalculatorClient invokes newInstance
> method
> >> > to
> >> > get a new domain.
> >>
> >> When an application calls SCADomain.newInstance(), it's boostraping
> >> the sca runtime that will identify the current project and contribute
> >> it to the domain.
> >>
> >> > Ok
> >> > Then, it invokes getService method in order to get a reference for the
> >> > service offered by the CalculatorServiceComponent.
> >> > Ok
> >> >
> >> > But what about the creation of the components, services and references
> ?
> >> > In the "sca-java-architecture-guide.html" it seems to be related to
> the
> >> > bootsrap process. The process described here is difficult for me to
> >> > understand .
> >>
> >> During the contribution process, the artifacts are processed and
> >> resolved resulting in an in-memory representation of the assembly.
> >> Next is the build phase, where the model is processed by the runtime
> >> and the components, services and references are actually created and
> >> wired and activated. Are you looking for any specific details of any
> >> particular phase ?
> >>
> >>
> >> > Any explanations are welcom.
> >> >
> >> > Thanks
> >> > Fahim
> >> >
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Luciano Resende
> >> Apache Tuscany, Apache PhotArk
> >> http://people.apache.org/~lresende<http://people.apache.org/%7Elresende>
> >> http://lresende.blogspot.com/
> >
> >
>
>
>
> --
> Luciano Resende
> Apache Tuscany, Apache PhotArk
> http://people.apache.org/~lresende <http://people.apache.org/%7Elresende>
> http://lresende.blogspot.com/
>

Re: Tuscany mecanism

Posted by Luciano Resende <lu...@gmail.com>.
See responses inline.

On Mon, Oct 13, 2008 at 9:21 AM, fahim salim <sa...@gmail.com> wrote:
> Hello Luciano
>
> Thank you for your useful informations.
>
> Yes I'd like to get some details if possible.
>
> For the contribution phase :
> How is the java annotation processor working ?

This is part of the Java implementation.You can check
org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor
for the SPI used to plug new visitors that handle these annotations.

As for when this happens, it's done when the runtime is processing the
composite file and finds a component that has a java implementation
(e.g implementation.java)


> For example, what will be done when @Reference is encountered. Does a proxy
> will be created to give access to this component reference ?

When the @Reference is processed, it will only create a reference
model in the component type, this is also used as a injection point
for the particular reference. As for the proxy creation, it will
happen when the component gets instantiated, at this time, dependency
injection happens and the proxy is created and injected.


> What is the role of the ModelResolver (as decribed in the contribution part
> of the sca-java-architecture-guide) ?
>

ModelResolver is used to resolve artifacts/models to it's fully
initialized instance. As an example, imagine a composite being
processed and having a reference to a resource (e.g
content/store.html)... this resource might be part of the current
contribution or not... when the composite is being resolved, we need
to find the actual model for the given resource, and modelResolver
will be used.

> For the build phase :
>
> What kind of object is a wire ?How is a wire constructed between one
> component and one component reference  ?
> Then how is a wire invoked ?
>

Wire links a SCA Reference to a SCA Service, they could be defined by
using @target in your component reference or use the wire element.
As for the invocation, this happens when you invoke the proxy in your
application. The wire will have an invocation chain, which consists of
a bunch of interceptors or invokers ending at the component type
invoker that understands how to invoke your implementation code.

> Regards
> Fahim
>
>
>
>
> 2008/10/10 Luciano Resende <lu...@gmail.com>
>>
>> On Wed, Oct 8, 2008 at 9:56 AM, fahim salim <sa...@gmail.com> wrote:
>> > Hi
>> >
>> > I'm currently trying to understand what's going on in Tuscany tool in
>> > order
>> > to use it in an efficient way later on (for a demo).
>> > My purpose is to have a clear idea concerning  the main mecanisms
>> > involved
>> > in the creation of the artifacts.
>> > For example, I'm trying to understand the Calculator sample.
>> > As far as I understand, the CalculatorClient invokes newInstance method
>> > to
>> > get a new domain.
>>
>> When an application calls SCADomain.newInstance(), it's boostraping
>> the sca runtime that will identify the current project and contribute
>> it to the domain.
>>
>> > Ok
>> > Then, it invokes getService method in order to get a reference for the
>> > service offered by the CalculatorServiceComponent.
>> > Ok
>> >
>> > But what about the creation of the components, services and references ?
>> > In the "sca-java-architecture-guide.html" it seems to be related to the
>> > bootsrap process. The process described here is difficult for me to
>> > understand .
>>
>> During the contribution process, the artifacts are processed and
>> resolved resulting in an in-memory representation of the assembly.
>> Next is the build phase, where the model is processed by the runtime
>> and the components, services and references are actually created and
>> wired and activated. Are you looking for any specific details of any
>> particular phase ?
>>
>>
>> > Any explanations are welcom.
>> >
>> > Thanks
>> > Fahim
>> >
>> >
>> >
>>
>>
>>
>> --
>> Luciano Resende
>> Apache Tuscany, Apache PhotArk
>> http://people.apache.org/~lresende
>> http://lresende.blogspot.com/
>
>



-- 
Luciano Resende
Apache Tuscany, Apache PhotArk
http://people.apache.org/~lresende
http://lresende.blogspot.com/

Re: Tuscany mecanism

Posted by fahim salim <sa...@gmail.com>.
Hello Luciano

Thank you for your useful informations.

Yes I'd like to get some details if possible.

For the contribution phase :
How is the java annotation processor working ?
For example, what will be done when @Reference is encounterd. Does a proxy
will be
created to give access to this component reference ?
What is the role of the ModelResolver (as decribed in the contribution part
of the sca-java-architecture-guide) ?

For the build phase :

What kind of object is a wire ?How is a wire constructed between one
component and one component reference  ?
Then how is a wire invoked ?

Regards
Fahim




2008/10/10 Luciano Resende <lu...@gmail.com>

> On Wed, Oct 8, 2008 at 9:56 AM, fahim salim <sa...@gmail.com> wrote:
> > Hi
> >
> > I'm currently trying to understand what's going on in Tuscany tool in
> order
> > to use it in an efficient way later on (for a demo).
> > My purpose is to have a clear idea concerning  the main mecanisms
> involved
> > in the creation of the artifacts.
> > For example, I'm trying to understand the Calculator sample.
> > As far as I understand, the CalculatorClient invokes newInstance method
> to
> > get a new domain.
>
> When an application calls SCADomain.newInstance(), it's boostraping
> the sca runtime that will identify the current project and contribute
> it to the domain.
>
> > Ok
> > Then, it invokes getService method in order to get a reference for the
> > service offered by the CalculatorServiceComponent.
> > Ok
> >
> > But what about the creation of the components, services and references ?
> > In the "sca-java-architecture-guide.html" it seems to be related to the
> > bootsrap process. The process described here is difficult for me to
> > understand .
>
> During the contribution process, the artifacts are processed and
> resolved resulting in an in-memory representation of the assembly.
> Next is the build phase, where the model is processed by the runtime
> and the components, services and references are actually created and
> wired and activated. Are you looking for any specific details of any
> particular phase ?
>
>
> > Any explanations are welcom.
> >
> > Thanks
> > Fahim
> >
> >
> >
>
>
>
> --
> Luciano Resende
> Apache Tuscany, Apache PhotArk
> http://people.apache.org/~lresende <http://people.apache.org/%7Elresende>
> http://lresende.blogspot.com/
>

Re: Tuscany mecanism

Posted by Luciano Resende <lu...@gmail.com>.
On Wed, Oct 8, 2008 at 9:56 AM, fahim salim <sa...@gmail.com> wrote:
> Hi
>
> I'm currently trying to understand what's going on in Tuscany tool in order
> to use it in an efficient way later on (for a demo).
> My purpose is to have a clear idea concerning  the main mecanisms involved
> in the creation of the artifacts.
> For example, I'm trying to understand the Calculator sample.
> As far as I understand, the CalculatorClient invokes newInstance method to
> get a new domain.

When an application calls SCADomain.newInstance(), it's boostraping
the sca runtime that will identify the current project and contribute
it to the domain.

> Ok
> Then, it invokes getService method in order to get a reference for the
> service offered by the CalculatorServiceComponent.
> Ok
>
> But what about the creation of the components, services and references ?
> In the "sca-java-architecture-guide.html" it seems to be related to the
> bootsrap process. The process described here is difficult for me to
> understand .

During the contribution process, the artifacts are processed and
resolved resulting in an in-memory representation of the assembly.
Next is the build phase, where the model is processed by the runtime
and the components, services and references are actually created and
wired and activated. Are you looking for any specific details of any
particular phase ?


> Any explanations are welcom.
>
> Thanks
> Fahim
>
>
>



-- 
Luciano Resende
Apache Tuscany, Apache PhotArk
http://people.apache.org/~lresende
http://lresende.blogspot.com/