tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <>
Subject [ANN] Apache OpenEJB 3.0 beta 1
Date Mon, 01 Oct 2007 00:06:02 GMT
Apache OpenEJB 3.0-beta-1  -  September 29, 2007

The Apache OpenEJB team is proud to announce the release of OpenEJB  
3.0 beta 1.

   Download :

* * N E W   F E A T U R E S * *

EJB 3.0 Compliance

   OpenEJB 3.0 supports the EJB 3.0 specification as well as the prior
   EJB 2.1, EJB 2.0, and EJB 1.1. New features in EJB 3.0 include:
   Annotations instead of xml; No home interfaces; Business Interfaces;
   Dependency Injection; Intercpetors; Java Persistence API; POJO-style
   beans; Java Persistence API (JPA).

   EJB 2.1 features new to OpenEJB: MessageDriven Beans;
   Container-Managed Persistence (CMP) 2.0; Timers;

EJB plugin for Tomcat 6

   OpenEJB 3.0 can be plugged into any Tomcat 6 server, adding support
   for EJBs in Web Apps.  War files themselves can contain EJBs and the
   Servlets can use new JavaEE 5 annotations, XA transactions, JPA, and
   JMS.  Webapps can even support fat java clients connecting over

Container Driven Testing

   Testing EJBs can be done with plain old unit tests by using OpenEJB
   as an embedded EJB Container right in your test case just like you
   would use an embedded database such as HSQL or Derby.  With this you
   can test your EJBs in your build just as you would any other object.
   All parts of EJB can be tested from simple business invocations to
   transactions and security.  You'll be surprised how fast it is.


   Our CMP implementation is a thin layer over the new Java Persistence
   API (JPA). This means when you deploy an old style CMP 1.1 or CMP
   2.1 bean it is internally converted and ran as a JPA bean. This
   makes it possible to use both CMP and JPA in the same application
   without any coherence issues that can come from using two competing
   persistence technologies against the same data. Everything is
   ultimately JPA in the end.

Extended Dependency Injection

   Dependency Injection in EJB 3.0 via @Resource is largely limited to
   objects provided by the container, such as DataSources, JMS Topics
   and Queues. It is possible for you to supply your own configuration
   information for injection, but standard rules allow for only data of
   type String, Character, Boolean, Integer, Short, Long, Double, Float
   and Byte.  OpenEJB 3.0 supports injection of any data type for which
   you can supply a JavaBeans PropertyEditor. We include several
   built-in PropertyEditors already such as Date, InetAddress, Class,
   File, URL, URI, Map, List and more.

JavaEE 5 EAR and Application Client support

   JavaEE 5 EARs and Application Clients can be deployed in addition to
   ejb jars. EAR support is limited to ejbs, application clients, and
   libraries; WAR files and RAR files will be ignored. Per the JavaEE 5
   spec, the META-INF/application.xml and
   META-INF/application-client.xml files are optional.

Application Validation

   Incorrect usage of various new aspects of EJB 3.0 are checked for
   and reported during the deployment process preventing strange errors
   and failures. Validation failures (non-compliant issues with your
   application) are printed out in complier-style "all-at-once" output
   allowing you to see and fix all your issues in one go. For example,
   if you have 10 @PersistenceContext annotations that reference an
   invalid persistence unit, you get all 10 errors on the first deploy
   rather than one failure on the first deploy with 9 more failed
   deployments to go.

JNDI Name Formatting

   A complication when using EJB is that plain client applications are
   at the mercy of vendor's chosen methodology for how JNDI names
   should be constructed.  OpenEJB breaks the mold by allowing you to
   specify the exact format you'd like OpenEJB to use for your server
   or any individual application.  Supply us with a formatting string,
   such as "ejb/{ejbName}/{interfaceClass.simpleName}", to get a JNDI
   layout that best matches your needs.

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Apache OpenEJB version 3.0-beta-1
Release Notes
September 26th, 2007

