Why DataNucleus ?
Choosing a Java data management platform will come down to your requirements in terms of cost,
functionality, support, etc.
- DataNucleus is Open Source, meaning that you have full access to the
source code for all versions of DataNucleus. With this you have the capability to correct
any errors that you encounter, but also better understand the data management process,
and you can potentially extend DataNucleus to suit your needs.
- DataNucleus is free. Our license is the Apache 2 license,
providing the code and executables (JARs) free of charge. You are free to use DataNucleus in your
projects. Please refer to the license for the precise wording. DataNucleus will always remain
Open Source. Our license (Apache 2) is very flexible, much more than the license
used for some other notable object/relational mapping software which use licenses like
- DataNucleus is independent and unstoppable. The source code is open, and is not owned exclusively
by some company. As such it cannot be bought by a large organisation such as Versant or Oracle and the
product terminated (as has happened to customers of Kodo, JDO Genie over the last few years) -
do you want that to happen to you? FYI EclipseLink is Oracle-driven, OpenJPA is IBM-driven and
Hibernate is RedHat-driven
- DataNucleus is standards driven and standards compliant implementing JDO1, JDO2,
JDO2.1, JDO2.2, JDO3, JPA1, and JPA2 providing all mandatory items and the majority of optional
items as well as providing several value-added extensions. Standards compliance safeguards
your applications future allowing you to swap between implementations.
- DataNucleus supports data management for many different types of datastores.
the vast majority of RDBMS databases on the market today,
MongoDB document store,
LDAP and other datastores meaning that
if you change your datastore in the future you don't need to change your data access
- DataNucleus provides outstanding performance when compared with the
- DataNucleus does not bring in large numbers of dependencies unlike other
persistence frameworks (for example, Hibernate) that have to provide a zip file just to
package all of their requirements up. In fact DataNucleus could be run with just 1
third-party library (jdo-api.jar) - beat that!
- DataNucleus is quality-driven being developed using a Test Driven Development
methodology. We have more than 2000 unit tests that are run before any release
guaranteeing a stable product. In addition we baseline our capabilities against standard
Java TCKs (JDO, JPA) - the definition of specification compliance. In our
issue tracker you will not find large numbers of
outstanding high priority items that you have to workaround (unlike what you find in the
Hibernate, OpenJPA, EclipseLink issue trackers for example)
- DataNucleus provides a level of free support by way of an
online forum and also provides
commercial support arrangements if you require it.
- DataNucleus consulting and training can be arranged with the developers of DataNucleus.
- DataNucleus is open to contributions/donations allowing individuals to help out and allowing
companies to sponsor features that they require for their deployments of DataNucleus.
- DataNucleus is plugin-driven using the OSGi standard mechanism, providing plugins to external
caching software (Coherence, EHCache, etc), to external database-pooling software
(DBCP, C3P0, etc), and much more.
At DataNucleus we have the following philosophy.
- Power : the user should be in control of their data. DataNucleus should empower them
- Persist Anywhere : data should be persistable to any datastore required.
DataNucleus should support all datastores, or at the very least provide a mechanism whereby all
can easily be supported
- Flexibility : the user should be able to choose the API they wish. DataNucleus
should support all standardised APIs in the problem domain.
- Right tool for the job : the user should be able to choose the right query language
or right datastore depending on the capabilities of that component. DataNucleus should
not limit their choice
- Configurability : the user should be able to utilise whatever components are best
suited to the task. DataNucleus should provide a framework whereby all components can be
- Performance : data processing should be efficient. DataNucleus should aim for
optimum performance wherever possible with the enabled features and allow all non-essential
features to be disabled to obtain this performance