Apache OpenEJB community releases OpenEJB 3.0 final

Discussions

News: Apache OpenEJB community releases OpenEJB 3.0 final

  1. The Apache OpenEJB community has released OpenEJB 3.0 final. OpenEJB 3.0 is an embeddable, lightweight EJB 3.0 implementation that can be used not only as a standalone server, but as an embedded server in Tomcat, JUnit, Eclipse, Intellij, Maven, Ant, or any other IDE or application. In addition to the features you'd expect in an EJB 3.0 implementation, OpenEJB emphasizes ease-of-use, painless configuration, and powerful testing possibilities so you can focus on product development. As a daily user of OpenEJB 3.0, I've been thoroughly impressed by the quality of the product and by the assistance of the developers throughout the beta phases since last summer, and can say with perfect confidence that without OpenEJB 3.0 I would not be able to do the work I'm doing with EJB3. In particular, the ability to load OpenEJB directly into my testing harness increased my development speed by an order of magnitude, because I can run tests with real EJBs against a real database in memory, and when the test finishes the database gets discarded. That means no loading tomcat, no expensive packaging of components, no rebooting servers, no delays. I've wanted to do this kind of development for years, and now it's a reality. Features include: EJB 3.0 enhanced features:
    • Supports EJB 3.0, EJB 2.1, EJB 2.0, and EJB 1.1
    • Runs on OSGi
    • CMP supported through JPA allowing for easy migration
    • Injection supports Enums, Classes, Dates, Files
    • Injection supports Java Generic Collections and Maps (@Resource List myfactories)
    • Custom Types injectable through adding a java.beans.PropertyEditor
    • JNDI Name formatting
    • App validation reports all deployment/compliance errors and warnings at once in terse, medium or verbose detail
    • Deep levels of annotation inheritance are completely respected
    Tomcat Features:
    • Supports any Tomcat 5.5 or 6 install
    • Provides JMS, J2EE connector, and JAX-WS support to Tomcat
    • JavaEE Injection for Servlets, Filters and Listeners
    • Adds EJB and EAR deployment support
    • Supports "Collapsed EARs", or EJBs in .war files
    • Remote EJB clients over HTTP
    • Tomcat server.xml can still be used
    • Seamless config: OpenEJB resources exported as Tomcat resources, Tomcat resources imported as OpenEJB resources
    • Uses Tomcat's security setup
    • Deployed as a webapp and can be easily removed at any time
    Embedded/Java SE Features:
    • Discovers applications in the classpath
    • Entirely Configurable via System or InitialContext Properties, config files optional
    • Boots and runs in seconds
    • No code dependencies on OpenEJB APIs required
    • Simplified logging output used while embedded
    • Transaction and Security are fully testable but can also be disabled via properties
    • Runs with no external process or network ports
    • Starts "empty" and only adds what's needed to run/test your app
    • Embeds without requiring IDE or build system plugins
    • Supports Glassfish, Geronimo, some WebLogic descriptors allowing those users to more easily embedded test with OpenEJB
    • Includes several examples covering many testing techniques

    Threaded Messages (9)

  2. Will it end the regime of Application SErver. Do IBM,Oracle,Bea need to throw their application servers?
  3. Re: End to Application SErver?[ Go to top ]

    Will it end the regime of Application SErver.
    Do IBM,Oracle,Bea need to throw their application servers?
    Ideally, our embedded EJB container concept will make it into EJB 3.1 and both options will be available to everyone. Our vision is quite simply that putting your app in a server is fine, but you should also have the option to put the container in your app. So likely not the end, but certainly the beginning of something pretty exciting....
  4. Re: End to Application SErver?[ Go to top ]

    So likely not the end, but certainly the beginning of something pretty exciting....
    +1. I think Java SE support for EJB 3.1 will make it into the spec. From my perspective, the lowest hanging fruit is EJB unit/integration testing as well as using EJB 3.1 with Spring on Tomcat where applicable.
  5. Transaction support[ Go to top ]

    Does this support container-managed and user-managed transactions? Not explicitly noted, but this has been the biggest pain point for me.
  6. Re: Transaction support[ Go to top ]

    Does this support container-managed and user-managed transactions? Not explicitly noted, but this has been the biggest pain point for me.
    Yes, it does. It also supports container-managed EntityManagers (i.e. PersistenceContextType.EXTENDED and PersistenceContextType.TRANSACTION). Here's an example that shows how to run a transaction in a test case to test an EntityManager and Entities with a TRANSACTION scoped persistence context. Here's the same example, but using a Stateful bean and an EXTENDED persistence context and no tx in the test case.
  7. Congratulations![ Go to top ]

    Congratulations to the release! It looks very interesting indeed.
  8. EJB3.1 ??[ Go to top ]

    Does it support Async. feature of EJB 3.1 specification?
  9. Re: EJB3.1 ??[ Go to top ]

    Does it support Async. feature of EJB 3.1 specification?
    Async invocations are not yet implemented. But we can definitely push that up to the top of the list. If anyone else has a specific aspect of EJB 3.1 they'd like to see most, let us know and we can prioritize accordingly.
  10. Congratulations David for such an awesome product; I have been a silent member of open EJB mailing list since long long time; and I always admire your passion and hard work for this project. Thanks a lot on behalf of the whole community. Regards, Rashid.