You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by David Blevins <da...@visi.com> on 2007/10/01 02:06:02 UTC
[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
Re: [ANN] Apache OpenEJB 3.0 beta 1
Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On 10/1/07, David Blevins <da...@visi.com> wrote:
> Sounds fine to me :) Note, I won't be here though, will be on
> vacation. Yes, that's right, actually taking some time to travel.
Sounds fine to me too :)
Jacek
--
Jacek Laskowski
http://www.JacekLaskowski.pl
Re: [ANN] Apache OpenEJB 3.0 beta 1
Posted by David Blevins <da...@visi.com>.
On Oct 1, 2007, at 1:06 AM, Jacek Laskowski wrote:
> On 10/1/07, David Blevins <da...@visi.com> wrote:
>
>> Or we ship a beta 2 in two weeks and a final two weeks after :)
>
> +10000. Good to hear we think alike. 10/12 is the 3.0-beta-2 branch
> day and 10/15 is the vote day?
Sounds fine to me :) Note, I won't be here though, will be on
vacation. Yes, that's right, actually taking some time to travel.
-David
Re: [ANN] Apache OpenEJB 3.0 beta 1
Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On 10/1/07, David Blevins <da...@visi.com> wrote:
> Or we ship a beta 2 in two weeks and a final two weeks after :)
+10000. Good to hear we think alike. 10/12 is the 3.0-beta-2 branch
day and 10/15 is the vote day?
Jacek
--
Jacek Laskowski
http://www.JacekLaskowski.pl
Re: [ANN] Apache OpenEJB 3.0 beta 1
Posted by David Blevins <da...@visi.com>.
On Sep 30, 2007, at 11:24 PM, Jacek Laskowski wrote:
> On 10/1/07, David Blevins <da...@visi.com> wrote:
>> 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.
>
> Whoo hoo! Congrats Dave for making the release reality!
>
> With 3.0 beta 1 out, when's the next release? I think that 3.0 FCS
> could hit the shelves in 1 month unless something wrong happens and
> 3.0 beta 2 sees the sunlight. Deal?
Or we ship a beta 2 in two weeks and a final two weeks after :)
-David
Re: [ANN] Apache OpenEJB 3.0 beta 1
Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On 10/1/07, David Blevins <da...@visi.com> wrote:
> 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.
Whoo hoo! Congrats Dave for making the release reality!
With 3.0 beta 1 out, when's the next release? I think that 3.0 FCS
could hit the shelves in 1 month unless something wrong happens and
3.0 beta 2 sees the sunlight. Deal?
Jacek
--
Jacek Laskowski
http://www.JacekLaskowski.pl