JSR 322 - JavaEE Connector Architecture 1.6 - Reference Implementation - Half Pager

[

Unknown macro: {TableOfContents title='Connector Runtime Half Pager'}

|(TableOfContentstitle='ConnectorRuntimeHalfPager')]

1. Introduction

1.1. Project/Component Working Name

JavaEE Connector Architecture 1.6 - Reference Implementation

1.2. Name(s) and e-mail address of Document Author(s)/Supplier

Jagadish Ramu
Jagadish.Ramu@Sun.COM

1.3. Date of This Document

12/17/08

1.4 Revision History

Date Change Revision
12/17/08 Review Ready 1

2. Project Summary

2.1. Project Description

Java EE Connector Architecture 1.6 introduces Work Context and Ease of use features via annotations
as major additions.
This specification also has several minor additions, clarifications and deprecations.
This half pager will capture the required changes (addition of new features, change in existing features)
in the Connector Runtime (Reference Implementation)

2.1.1 Work Context Support

Work Context support involves support from the deployment and connector-runtime. Connector-runtime
will provide support for all the standard contexts namely :

  • TransactionInflowContext
  • SecurityInflowContext
  • HintsInflowContext

2.1.2 Support for standard Inflow Contexts

Resource-Adapter provider can optionally specify the mandatory support of inflow-contexts
from the application server. Application server should check for this and if it does not
support any of the required-inflow-contexts, deployment of the resource-adapter must fail.
This can be specified via a new element <required-inflow-contexts> in the descriptor.

2.1.3 Work Security Map

For one of the cases of SecurityInflowContext, a work security map is needed to map eis identities to
appserver domain's identities. This mapping mechanism will be implementation (vendor) specific.
Support from admin CLI, GUI is needed in GlassFish
Refer Connectors, pooling, JDBC-RA one-pager for the CLI commands and dtd changes

2.1.4 MDB support related to SecurityInflowContext

End to end security for inbound communication involves support from connector as well message end point
container (MDB). JSR 318 (EJB Specification) introduces the necessary mechanisms (security-role-ref)
so that an MDB can check the role via MessageDrivenContext.isCallerInRole() and the inflow context
established principal via MessageDrivenContext.getCallerPrincipal()

2.1.5 Annotations

This specification introduces ease-of-use features which involves annotations. Many RA
artifacts can be JavaBeans with annotations. Now it is possible to have a simple RA
without a deployment-descriptor (ra.xml).
Connector-runtime implementation will support the defined annotations in this release.

2.1.6 Merging annotation values and DD values

With the introduction of annotations, it is possible for an RA to have both
annotation as well deployment-descriptor. Connector-runtime will merge the configuration
properties specified in both descriptor and annotations for a RA artifact. Following
RA artifacts' configuration will be merged based on values from annotation and descriptor.

  • ResourceAdapter
  • ManagedConnectionFactory
  • ActivationSpec

2.1.7 Runtime transaction-support-level specification by MCF

MCF.getTransactionSupport() can provide the level of tx-support it can support.
This helps to provide more granular transaction-support at MCF level rather than RA-level
support. Refer connectors, pooling, JDBC-RA one-pager for more details.

2.1.8 Changes to existing interfaces and its impact

  • LazyAssociatableConnectionManager.inactiveConnectionClosed() : System-RAs that support

lazy-connection-association will have to provide appropriate notification to ConnectionManager.

2.1.9 ResourceAdapter Association

ResourceAdapter instance is associated with specification mandated resource-adapter artifacts
that implements ResourceAdapterAssociation interface.
This version of specification includes support for the following artifacts :

  • AdministeredObject
  • Work/DistributableWork

2.1.10 Support for <config-property> for Activation-Spec

This specification allows specifying optional configuration properties <config-property>
for activation-spec. Unlike <required-config-property>, these are optional properties which
will be set when the activation-spec JavaBean has support, but will not fail end-point activation.

2.1.11 Deprecation

Following functionalities/modes are being deprecated and the same can be now achieved via bean validation.

  • ActivationSpec.validate()
  • Specifing <required-config-property> for activation-spec artifact.

Support for the deprecated functionalities will be available in v3.

2.1.12 Administered Object Uniqueness

RA provider now must provide the fully qualified class name of the interface and the implementation
of administered-object. The combination of interface and implementation must be unique. This can be
validated during deployment of the RA

2.1.13 Availability of a RAR for all applications

JSR 322 relaxes the RAR accessibility such that only applications that refers a RAR by
standard means (use-cases defined by JSR 322 specification, refer Packaging Requirements
section) are allowed. In v2, all applications have access to all RARs.
This functionality is optional, low-priority and hence may or may not be implemented in this release.

2.1.14 Distributed Work Manager

JSR-322 introduces support of Distributed Work Manager. This feature is optional and
will be found useful in cluster environments. Hence postponing the support to
GlassFish release that supports clustering.

2.1.15 JavaBean Validation (303)

There is a proposal to use JavaBean validation (JSR 303) mechanisms to specify bounds and constraints
for configuration of various resource-adapter artifacts. This proposal is still under discussion

2.2. Risks and Assumptions

  • Assumptions : APIs defined by JSR 322 will be finalized within the time line of GlassFish v3 schedule.

JSR 322 is in Public Review stage. It is possible that there will be API changes, artifact name (terminology) changes.
eg: InflowContext will be renamed as WorkContext

  • Risks : Availability of JSR 303 (Bean Validation) Reference Implementation in GlassFish

3. Interfaces

3.1. Exported Interfaces

Interface: JSR 322 API (javax.resource.*)
Stability: Standard
Specified: http://www.jcp.org/en/jsr/detail-322
Comments : JSR 322 is in Public Review stage.

3.2. Imported Interfaces

Interface : JSR 322 API (javax.resource.*)
Stability : Standard
Exporting Project: Java EE 6 (via JSR 322)
Comments : JSR 322 is in Public Review stage.

3.3. Other Interfaces (Optional)

None

4. Reference Documents

  1. JSR 322 - Java EE Connector Architecture Specification 1.6
  2. JSR 318 - Enterprise JavaBeans Specification 3.1
  3. JSR 303 - Bean Validation