What's your role in the EclipseLink project?
I am the co-lead of the EclipsePersistence Services project,
more commonly known as EclipseLink. I share theproject leadership
with Peter Krogh, also from Oracle. Peter focuses on the
development side ofthings while I focus on the outbound interaction
with other projects, and thecommunity at large.
I also represent the EclipseLinkproject within the Eclipse RT ProjectManagement Council (RT-PMC). This top-level project was created to foster andpromote related runtime technologies at Eclipse.
What was the motivation for Oracle to donate the TopLink codebase to the Eclipse Foundation?
Oracle is committed to offering choice, flexibility,and a lower
cost of computing for end users. By investing significant
resourcesin developing, testing, optimizing, and supporting open
source technologiessuch as Linux, PHP, Apache, Eclipse, Berkeley
DB, and InnoDB, Oracle isembracing and offering open source
solutions as a viable choice for developmentand deployment.
Regarding the Oracle® TopLink®donation, Oracle had a positive experience and received great feedback fromopen sourcing the base TopLink ORM functionality in TopLink Essentials (JPA 1.0Reference Implementation in GlassFish). Oracle has been a long-time participantwith the Eclipse Foundation and found its vibrant, active community andoperational excellence a good match to our goals. There was also a strongdemand for a comprehensive persistence solution to address the needs of nextgeneration Java EE, SE, OSGi and service-based application development andTopLink provides a unique, powerful solution. This led Oracle to decide to opensource the entire TopLink functionality into Eclipse, making all of its richfunctionality available to the entire Java community.
EclipseLink is unique, as inaddition to delivering industry leading object-relational features, it alsoprovides additional persistence services including MOXy (Object-XML with JAXBsupport), Service Data Objects (SDO), and Database Web Services (DBWS). Makingthese capabilities available to the entire Java community through theEclipseLink project enables faster and broader adoption. It also allows usersto combine technologies from different standards bodies such as SDO and JPA,through a single persistence solution.
Additional details are available in this FAQ which was published when the project was proposed.
What are the consequences of being an open source project for your daily work and the work of the team?
The main impact of developing ourpersistence solution as an open source project at Eclipse is transparency.Users and contributors can easily track our ongoing development efforts andprovide immediate feedback. The result of this is that we do have an increasedvolume of questions, enhancement requests, and bugs to address during ongoingdevelopment work. This increased interaction with the community does representadditional overhead but it also delivers incredible benefit as it increases ourability to deliver the functionality that users need in shorter release cycles.The benefit of this additional interaction with the community far outweighs thecosts and we are appreciative of those in the community that take the time togive us this valuable feedback.
Could you describe the EclipseLink development process?Which development tools do you use apart from Eclipse? Which build tools? Whichproducts or solutions for continuous integration?
The EclipseLink committers leveragethe Eclipse bug database,
wiki and mailing lists to discuss feature developmentand bug fixes
in an open fashion so all interested parties can participate.
Allenhancements to the code base require peer reviews. A weekly
committer meetingis held where schedule, bug closure rates, and
design issues can be discussed.All interested parties are welcome
to attend and contribute. The EclipseLinkroad map and release
timelines are made available in a standard format so thatusers and
committers can easily track all upcoming milestones at
Builds and automated regressiontests are ANT based and run on a server hosted at the Eclipse Foundation.Automated build and tests run every half hour generating error reportsimmediately so that fixes can be made in short order. Nightly builds are madeavailable for download with milestone builds being made available on a monthlybasis. The nightly builds, milestones, and releases are made available fordirect download and also hosted in a Maven repository.
Most EclipseLink developers are working for Oracle. How do you respond to fears that EclipseLink is mainly tailored to support the Oracle Database and the Oracle Application Server?
While many of the developers workfor Oracle, I would point out
that there are a number of participants fromoutside Oracle,
including from other companies and individuals. EclipseLink hasa
long history of providing broad support for all major application
servers anddatabases. This is expected by users.
However, users also expect supportfor proprietary features offered by the leading databases. Given itsbackground, EclipseLink supports Oracle Database features better than any otherORM product. Having said that, it also supports specific features on otherdatabases including DB2, SQL Server, MySQL and Derby.
As a point of interest, EclipseLinkis part of Oracle's internal tool kit. Users of EclipseLink within Oracle, like many other users, require thatit is "hot pluggable" with different application server and database platforms.These consumers such as Oracle's SOA Suite and Oracle WebCenter Suite productsrequire deployment support on Oracle and non-Oracle Java EE containers withstorage using Oracle or non-Oracle databases.
Why should adeveloper choose EclipseLink instead of another persistence framework likeHibernate?
Through the direct experience ofOracle Developers and the
feedback we have received from external users,developers choose
EclipseLink over competitors for the following reasons:
- Performance and scalability features.EclipseLink's entity caching and query optimization capabilities allowdevelopers to efficiently load the data they need and cache reusable results tooptimize subsequent query executions. The transaction framework optimizeschange tracking and ensures minimal changes are written while also taking intoconsideration referential integrity, concurrency protection and cachecoordination requirements for clustered deployments.
- Multiple persistence services. Mostalternatives only handle relational mapping persistence. EclipseLink enablesnon-relational persistence with XML binding (JAXB), Service Data Objects (SDO)and mapping to JCA resource adapters. This flexibility allows developers toleverage a single persistence solution for all of their needs.
- Open and collaborative community.EclipseLink has a large and growing group of committers and contributors. We work hard to address the needs of ourcommunity and actively encourage participation, which has helped us ensure thatwe represent a broad range of user types across the java community.
- EclipseLink was selected as the referenceimplementation for JPA 2.0. How does the collaboration with the JSR expertgroup look like?
At present we are activelyimplementing the JPA 2.0 public draft specification. We have two EclipseLinkcommitters who sit on the JSR 317 expert group and provide feedback based onour previous experiences and current efforts implementing the draftspecification. We also work closely with the Sun developers writing theTechnology Compatibility Kit (TCK) to ensure coordinated development efforts asthe specification is finalized.
EclipseLink is providing earlyaccess for users to try out these new features. The EclipseLink 1.1 releasewill be the first release to deliver preview JPA 2.0 functionality. The nextmajor release of EclipseLink targets delivering the complete functionality.Interested developers can download milestone builds of these releases for evenearlier access and provide feedback to the expert group and the EclipseLinkcommitters.
8. As being the reference implementation for JPA 2.0EclipseLink mainly implements this spec. On the other hand, we always noticeimpacts of the implementation on the spec. Which interactions are there betweenEclipseLink and JPA 2.0? For instance: Which features of EclipseLink will wesee in JPA 2.0?
There are several key features ofJPA 2.0 that are already available to EclipseLink users as extensions to ourJPA 1.0 support.
- Pessimistic Locking
- Flexible Access Type
- Element Collection -collections of primitives
- API for programmaticallydefining queries
- Cache access, eviction supportand usage hints
- Nested Embeddables andrelationships from Embeddables,
- Derived Ids - using foreign keymappings as part of an entity's identity
- Private owned - orphan removal
- Nested Fetch Joins
- Collection parameter for INexpressions.
We continue to deliver innovativefunctionality for those requiring capabilities beyond the standards and endeavorto make these features compatible with the standard while minimizing usercoupling to native API.
The codebase ofEclipseLink is proven in many years of productive use. What are the futuredevelopments for EclipseLink aside from implementing JPA 2.0? What can weexpect in 2009?
We have a very busy year ahead ofus delivering on JPA 2.0 as
well as many new features requested by thecommunity.
- Upgrading the extended XML tosupport all of EclipseLink's advanced features
- Migration utilities to simplifyusers adopting EclipseLink from other persistence solutions
- Data Access Service using JPA
- 2.1.1 compliance
- Enhanced use of advancedmappings with native annotations and support for combining annotation and XMLconfiguration.
- Benchmarking activities todemonstrate EclipseLink's superior performance
- More examples and improveddocumentation
- Continued contribution andparticipation in the Eclipse Ecosystem
- Inclusion in the EclipseGalileo release
- Continued and improved supportfor OSGi/Equinox usage
- Enhanced EclipseLink toolingsupport in the Eclipse Dali project
- Continue working closely withother Eclipse projects such as Teneo and Swordfish to assist in their ongoinguse of EclipseLink