IronJacamar

IronJacamcar 2 / Goals

Service oriented architecture

The project is split into artifacts which each represents a component for the Java EE Connector Architecture container in order to let external projects select which parts of IronJacamar they need.

Examples

Each component is initialized based upon one or more service files

META-INF/services/org.ironjacamar

Service files needed for

and all SPI integration points.

It must be possible to provide a static configuration of the IronJacmar container wihtout having to relying on service activation.

Service provider interface (SPI) for all integration points

Proof of Concept for Java EE Connector Architecture 2.0

Redo the Java EE Connector Architecture specification focusing on updating the concepts to more modern ways of doing things.

TODOs

The code will be located in

org.ironjacamar.spi

with sub-packages as public packages with OSGi exports.

Pool less container

Investigate the possibility to create a pool less container setup, where connections are enlisted in the transaction, but the physical connections are maintained outside of IronJacamar.

Test setup

Lazy association for transacted based scenarios

Have the LocalTransactionConnectionManager and XATransactionConnectionManager implement

javax.resource.spi.LazyAssociatableConnectionManager

in order to allow transaction based deployments to take advantage of the feature.

This will require that the associated XAResource instance is being tracked.

Serializable connection manager

The connection manager should be serializable as per specification.

Furthermore, they should be split into

where the latter has a flag for interleaving.

Fat pool lock

Give the pool implementation the option of using a "fat" lock, e.g. taking a lock across all credentials used by the pool.

This will make "max-pool-size" a global pool setting, instead of a sub-pool setting as it is with IronJacamar 1.x.

The default should still be a lock at the sub-pool level in order to maximize performance.