Project co-lead Doug Clarke tells us the latest about EclipseLink
EclipseLink Goes Cloud – Q&A
Could you describe the EclipseLink project in a few words?
The EclipseLink project offers a comprehensive set of open source Java persistence capabilities focused on standards, advanced extensions, performance and flexibility. EclipseLink provides object-relational mapping as the Java Persistence API (JPA) reference implementation as well as Object-XML Mapping/binding support implementing JAXB. EclipseLink also combines these features together to provide Database Web Services (DBWS).
What is the difference between EclipseLink and other Persistence Frameworks like Hibernate?
There are a number of differences that make EclipseLink a very compelling choice for developers, architects and managers who are evaluating Java persistence options.
- JPA and a lot more: The EclipseLink project offers the reference implementation of JPA as well as its native Object-Relational Mapping (ORM) solution supporting use of leading database vendors. JPA is still the most popular feature of EclipseLink but it is not alone. EclipseLink also offers Object-XML mapping and binding support with a compliant Java Architecture for XML Binding (JAXB) implementation. These additional mapping technologies as well as the EclipseLink DBWS offering provide developers with a single persistence framework for all of their needs. These persistence solutions can be used individually or even greater functionality when multiple persistence services are used in combination.
- PERFORMANCE and SCALABILITY: EclipseLink is heavily optimized and provides unmatched performance and scalability. For many years now EclipseLink has been an integral part of Oracle’s record-setting application server benchmark results and continues to be optimized for future benchmarks. Additionally, the EclipseLink team works hard on its own benchmarking to ensure performance and scalability features improve release to release as well as against our leading competitors. Developers will find EclipseLink’s performance features combined with its out-of-the-box support for caching in an application cluster can deliver them great scalability.
- STANDARDS Focused: We encourage the use of standard persistence APIs and offer extended functionality when needed. We work closely with the expert groups delivering the reference implementations of leading standards and provide feedback on usage of our extensions to help deliver popular features in the next release of these specifications.
- LICENSING: Many customers find EclipseLink's
more flexible dual-licensing under Eclipse Public License (EPL) and
Eclipse Distribution License (EDL, a BSD license) to be easier to
integrate and receive approval on from their legal teams.
- AVAILABILITY: EclipseLink is available directly from the project's downloads pages, Maven and Eclipse P2 repositories, as well as being packaged with a number of open source and commercial products including GlassFish (both commercial and open source), Oracle TopLink, Spring Framework, JEUS, Oracle WebLogic Server and Oracle WebLogic Suite, Oracle Fusion Applications, and the Eclipse Indigo Java EE package (IDE).
- UPGRADE PATH: EclipseLink has a shared codebase with Oracle TopLink, which offers contractual technical support, and additional commercial features like TopLink Grid, for integration with other Oracle Fusion Middleware like the Oracle Coherence in-memory data grid.
What´s new in the Indigo version of EclipseLink?
The EclipseLink 2.3.0 release, included in the Eclipse Indigo release train, offers many new and exciting features for Java developers. This release provides developers with greater flexibility in deployment architectures allowing for the development of applications which can more easily address future requirements and operate within cloud solutions delivering Software as a Service (SaaS) features.
Multi-tenant: Allows multiple application tenants to store their entities in the same shared table. EclipseLink manages the tenant context limiting results and ensures tenant identifiers are used on writes and bulk operations.
Extensible: Developers can now author JPA entities or JAXB beans that include support for extending the mappings in the application simply by providing additional mappings/bindings for the 'virtual' attributes.
External Metadata: Developers can also override or extend their mappings through an external metadata store/repository. When a JPA persistence unit or JAXB context is initialized EclipseLink will retrieve these overrides and include them. This allows for dynamic applications including multitenant applications with tenant specific extensions defined and used on-the-fly.
Composite Persistence Units: Developers will now be able to compose multiple JPA persistence units together within their application. This will allow access to entities stored in different databases using a single persistence unit as well as supporting relationships between entities stored in different databases.
In addition to these key features there are also mapping enhancements to improve flexibility. The EclipseLink 2.3.0 release addresses 260 bugs or enhancement requests. The community will find many updates to examples, tutorials, and documentation to help them use the new features as well as our ongoing commitment to providing great community support through the EclipseLink newsgroup and mailing lists.
What do you think about the hype around NoSQL Databases?
NoSQL databases are a bright new space with a lot of potential. The EclipseLink project is always interested in offering persistence services that meet the needs of our users. Our project’s charter in this space with respect to persistence solutions is in standards-based implementations. As the NoSQL offerings mature and Java persistence to these stores develops we will monitor and watch for opportunities to provide a persistence solution that meets the needs of our user community and addresses the standards that develop.
What are the next steps for EclipseLink in the upcoming Juno release Train?
The EclipseLink team has already started planning its 2.4.0 release tentatively scheduled for the fall of 2011 as well as our 2.5.0 release planned to coincide with Eclipse Juno. The features added in 2.3.0 go a long way to simplifying the development of next generation applications targeting the cloud as their deployment platform. Our plan is to continue to lead the way in making the Java persistence platform cloud ready with Software as a Service (SaaS) enabling features and integration points for Platform as a Service (PaaS) solutions.
As with all of our releases, we encourage Java developers to try out the features and provide feedback to help shape the future of the EclipseLink project.
Author: Doug Clarke
BIO: Doug is the co-lead of the EclipseLink project (www.eclipse.org/eclipselink) and a Director of Product Management for Oracle Fusion Middleware with responsibility for TopLink, Oracle's strategic Java Persistence solution.