users@ejb-spec.java.net

[ejb-spec users] [jsr345-experts] EJB lite subset

From: Jeremy Bauer <jrbauer_at_us.ibm.com>
Date: Wed, 26 Sep 2012 09:39:58 -0500

Experts,

The specification currently states this regarding the EJB lite subset:

<chapter 16>
The set of required APIs is divided into two categories: a complete set
and a minimum set. The minimum set is also referred to as “EJB 3.2 Lite.”
This reflects the ability of a Server Provider to provide an EJB 3.2
container within a product that implements the Full Java EE Platform or
within a subset profile such as the Java EE Web Profile. The complete set
is required within an implementation of the Full Java EE Platform. The
minimum set must be supported within an implementation of the Java EE Web
Profile. Profile requirements are described within the Java EE Platform
specification [ 12 ]

...

For these reasons this specification defines a minimal subset of the EJB
API known as EJB 3.2 Lite. EJB 3.2 Lite is not a product. Rather, it is a
proper subset of the full EJB 3.2 API that includes a small, powerful
selection of EJB features suitable for writing portable transactional
business logic. The definition of EJB 3.2 Lite gives vendors an option to
implement only a portable subset of the EJB API within their product. The
vastly reduced size of the feature set makes it suitable for inclusion in
a wider range of Java products, many of which have much smaller
installation and runtime footprints than a typical full Java EE
implementation.
</chapter 16>

Can this be interpreted as though a vendor could provide EJB lite with
additional features such as EJB timers, but not a full EJB implementation?
 The specification doesn't seem to explicitly prohibit this. If the
specification does require either EJB lite or a full EJB implementation, I
think we should consider allowing this type of configuration in EJB 3.2.
The JCA specification (section 3.5) has a precedent for this already. The
JCA specification defines a minimal subset of features and then requires
additional features based on the availability of other dependent component
specification implementations. For example, vendors must implement JCA
message inflow based on the availability of a MessageEndpointFactory
implementation. If a vendor were to implement the EJB lite minimal subset
+ MDBs, a JCA subset implementation would then need to implement message
inflow in order to support this configuration. Thoughts?

-Jeremy