Eclipse Persistence Services Project

The project has been created. Please visit the project page.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the EclipseLink newsgroup at news:news.eclipse.org/eclipse.technology.eclipselink. Web interface

The Eclipse Java Persistence Platform (EclipseLink) project is a proposed incubator project within the Technology Top Level Project of the Eclipse Foundation.

Overview

EclipseLink, the Eclipse Java Persistence Platform project, will provide an extensible framework that will enable Java developers to interact with relational databases, XML, and Enterprise Information Systems (EIS). EclipseLink will provide support for a number of persistence standards including the Java Persistence API (JPA), Java API for XML Binding (JAXB), Java Connector Architecture (JCA), and Service Data Objects (SDO). It is our intention to work with the OSGi expert group to create a set of blueprints that illustrate the use of these prominent persistence standards within the OSGi platform. Guidelines for persistence usage within OSGi will enable OSGi-based applications to access all types of enterprise data through existing standard APIs. The combination of standardized persistence with the OSGi services framework will bring increased portability and improved modularity to applications and confirm the value proposition of merging these two technologies.

Description

Java standards for data access have been evolving on various fronts with the latest milestone being the completion of the Service Data Object 2.1 specification, which defines a standard for the exchange of XML-based information in Service Component Architecture applications. The Java Persistence API for persisting Java POJOs to relational databases was also recently completed and has garnered widespread industry and developer support. The emergence of OSGi as an evolving Java standard in the enterprise space particularly in combination with Spring is an additional recent development.

The development of these standards provides Java developers with the means to build portable Java applications that interact with relational databases and other systems (both Java and non-Java based). However these are specifications, not implementations. The Eclipse Java Persistence Platform project will provide implementations of Java standard persistence APIs for developing applications that persist Java objects to relational databases, XML, and to Enterprise Information Systems. The fundamental goal of the EclipseLink project is to develop an extensible framework that provides a "link" between the Java world of objects and other models including relational and XML.

Scope

The Eclipse Java Persistence Platform will provide an extensible framework that will provide JPA, JAXB, and SDO persistence as well as customizations for other persistence mechanisms.� The following initial component frameworks are planned:

EclipseLink-ORM will provide an extensible Object-Relational Mapping (ORM) framework with support for the Java Persistence API (JPA). It will provide persistence access through JPA as well as having extended persistence capabilities configured through custom annotations and XML. These extended persistence features include powerful caching (including clustered support), usage of advanced database specific capabilities, and many performance tuning and management options.

EclipseLink-OXM will provide an extensible Object-XML Mapping (OXM) framework with support for the Java API for XML Binding (JAXB). It will provide serialization services through JAXB along with extended functionality to support meet in the middle mapping, advanced mappings, and critical performance optimizations.

EclipseLink-SDO will provide a Service Data Object (SDO) implementation as well as the ability to represent any Java object as an SDO and leverage all of its XML binding and change tracking capabilities.

EclipseLink-DAS will provide an SDO Data Access Service (DAS) that brings together SDO and JPA.

EclipseLink-DBWS will provide a web services capability for developers to easily and efficiently expose their underlying relational database (stored procedures, packages, tables, and ad-hoc SQL) as web services. The metadata driven configuration will provide flexibility as well as allow default XML binding for simplicity.

EclipseLink-XR will deliver key infrastructure for situations where XML is required from a relational database. The metadata driven mapping capabilities of EclipseLink-ORM and EclipseLink-OXM are both leveraged for the greatest flexibility. Using this approach to XML-Relational access enables greater transformation optimizations as well as the ability to leverage the Eclipse Java Persistence Platform's shared caching functionality. While this capability is primary infrastructure for DBWS and DAS it will also be possible for consuming applications to leverage this directly.

EclipseLink-EIS provides support for mapping Java POJOs onto non-relational data stores using the Java Connector Architecture (JCA) API.

Project Principles

Among the key principles on which this project has been initiated, and will be run, are the following:

Leverage the Eclipse Ecosystem It is our goal to extend the Eclipse ecosystem as well as leverage other Eclipse project functionality where applicable.

Extensibility It is our intention to develop a set of extensible frameworks that implement individual specifications and that provide the ability to add features that extend the base specification (e.g., advanced mappings and query features).

Incremental Development An agile development process will be employed to manage and respond to requirements.

Vendor Neutrality We intend to develop frameworks that are not biased toward any vendor. The Eclipse Java Persistence Platform will provide relational persistence with any relational database, integration with any Enterprise Information System providing a JCA connector, and deployment into any application server, OSGi container, and Java runtime environment.

Inclusiveness We aim to encourage all interested parties and vendors to participate and contribute to the project in all areas. We recognize the value of working with as many parties as possible on open source Eclipse-based frameworks and technologies.

Integration Points with Other Eclipse Projects

Building on the Eclipse Ecosystem

The existing Oracle TopLink code base includes a number of components that could leverage frameworks provided by existing Eclipse projects. A detailed analysis will be performed during the Validation phase of the project. The initial list of projects that may be leveraged by the Eclipse Java Persistence Platform include:

Equinox

EclipseLink is expected to implement new OSGi services as evolved by the OSGi Enterprise Expert Group.

Data Tools Platform (DTP)

  • Model Base project to provide a model of relational database schemas and structures.

  • Connectivity project, which provides components for defining, connecting to, and working with data sources.

Web Tools Platform (WTP)

  • WTP provides some support for JCA. EclipseLink-EIS may be able to leverage this support.

SOA Tools

  • SOA Tools will provide WSDL editing support that can be leveraged by EclipseLink-DBWS.

Contributing to the Eclipse EcoSystem

The availability of a number of persistence frameworks could be both leveraged by tooling projects and consumed by them in the construction of applications.

WTP Dali JPA Tools project

  • JPA mapping validation
  • JPA query code assist and validation
  • DDL generation

WTP Web Services

  • Incorporate EclipseLink-DBWS for the construction of Web Services that access relational database data.

SOA Tools

  • Incorporate EclipseLink-DBWS for the construction of Web Services that access relational database data.
  • Incorporate EclipseLink-SDO for the construction of Service Component Architecture applications
  • Provide a JAXB implementation for development of JAX WS applications.

Code Contributions

Oracle offers its Oracle TopLink code base and tests for consideration by the project as an initial starting point.

Interested Parties

Oracle, as the submitter of this proposal, welcomes interested parties to post to the EclipseLink newsgroup and ask to be added to the list as interested parties or to suggest changes to this document.

A number of companies have expressed interest in the project and/or its components thus far. This list will be updated periodically to reflect the growing interest in EclipseLink:

  • Genuitec LLC
  • Innoopract
  • Interface21
  • Oracle Corporation
  • TmaxSoft

Initial Committers

The following companies will contribute initial committers to get the project started:

  • Oracle Corporation

Developer community

With a large code base contribution from Oracle a number of developers from the Oracle TopLink development team will be initial committers, however we also expect the initial set of committers to include developers from the other interested parties. We will make it easy for interested parties to take an active role in the project by making our planning and process transparent and remotely accessible.  Contributions will be appreciated and we will encourage all active contributors to become committers.