Hi Raymond,
      Thank you for the warm welcome and for the prompt response. I
am adding my comments inline below.

On 5/23/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, Manu.

Welcome to Tuscany and thank you for looking into Tuscany/Geronimo
integration.

Please see my comments inline below.

Thanks,
Raymond

----- Original Message -----
From: "Manu George" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Tuesday, May 22, 2007 1:00 PM
Subject: Re: Tuscany sample app


> Hi,
>        I am new to this list and product. I just wanted to know if
> there is any work going on in implementing deep integration with
> apache geronimo app server. If it is going on I am volunteering to
> help. If not I would again like to volunteer to take up that task
> along with anyone else interested.

It would be really great that we start the Tuscany/Geronimo integration now
as we have a stable Tuscany code base (the 0.90 relase are being voted on).
A few of other folks have also expressed their interests in this area. Let's
keep all the discussions on this ML so that all of us can participate.

I'm not sure what's the best way to

Sure thats the best way.
>
> Currently I have experimented a bit with deep integration and got the
> calculator service to deploy on geronimo.What I have achieved is the
> ability to deploy Tuscany services on geronimo packaged in a jar with
> a geronimo specific deployment descriptor.

This is a very good step forward. Did you use the geronimo module plan for
the jar?

What I have done is I wrote 2 gbeans. One GBean takes care of rigging
up and starting the ReallySmallRuntime that provided with Tuscany. The
other GBean takes care of instantiating the GeronimoSCADomain class.
The latter GBean should be run in the same class loader as the SCA
application so that during the SCADomain creation the .composite files
can be picked up.

I then wrote a deployer that implements the ConfigurationBuilder
interface of geronimo and implemented the methods. This deployer is
also a gbean and after registration it will be called for all jars
that are deployed that have META-INF/geronimo-tuscany.xml files with a
particular namespace. What this deployer does is create a
configuration whose classloader  contains all the classes in the jar,
rig the second GBean and add it to the configuration so that an
SCADomain is created.

In case of J2EE modules I created a Deployment Watcher class which
again adds the second gbean to the configuration of the j2ee module if
it contains META-INF/geronimo-tuscany.xml

So when the configuration starts the second gbean also starts which
starts the SCADomain
and registers it in Global JNDI. When the configuration stops the
domain is closed and removed from JNDI.

Since the runtime just provides services to the SCADomain  that
contains it, I just inject the ReallySmallRuntime I created earlier
into the SCADomain.

>
> What I have done is created a new Domain class GeronimoSCADomain and
> the only difference of this from default SCA domain is that it takes a
> ReallySmallRuntime as a parameter instead of creating it. So
> effectively one Runtime can be shared among all the SCADomains. I am
> assuming that there will be a single SCADomain per application and all
> SCADomains will share the same Runtime. Due to my lack of tuscany
> knowledge I am not sure if this is the way to go about it. Can any one
> of the tuscany gurus clarify if this is the correct approach?
>

The SCA domain is a collection of runtimes that can host SCA composites. The
domain is logically represented as a SCA composite which include all the
deployable composites activated by all runtimes in the SCA domain. A SCA
domain can span multiple machines over the network. It consists of all the
runtimes that run SCA applications.


Ok, I was unaware that a domain can have multiple runtimes. But like
the webapp sample which has a single runtime I am thinking that
Geronimo will also have a single runtime only. ATleast initially that
may be the way to go forward. Also from what i see of the code, the
runtimes just provide services which the sca domain uses to set itself
up. So its my assumption that a runtime that an SCADomain accesses
doesn't need to be exclusive to it but can be shared among domains.
Can you advise me if this assumtion is ok?

> I was unable to understand the need to create multiple runtimes for
> each sca domain (other than for the web app based integration). If
> there are any other reasons can someone please explain why we need a
> runtime per app?
>
?
> Other things that i am experimenting with is the ability to package
> the tuscany service along with an ear/war/ejb-jar.
>

The SCA spec defines a loosely-formed packaging scheme for SCA composites.
Basically, it is the "contribution" concept. A contribution is some kind of
archive such as a folder, a zip, a jar, a rpm, or a EAR. The only
requirement is that the artifacts in the contribution can be represented as
URIs in the hierarchy.

Well I think we may not be able to support RPM etc because of the
reason that geronimo expects a jar file for deployment. So I would
first try to get it working for jar/war/ears

In Tuscany, we have the Contribution service which provides a framework to
plug in Package processors and Artifact processors.

You can find more information here:
http://cwiki.apache.org/confluence/display/TUSCANY/Java+SCA+Architecture+Guide

> I am binding the SCADomains created to global jndi and so applications
> can access the domains from there and invoke services on them.
>

This is one way to manage the SCA domain metadata. Then the EE applications
can look up the SCADomain from JNDI and then gain access to the SCA
services.

> Thinks that need to be done(not yet thought of how to implement are)
> 1) Make geronimo resources (Database pools,JMS resources, EJB
> references, Gbean references )available to Tuscany
>

In SCA, we can use reference and binding to access non-SCA services such as
WS, EJB, JMS. This makes external services consumeable by SCA components.

I'm not very sure how to expose other JEE resources such as DataSource, JMS
QCF to SCA components. Maybe a reference with autowire? Maybe a @Resource
annotation?

I think there may be a way to inject them into the service classes if
references are given in the tuscany plan file i.e.
geronimo-tuscany.xml


