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

Compare with Current View Page History

« Previous Version 10 Next »

Java EE Integration

This page is used to track the status of implementation of SCA Java EE Integration Spec v1.0 [1] and Tuscany integration with Geronimo. The Daytrader sample [2] from Geronimo will be enhanced to demonstrate the integration.

High level functions to be supported

  1. support SCA annotations in JEE components
    See 1a and 2b below
  2. support the application composite (JEE archive as a SCA contribution)
    See 1c, 2c, and 3c below
  3. support using SCA components within a JEE application
    ie a servlet or ejb invoking bpel using implementation.bpel and the bpel process runs within the that JEE application
  4. support using SCA services external to the a JEE application (rfeng: what's the difference between this item and the one above? wiring vs. external binding?)
    ie the service is not within the JEE app - a servlet or ejb invokes an SCA service running else where in the SCA domain
  5. support implementation.jee, implementation.ejb, and implementation.web for coarse-grained wiring
    ie a reference in a JSP in a webapp war wired to an EJB in a separate EAR and a BPEL process deploy as a non-JEE SCA contributions
    or a reference in a non-JEE SCA component wired to JEE artifacts
  6. support SCA policies such as transaction and security within the JEE container
  7. ability to deploy Non-JEE artifact SCA contributions and have them run in the container context
    ie an SCA contribution containing a service using binding.ws would use the container http infrastructure
  8. support using the JEE container infrastructure where appropriate
    ie the various Tuscany host-xxx modules, a service with binding.ws uses the existing HTTP connector, binding.jms uses the messaging provider
    it also applies to JEE QoS capabilities

Java EE Integration features in detail

Feature

Section(s) in Java EE Spec v1.0

Priority

Map to Daytrader

Comments

Status

1. WAR

5.4.5

 

 

implementation.web

 

a) Web application to consume services; @Reference/@EJB resulting in references.

5.4.1

1

Daytrader web application

Inject SCA Service in web component

Prototype code in the Tuscany runtime-tomcat module that supports injecting references into Servlets, Filters and Event listeners using the @Reference annotation.

b) WAR with componentType side file

5.4.3

2

 

Some of component type information comes from a component type file META-INF/web.componentType

 

c) web.composite as a composite implementation

6.1.3

4

 

 

 

d) JSP tag libraries

5.4.4

1

Daytrader web application

Inject SCA Service in web component

Taglib to include the SCA tags and define the reference field with the reference tag.

 

 

 

 

 

 

2. EJB Applications

5.1.6, 5.2.4

 

 

implementation.ejb

 

a) EJB application to provide services exposed into SCA Domain

5.1, 5.1.1

1

TradeBean

Business interfaces of session beans as services

 

b) EJB application to consume services; @Reference/@EJB resulting in references

5.1.2, 5.1.3, 5.1.4, 5.2.1, 5.2.2, 5.2.3

1

TradeBean

Remote EJB references and references to SCA services

 

c) An EJB application's ejb-jar.composite to be used as composite implementation

6.1.3

 

 

 

 

d) EJB with a componentType side file

5.1.5

3

 

Some of component type information comes from a component type file META-INF/<bean-name>.componentType

 

e) Services by Stateful Session Beans as conversational services

5.1.9

2

 

 

 

f) @OneWay

5.1.10

2

TradeBrokerMDB

Non-blocking service operations

 

g) @Callback

5.1.11

2

TradeBrokerMDB

callback service

 

 

 

 

 

 

 

3. Java EE Archives (SCA-enhanced)

 

 

 

 

 

a) META-INF/sca-contribution.xml

6.1.1

 

 

Contribution to SCA Domain

 

b) META-INF/sca-contribution-generated.xml

6.1.1

 

 

 

 

c) Application composite

6.1.3

 

 

 

 

d) Local assembly: Additional implementation types, binding and wiring capabilities

6.1.2

 

 

 

 

e) Domain-level assembly

6.1.4

 

 

 

 

 

 

 

 

 

 

4. Java EE Applications as implementation

7

 

 

implementation.jee

 

a) Pure Web App as implementation

7.1.2

1

Daytrader web application

 

Code to model WAR as an SCA contribution available in Tuscany contribution-jee module

b) Pure EJB App as implementation

7.1.1

1

Daytrader ejb application

 

Code to model EJB jar as an SCA contribution available in Tuscany contribution-jee module

c) Pure JEE App as implementation

7.1.3

1

 

 

Code to model EAR as an SCA contribution available in Tuscany contribution-jee module

d) SCA-enhanced Web App as implementation w includeDefaults

7.2

 

 

 

 

e) SCA-enhanced EJB App as implementation w includeDefaults

7.2

 

 

 

 

f) SCA-enhanced JEE App as implementation w includeDefaults

7.2

 

 

 

 

 

 

 

 

 

 

5. Leveraging Tuscany/SCA

 

 

 

 

 

a) Web2.0 clients

 

 

 

 

 

b) Expose JEE components with JSONRPC bindings

 

 

 

 

 

 

 

 

 

 

 

6. Transcations

5.3

 

 

Mapping EJB Transaction Demarcation to SCA Transaction Policies

 

 

 

 

 

 

 

7. Miscellaneous

 

 

 

 

 

a) Import and Export of SCA artifacts

6.1.5

 

 

As described in the assembly spec

 

b) Resolution of WSDL and XSD artifacts

6.1.6

 

 

Ref: OASIS SML Catalogs 1.1 spec

 

References

[1] http://www.osoa.org/download/attachments/35/SCA_JAVAEE_Integration_V100.pdf?version=1
[2] http://cwiki.apache.org/GMOxDOC21/daytrader.html

  • No labels