On behalf of the Apache OpenJPA project, I'd like to offer my hearty
congratulations on this first beta for OpenEJB 3.0!
For over half a decade (since OpenEJB version 0.8 beta 3), we've been
using OpenEJB for testing EJB compliance in Kodo JPA/JDO (BEA's
productized extension of OpenJPA), and its flexible architecture made
it easy to embed into our testing framework. Since then, it has been
an integral part of our first-pass acceptance tests, and it has
always performed admirably.
The OpenJPA project is proud to stand side by side with OpenEJB as
the embedded EJB components in Apache Geronimo!
> From: David Blevins <david.blevins@visi.com>
> Date: September 30, 2007 5:06:02 PM PDT
> To: users@openejb.apache.org
> Cc: dev@openejb.apache.org
> Subject: [ANN] Apache OpenEJB 3.0 beta 1
>
>
> Apache OpenEJB 3.0-beta-1 - September 29, 2007
> http://openejb.apache.org/
>
> The Apache OpenEJB team is proud to announce the release of OpenEJB
> 3.0 beta 1.
>
> Download : http://openejb.apache.org/openejb-30-beta-1.html
>
> * * 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
> HTTP.
>
>
> 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.
>
>
> CMP via JPA
> =============================
>
> 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.
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Changes:
> 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/env-entries.properties
> * [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
>
> Improvements:
>
> * [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
> annotations
> * [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: java.net.URL
> * [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
> References
> * [OPENEJB-544] Interceptor Chain
> * [OPENEJB-214] Interceptor: Lifecycle Callbacks: PostActivate/
> PrePassivate
> * [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:
> PostConstruct/PreDestroy
> * [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/
> PrePassivate
> * [OPENEJB-210] Stateful Bean: Lifecycle Callbacks: PostConstruct/
> PreDestroy
> * [OPENEJB-530] Stateful Business Method Interception
> * [OPENEJB-531] Stateful Lifecycle Interception
> * [OPENEJB-209] Stateless Bean: Lifecycle Callbacks:
> PostConstruct/PreDestroy
> * [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-
> target-name
> * [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
> correct
> * [OPENEJB-612] Validation: EjbName used in method-based
> InterceptorBinding
> * [OPENEJB-616] Validation: PostActivate callback signature is
> correct
> * [OPENEJB-614] Validation: PostConstruct callback signature is
> correct
> * [OPENEJB-613] Validation: PreDestroy callback signature is correct
> * [OPENEJB-615] Validation: PrePassivate callback signature is
> correct
> * [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/
> PreDestroy
> * [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-ref
> * [OPENEJB-400] javax.annotation.Resource: for resource-ref
> * [OPENEJB-224] javax.annotation.Resources
> * [OPENEJB-225] javax.annotation.security.DeclareRoles
> * [OPENEJB-226] javax.annotation.security.DenyAll
> * [OPENEJB-227] javax.annotation.security.PermitAll
> * [OPENEJB-228] javax.annotation.security.RolesAllowed
> * [OPENEJB-229] javax.annotation.security.RunAs
> * [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:
> http://openejb.apache.org/openejb-30-beta-1.html
>
>
>
|