You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

A page to capture the ideas and discussions on Geronimo-Tuscany Integration. This wiki page is a summary of the discussions on the mailing lists. Feel free to help in developing the ideas here.

Use Cases

Currently we are considering three use cases. These are just the initial set and they may be changed or more added as we go forward. The use cases are listed below

1) I develop SCA components, assemble them in a composite, package them
in an SCA contribution. I don't really know what a WAR or an EAR is, I'm
just using the SCA programming model and packaging model. I deploy my
SCA contribution to Geronimo and run it there. I can then access these services using
the various bindings that Tuscany provides.

2) I'm assembling SCA components, some of them developed using the SCA
programming model (Java components, BPEL components or composite
components for example) and I want to re-use an EJB module in my
assembly, allowing other SCA components to talk to its session beans
using the SCA programming model. That EJB module does not know anything
about SCA, it only uses the EJB programming model.

3) I want to use a Web app in my SCA assembly and call SCA components
from it. I should be able to declare an SCA component representing my
Web app, wire that component to other SCA components in the assembly,
and then magically the wired references will be available as proxies for
use in my JSPs, allowing me to call an SCA component using a simple
jsp:useBean tag. I should also be able to access the services inside of my
servlets, filters, etc by using annotations.

Implementation

For achieving #1 (the first level of integration) we need to consider the following scenarios.

  • Tuscany modules should be deployable in Apache Geronimo.
    For this we need to write a geronimo-plugin with a deployer that can handle tuscany modules.
    On how to write a geronimo-plugin please refer the link below.
    http://cwiki.apache.org/GMOxDOC11/advanced-plugin-sample.html
    Initially we will be using a server wide SCADomain instance. The
    org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain implementation or a derived
    class will be used and exposed as a GBean in geronimo so that all the other configurations can
    lookup the domain via GBean lookup and add their composites.
  • Tuscany modules should use the existing geronimo http infrastructure.
    Create a tuscany-http-geronimo module that contains a geronimo specific.
    We need to write a class that implements the org.apache.tuscany.sca.http.ServletHost
    interface. This interface has 2 methods namely
    void addServletMapping(String uri, Servlet servlet) throws ServletMappingException;
    Servlet removeServletMapping(String uri) throws ServletMappingException;
    We need to implement these methods such that they will add the servlet passed to the
    context corressponding to the URI in geronimo. If there is no context then a new context
    must be created and the servlet should be added to that context. We should be able to add
    to default context as well. We shouldn't be able to add to contexts of other web
    applications. Here also geronimo can have either Jetty or Tomcat as the web container. Initially the
    idea is to just support Tomcat.
  • Tuscany modules should use the existing geronimo rmi infrastructure.
    tuscany-host-rmi needs to be replaced with a geronimo specific version that uses
    geronimo rmi infrastructure

Initially this is what we will be trying to achieve.

Things that need to be investigated further

  1. Having multiple SCADomains in the same server instance
  2. Using Distributed Domains
  3. Better integration of the bindings to take care of using geronimo infrastructure

References

There are three mail chains providing more info

chain1
chain2
chain3

The OSOA J2EE Integration Whitepaper speaks about J2EE SCA integration concepts

OSOA J2EE Integration Whitepaper

  • No labels