New Features:

   * [OPENEJB-690] Hot deploy and undeploy via command line tool
   * [OPENEJB-689] Enterprise JavaBeans 3.0 support
   * [OPENEJB-606] Commons DBCP Managed Data Sources
   * [OPENEJB-458] META-INF/
   * [OPENEJB-451] openejb.xml to properties converter
   * [OPENEJB-304] EAR Deployment support for EJBs and AppClients
   * [OPENEJB-261] Embedded EJB Container for Unit Tests
   * [OPENEJB-260] Automatic Configuration for Simple Apps
   * [OPENEJB-216] Annotation-based Deployment
   * [OPENEJB-132] New Tomcat/OpenEJB integration
   * [OPENEJB-128] EJBd over HTTP -- ejb invocations over http protocol
   * [OPENEJB-123] CMP 2.x support via JPA
   * [OPENEJB-98] Dependency Injection
   * [OPENEJB-90] Business Interface support
   * [OPENEJB-89] EJB 2.1 <-> 3.0 compatibility
   * [OPENEJB-79] Interceptors


   * [OPENEJB-47] Support for common Exceptions serialization issues
   * [OPENEJB-429] Support for Network servlces while Embedded
   * [OPENEJB-425] Support for JPA runtime class enhancement
   * [OPENEJB-414] ActiveMQ Broker ServerService
   * [OPENEJB-692] JAAS and JACC Security
   * [OPENEJB-573] Support for JSR-77 j2ee management MEJB
   * [OPENEJB-389] Deployment support for EJB jar files without ejb- 
jar.xml files
   * [OPENEJB-452] Support for partially complete openejb-jar.xml files
   * [OPENEJB-336] Derby support
   * [OPENEJB-691] Adaptive logging for embedded and standalone modes
   * [OPENEJB-561] Stateless and Stateful pools on a per ejb basis
   * [OPENEJB-337] Derby Network Service

Tasks & Sub-Tasks:

   * [OPENEJB-591] "Hungry Exception" cleanup.
   * [OPENEJB-398] @Stateless and @Stateful EJB 3 support
   * [OPENEJB-447] Ability for remote server to pickup new  
deployments as they are added
   * [OPENEJB-675] Add support for logging being configured externally
   * [OPENEJB-605] Allow more info in authentication request
   * [OPENEJB-427] Allow multiple URIs in the ServerMetaData object  
to provide for clustering
   * [OPENEJB-446] App undeploy
   * [OPENEJB-78] Business Method: AroundInvoke
   * [OPENEJB-406] EJB3 equals() and hashCode() support for business  
interface proxies
   * [OPENEJB-369] EJBContext.getTimerService()
   * [OPENEJB-368] EJBContext.lookup
   * [OPENEJB-404] EJBHome.create<METHOD> style invoke
   * [OPENEJB-405] EntityBean.ejbHome<METHOD> method support
   * [OPENEJB-83] Expand protocol for non-ejb specific interfaces
   * [OPENEJB-624] Extract Logger Categories to a separate interface
   * [OPENEJB-80] InvocationContext
   * [OPENEJB-77] Lifecycle Callbacks: PostActivate/PrePassivate
   * [OPENEJB-76] Lifecycle Callbacks: PostConstruct/PreDestroy
   * [OPENEJB-308] META-INF/lib or APP-INF/lib for third-party jars  
in EARs
   * [OPENEJB-85] Non-EJBLocalObject local proxies for in-vm use
   * [OPENEJB-84] Non-EJBObject remote proxies for in-vm use
   * [OPENEJB-627] Refactor Logging API to tighten Logger creation
   * [OPENEJB-442] Stateful Session Bean Extended Persistence Context
   * [OPENEJB-558] Upgrade ActiveMQ to 4.1.1
   * [OPENEJB-265] Upgrade XBean to 2.6
   * [OPENEJB-686] Use released openjpa 1.0.0
   * [OPENEJB-441] javax.transaction.TransactionSynchronizationRegistry
   * [OPENEJB-523] @Remove invocation on home.remove or remote.remove
   * [OPENEJB-130] Automated Tomcat testing on Mac OSX and Linux
   * [OPENEJB-416] CMP2JPA: CMP 1.x beans
   * [OPENEJB-417] CMP2JPA: CMP 2.x cmp-fields
   * [OPENEJB-421] CMP2JPA: CMP 2.x ejbSelect
   * [OPENEJB-420] CMP2JPA: CMP 2.x many-to-many
   * [OPENEJB-419] CMP2JPA: CMP 2.x one-to-many
   * [OPENEJB-418] CMP2JPA: CMP 2.x one-to-one
   * [OPENEJB-541] CMP2JPA: Complex Primary Key
   * [OPENEJB-415] CMP2JPA: Create JPA based CMP container based on  
Castor container
   * [OPENEJB-422] CMP2JPA: Generate CMP 2.x concrete class for JPA
   * [OPENEJB-424] CMP2JPA: Generate entity-mapping.xml using OpenEJB  
