DataNucleus uses Subversion (SVN) for housing its source code.
The DataNucleus SVN repository is hosted by SourceForge.
You can check out from the SVN repository using
svn co https://datanucleus.svn.sourceforge.net/svnroot/datanucleus datanucleus
Please note that this will check out ALL code and all branches. What would be better is
to check out "trunk" of all plugins that you are interested in.
The SVN repository is also browsable online via
ViewVC.
At the top level you will find
platform/ <- Products and plugins
test/ <- End to end testing
tools/ <- Add on tools (Maven, Eclipse etc)
documentation/ <- Docs
samples/ <- Samples, tutorials etc
The "platform" directory contains all source code for the plugins comprising
the different DataNucleus products. They are laid out as follows
platform/
accessplatform/ <- AccessPlatform "product" bundle process
trunk/
branches/
analysisplatform/ <- AnalysisPlatform "product" bundle process
trunk/
branches/
cache/ <- Level 2 caching plugin
trunk/
branches/
core/ <- "Core" plugin, the basis for all datastore access
trunk/
branches/
dataquality/ <- Data Quality analysis plugin
trunk/
branches/
enhancer/ <- Bytecode enhancer plugin
trunk/
branches/
java5/ <- Java5 plugin (no longer developed)
trunk/
branches/
jdo.connector/ <- JCA adaptor for JDO plugin
trunk/
branches/
jpa/ <- JPA plugin (replaces Java5 plugin)
trunk/
branches/
local.repository/ <- Repository (in Maven1 layout) with all dependencies
trunk/
management/ <- JMX Management plugin
trunk/
branches/
store.db4o/ <- DB4O datastore plugin
trunk/
branches/
sql4o/ <- SQL4O for db4o plugin
trunk/
branches/
store.excel/ <- Excel datastore plugin
trunk/
branches/
store.json/ <- JSON datastore plugin
trunk/
branches/
store.ldap/ <- LDAP datastore plugin
trunk/
branches/
store.neodatis/ <- NeoDatis ODB datastore plugin
trunk/
branches/
store.xml/ <- XML datastore plugin
trunk/
branches/
store.rdbms/ <- RDBMS datastore plugin
trunk/
branches/
store.rdbms.connectionpool/ <- RDBMS Connection pooling plugin
trunk/
branches/
store.rdbms.mapping.xmltypeoracle/ <- RDBMS "XMLType" plugin
trunk/
branches/
store.rdbms.spatial/ <- RDBMS Spatial plugin
trunk/
branches/
thirdparty/ <- Thirdparty stubs plugin (for building)
trunk/
branches/
All plugins are independently versioned (trunk is the latest, and branches are stored under
the branches directory). This is because they have their own lifecycle, and plugins are
bundled together into the "products" (AccessPlatform, AnalysisPlatform). So we could have
AccessPlatform using version X of a plugin, and AnalysisPlatform developing version Y of
that plugin because it needs some new functionality.
The End-to-End test section is laid out as follows
test/
accessplatform/
trunk/
test.jdo.general/
test.jpa.general/
test.jdo.application/
test.jdo.datastore/
...
branches/
analysisplatform/
trunk/
branches/
So we have separated tests for "AccessPlatform" from "AnalysisPlatform"
and we branch all tests for a product on one go.
The tools section contains anything that aids third party software operate with DataNucleus.
It is laid out like this
tools/
ide.eclipse/
trunk/
branches/
maven1/
trunk/
branches/
maven2/
trunk/
branches/
springframework/
trunk/
branches/
Like with all plugins, the tools are independently versioned since they have their
own lifecycle.
Finally the documentation area in Subversion is as follows
documentation/
accessplatform.datanucleus.org/
trunk/
branches/
analysisplatform.datanucleus.org/
trunk/
branches/
datanucleus.com/
trunk/
branches/
datanucleus.org/
trunk/
branches/
So we have a commercial website ("datanucleus.com"), a community website framework
("datanucleus.org") and a website for each product.