EclipseLink DJC
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
eclipse.org.
http://www.eclipse.org/eclipselink/project_summary
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.
These include:
- 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.
- JPA
-
- Upgrading the extended XML tosupport all of EclipseLink's advanced features
- Migration utilities to simplifyusers adopting EclipseLink from other persistence solutions
- SDO
-
- Data Access Service using JPA
- 2.1.1 compliance
- MOXy
-
- 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
Follow us