geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Manu George" <manu.t.geo...@gmail.com>
Subject Fwd: Tuscany sample app
Date Wed, 23 May 2007 07:01:27 GMT
Hi,

Really Sorry :) forgot to include geronimo-dev list in the cc after
saying it should be tracked on both the lists. Please respond to this
mail from now on as it has both the lists included.

Regards
Manu

---------- Forwarded message ----------
From: Manu George <manu.t.george@gmail.com>
Date: May 23, 2007 11:08 AM
Subject: Re: Tuscany sample app
To: tuscany-dev@ws.apache.org


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 <enjoyjava@gmail.com> 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" <manu.t.george@gmail.com>
> 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 <luckbr1975@gmail.com> 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 <manu.t.george@gmail.com> 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 <jay@joyfulnoisewebdesign.com > 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 < luckbr1975@gmail.com>
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 <jay@joyfulnoisewebdesign.com>
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: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
>
Mime
View raw message