2.x openejb-jar.xml file
   * [OPENEJB-423] CMP2JPA: Generate entity-mapping.xml using ejb- 
jar.xml file
   * [OPENEJB-542] CMP2JPA: Unknown Primary Key
   * [OPENEJB-87] Class-level Interceptors
   * [OPENEJB-108] Create javax.ejb classes, interfaces, enums, and  
   * [OPENEJB-109] Create javax.persistence classes, interfaces,  
enums and annotations
   * [OPENEJB-99] Dependency Injection: Public field
   * [OPENEJB-100] Dependency Injection: Setter
   * [OPENEJB-520] EJB 3 Pojo Session beans with EJB 2.1 Home and  
Remote interfaces
   * [OPENEJB-521] EJB 3 Pojo Session beans with EJB 2.1 LocalHome  
and Local interfaces
   * [OPENEJB-522] EJB 3 Stateful beans with init-method/@Init
   * [OPENEJB-380] ENC: message-destination-ref: javax.jms.Queue
   * [OPENEJB-381] ENC: message-destination-ref: javax.jms.Topic
   * [OPENEJB-382] ENC: persistence-context-ref
   * [OPENEJB-383] ENC: persistence-unit-ref
   * [OPENEJB-377] ENC: resource-env-ref: javax.ejb.SessionContext
   * [OPENEJB-378] ENC: resource-env-ref: javax.jms.Queue
   * [OPENEJB-379] ENC: resource-env-ref: javax.jms.Topic
   * [OPENEJB-374] ENC: resource-ref:
   * [OPENEJB-375] ENC: resource-ref: javax.jms.QueueConnectionFactory
   * [OPENEJB-376] ENC: resource-ref: javax.jms.TopicConnectionFactory
   * [OPENEJB-373] ENC: resource-ref: javax.mail.Session
   * [OPENEJB-356] Example: @Resource for Setter Injection
   * [OPENEJB-347] Example: Minimal Stateful Bean via @Stateful
   * [OPENEJB-346] Example: Minimal Statetless Bean via @Stateless
   * [OPENEJB-357] Example: Using @EJB to refer to other EJBs
   * [OPENEJB-96] Global JNDI Business Interface references
   * [OPENEJB-610] Hot deploy tool
   * [OPENEJB-102] Injection of EJB References
   * [OPENEJB-101] Injection of Environment Entries
   * [OPENEJB-105] Injection of Message Destination References
   * [OPENEJB-107] Injection of Persistence Context References
   * [OPENEJB-106] Injection of Persistence Unit References
   * [OPENEJB-104] Injection of Resource Environment References
   * [OPENEJB-103] Injection of Resource Manager Connection Factory  
   * [OPENEJB-544] Interceptor Chain
   * [OPENEJB-214] Interceptor: Lifecycle Callbacks: PostActivate/ 
   * [OPENEJB-543] InvocationContext
   * [OPENEJB-95] JNDI ENC Business Interface references
   * [OPENEJB-93] Local business interfaces via IntraVM Server
   * [OPENEJB-532] MessageDriven "onMessage" Interception
   * [OPENEJB-211] MessageDriven Bean: Lifecycle Callbacks:  
   * [OPENEJB-533] MessageDriven Lifecycle Interception
   * [OPENEJB-88] Method-level Interceptors
   * [OPENEJB-86] Package-level Interceptors (aka Default Interceptors)
   * [OPENEJB-119] Port BMP Container
   * [OPENEJB-121] Port MDB Container
   * [OPENEJB-118] Port Stateful Container
   * [OPENEJB-117] Port Stateless Container
   * [OPENEJB-91] Remote business interfaces via EJBd Server
   * [OPENEJB-92] Remote business interfaces via IntraVM Server
   * [OPENEJB-94] SessionContext.getBusinessObject(interface)
   * [OPENEJB-97] SessionContext.getInvokedBusinessInterface
   * [OPENEJB-213] Stateful Bean: Lifecycle Callbacks: PostActivate/ 
   * [OPENEJB-210] Stateful Bean: Lifecycle Callbacks: PostConstruct/ 
   * [OPENEJB-530] Stateful Business Method Interception
   * [OPENEJB-531] Stateful Lifecycle Interception
   * [OPENEJB-209] Stateless Bean: Lifecycle Callbacks: PostConstruct/ 
   * [OPENEJB-529] Stateless Business Method Interception
   * [OPENEJB-528] Stateless Lifecycle Interception
   * [OPENEJB-536] Validation: AroundInvoke signature
   * [OPENEJB-526] Validation: Check for incorrect use of injection- 
   * [OPENEJB-455] Validation: Check that @Local hasn't been used to  
