jsr345-experts@ejb-spec.java.net

[jsr345-experts] Re: Welcome to EJB 3.2!

From: Reza Rahman <reza_rahman_at_lycos.com>
Date: Wed, 15 Jun 2011 20:07:35 -0400

Hello folks,

My name is Reza Rahman. I am a Senior Software Engineer/Community
Outreach Advocate at Caucho Technology focused on Resin’s EJB 3.1 Lite
and CDI containers. I am also the author of EJB 3 in Action from Manning
Publishing. The book is currently in second edition and covers EJB 3.1,
CDI and JPA 2 (as well as a smattering of JSF 2). I am a relatively
frequent speaker at Java User Groups and conferences including
TheServerSide and JavaOne. I had been an independent member of the Java
EE 6 and EJB 3.1 expert groups (before I joined Caucho). Besides this EG
I am also part of the Java EE 7 and JMS 2 EGs.

Before I joined Caucho I have primarily been an independent consultant
focused on Java EE system architecture. I have been working with Java EE
since its inception, developing on almost every major application
platform ranging from Tomcat to JBoss, GlassFish, WebSphere and
WebLogic. I've developed enterprise systems for companies like Motorola,
Comcast, Nokia, Guardian Life, Prudential, Independence Blue Cross,
Citigroup, Accenture and GMAC using EJB 2, EJB 3, Spring and Seam 2.

In strict priority order, these are the things I'd like to see in EJB
3.2/EJB 4:
* Deprecation of EJB 1.x and 2.x entity beans as well as JAX-RPC.
* Allowing the use of EJB declarative transactions in plain managed beans.
* Clarifying the thread-safety semantics of using JPA resources in plain
transactional managed beans.
* Using a more fluent declarative transaction annotation such as
@Transactional (ideally in the javax.transaction package).
* Introducing the @TransactionScoped and @ThreadScoped CDI scopes geared
towards using back-end resources in a thread-safe manner in plain
transactional managed beans (ideally in the CDI 1.1 specification).
* Introducing the @PoolScoped CDI scope as a way of providing the
equivalent of stateless session beans in plain transactional managed
beans (ideally in the CDI 1.1 specification). Alternatively or in
addition to, a @MaxActive annotation could be introduced.
* Decoupling the @Schedule, @Asynchronous, @Lock, @Timeout, @Startup and
@Remote annotations from the EJB component model.
* Besides cron-like scheduling, allowing simple interval based
scheduling via @Schedule.
* Allowing the use of @Transactional, @Schedule, @Asynchronous, @Lock,
@Startup and @Remote in CDI stereotypes (ideally in the CDI 1.1
specification).
* Re-factoring Message Driven Beans to enable message receivers in plain
transactional managed beans via CDI observers (ideally via the JMS 2
specification).
* Standardizing some common JMS activation properties as direct message
listener attributes (ideally via the JMS 2 specification).
* Deprecation of EJB 1.x and 2.x altogether.
* The renaming of the EJB specification to something like Common
Platform Services (CPS) or Common Enterprise Services (CES) - this one I
really don't care that much about personally - it is only marginally
worth mentioning.

I sincerely believe making these enhancements in a timely fashion will
greatly aid not just greater market acceptance of the important
middleware services that EJB offers but the market acceptance of CDI as
well as the Java EE platform as a whole. I am happy to offer greater
detail on any of this as well as absolutely any resources that will help
make the above happen promptly. We have implemented the vast majority of
the above in Resin 4 and would be happy to contribute that work towards
the GlassFish EJB reference implementation.

Cheers,
Reza