> 2) Make Tuscany services accessible accross app servers

There is another important aspect. SCA component services can be promoted
over various bindings. This way, the SCA service can be exposed over
protocols such as Web Service, EJB, JSONRPC, RMI. Non-SCA client (such as
JEE artifacts) can be then access the promoted SCA services over the
protocols without knowing SCA. Of course, other SCA components can talk to
these promoted services using the bindings too.

Yes the bindings can be used so during integration there is no work
that needs to be done to support this :)

> 3) Other things i have missed :)
>
> It would be great if someone could advise me on the tuscany side of
> these matters.
>
> Thus I conclude my first post on the tuscany dev list :)
>
> Thanks
> Manu
>
>
>
>
>
>
> On 5/15/07, Luciano Resende <[EMAIL PROTECTED]> wrote:
>> The suspicious code was identified on the Contribution Service, and
>> Tuscany
>> M2 does not have this service available, that would explain why there is
>> no
>> issues with M2.
>>
>>
>> On 5/10/07, Manu George <[EMAIL PROTECTED]> wrote:
>> > Hi Jay,
>> >
>> > Cool, I have not yet tried the trunk of tuscany. I will try it out with
>> your fix
>> >
>> > Regards
>> > Manu
>> >
>> > On 5/10/07, Jay D. McHugh <[EMAIL PROTECTED] > wrote:
>> > > I changed my mind.
>> > >
>> > > I just went to look at M2 and -way- too much has changed since then.
>> > >
>> > > I don't think it would be worthwhile to try it just to see.
>> > >
>> > > Cool that it worked though.
>> > >
>> > >
>> > > Jay
>> > >
>> > > Jay D. McHugh wrote:
>> > > > Hey Manu,
>> > > >
>> > > > The versions that had trouble were trunk of both.
>> > > >
>> > > > I'm surprised that M2 worked (I'll have to try it just to see).
>> > > >
>> > > >
>> > > >
>> > > > Jay
>> > > >
>> > > > Manu George wrote:
>> > > >> Hi Jay,
>> > > >>         I was able to deploy the tuscany calculator webapp (M2
>> > > >> version) on the current geronimo trunk w/o any issues. Probably I
>> > > >> was
>> > > >> lucky in selecting my versions :). Which version of Geronimo and
>> > > >> Tuscany were giving the problem?
>> > > >>
>> > > >> Regards
>> > > >> Manu
>> > > >>
>> > > >> On 5/10/07, Luciano Resende < [EMAIL PROTECTED]> wrote:
>> > > >>> Hey Jay, this is very good news, thanks for your help.
>> > > >>>
>> > > >>> As for the issue you mentioned, this is done while the Tuscany is
>> > > >>> scaning and opening the necessary artifacts to process... let me
>> look
>> > > >>> at that code in the Tuscany side and check what I can do.
>> > > >>>
>> > > >>> I'ĺl let you know about any progress...
>> > > >>>
>> > > >>>
>> > > >>> On 5/9/07, Jay D. McHugh <[EMAIL PROTECTED]> wrote:
>> > > >>> > I didn't say, but in order to get the app to deploy in Geronimo
>> > > >>> > I
>> > > >>> had to
>> > > >>> > comment out the close() in IOHelper.
>> > > >>> >
>> > > >>> > Jay
>> > > >>> >
>> > > >>> > Jay D. McHugh wrote:
>> > > >>> > > Hello all.
>> > > >>> > >
>> > > >>> > > Well after wandering through class loaders and deployment
>> > > >>> managers, I
>> > > >>> > > finally managed to get the Tuscany calculator sample webapp
>> > > >>> > > to
>> > > >>> deploy
>> > > >>> > > and run under Geronimo.
>> > > >>> > >
>> > > >>> > > And, the problem that made it so hard wasn't even in Geronimo
>> (at
>> > > >>> > > least not directly).
>> > > >>> > >
>> > > >>> > > Tuscany is using a helper class when scanning jar files
>> > > >>> > > during
>> > > >>> startup
>> > > >>> > > (IOHelper).
>> > > >>> > >
>> > > >>> > > That class closes the jar file at the same time as it closes
>> > > >>> > > the
>> > > >>> input
>> > > >>> > > stream based on the jar file (as recommended by Sun -
>> > > >>> > >
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4950148).
>> > > >>> > >
>> > > >>> > > Tomcat doesn't mind having the jar file get closed - Geronimo
>> does.
>> > > >>> > >
>> > > >>> > > Does anyone have any comments on this?
>> > > >>> > >
>> > > >>> > > Does anyone know if Tomcat is built to reopen closed jars?
>> > > >>> > >
>> > > >>> > > Can Tuscany be changed to stop closing the jar file?
>> > > >>> > >
>> > > >>> > > Comments?
>> > > >>> > >
>> > > >>> > >
>> > > >>> > > Jay
>> > > >>> > >
>> > > >>> > >
>> > > >>> > > .
>> > > >>> > >
>> > > >>> >
>> > > >>>
>> > > >>>
>> > > >>> --
>> > > >>> Luciano Resende
>> > > >>> http://people.apache.org/~lresende
>> > > >>>
>> > > >
>> > > >
>> > > >
>> > >
>> >
>>
>>
>>
>> --
>>
>> Luciano Resende
>> http://people.apache.org/~lresende
>


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


Reply via email to