point to an EJBLocalHome or EJBLocalObject interface
   * [OPENEJB-454] Validation: Check that @Remote hasn't been used to  
point to an EJBHome or EJBObject interface
   * [OPENEJB-552] Validation: EjbName used in InterceptorBinding is  
   * [OPENEJB-612] Validation: EjbName used in method-based  
   * [OPENEJB-616] Validation: PostActivate callback signature is  
   * [OPENEJB-614] Validation: PostConstruct callback signature is  
   * [OPENEJB-613] Validation: PreDestroy callback signature is correct
   * [OPENEJB-615] Validation: PrePassivate callback signature is  
   * [OPENEJB-617] Validation: Warn on unsupported service-refs
   * [OPENEJB-575] Validation: XML method permissions to beans that  
do not exist
   * [OPENEJB-574] Validation: XML transaction attributes to beans  
that do not exist
   * [OPENEJB-212] interceptor: Lifecycle Callbacks: PostConstruct/ 
   * [OPENEJB-221] javax.annotation.PostConstruct
   * [OPENEJB-222] javax.annotation.PreDestroy
   * [OPENEJB-603] javax.annotation.Resource: for SessionContext
   * [OPENEJB-602] javax.annotation.Resource: for TimerService
   * [OPENEJB-223] javax.annotation.Resource: for env-entry
   * [OPENEJB-401] javax.annotation.Resource: for message-destination- 
   * [OPENEJB-400] javax.annotation.Resource: for resource-ref
   * [OPENEJB-224] javax.annotation.Resources
   * [OPENEJB-225]
   * [OPENEJB-226]
   * [OPENEJB-227]
   * [OPENEJB-228]
   * [OPENEJB-229]
   * [OPENEJB-230] javax.ejb.ActivationConfigProperty
   * [OPENEJB-231] javax.ejb.ApplicationException
   * [OPENEJB-232] javax.ejb.EJB
   * [OPENEJB-233] javax.ejb.EJBs
   * [OPENEJB-234] javax.ejb.Init
   * [OPENEJB-235] javax.ejb.Local
   * [OPENEJB-236] javax.ejb.LocalHome
   * [OPENEJB-237] javax.ejb.MessageDriven
   * [OPENEJB-238] javax.ejb.PostActivate
   * [OPENEJB-239] javax.ejb.PrePassivate
   * [OPENEJB-240] javax.ejb.Remote
   * [OPENEJB-241] javax.ejb.RemoteHome
   * [OPENEJB-242] javax.ejb.Remove
   * [OPENEJB-243] javax.ejb.Stateful
   * [OPENEJB-244] javax.ejb.Stateless
   * [OPENEJB-245] javax.ejb.Timeout
   * [OPENEJB-246] javax.ejb.TransactionAttribute
   * [OPENEJB-247] javax.ejb.TransactionManagement
   * [OPENEJB-248] javax.interceptor.AroundInvoke
   * [OPENEJB-249] javax.interceptor.ExcludeClassInterceptors
   * [OPENEJB-250] javax.interceptor.ExcludeDefaultInterceptors
   * [OPENEJB-251] javax.interceptor.Interceptors

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Unimplemented Features, bugs, limitations

   * [OPENEJB-435] Support for JDK 1.6 / JRE 6.0
   * [OPENEJB-583] Problems excluding default interceptor
   * [OPENEJB-688] JAX-WS Web Services Support
   * [OPENEJB-371] ENC: service-ref support
   * [OPENEJB-628] Unenhanced JPA support with OpenJPA
   * [OPENEJB-668] Client JNDI Context.list method support
   * [OPENEJB-550] Need to support persistent TimerStore
   * [OPENEJB-584] Method-level interceptors declared via annotations  
executed before method-level annotations declared via xml
   * [OPENEJB-621] Allow properties command to work securely to fully  
remote servers
   * [OPENEJB-673] running openejb deploy command for an already  
deployed module throws an exception
   * [OPENEJB-253] Per EJB or EJB Interface JNDI Name declaration
   * [OPENEJB-611] Hot deploy directory

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

For updated details see:

View raw message