Development
Documentation
Testing
DataNucleus Source Code Repository

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
Platform

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/
    cache/                     <- Level 2 caching plugin
        trunk/
        branches/
    core/                      <- "Core" plugin, the basis for all datastore access
        trunk/
        branches/
    enhancer/                  <- Bytecode enhancer plugin
        trunk/
        branches/
    api.jdo/                   <- JDO API plugin
        trunk/
        branches/
    api.jpa/                   <- JPA API plugin
        trunk/
        branches/
    jdo.connector/             <- JCA adaptor for JDO 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/
    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.spatial/       <- RDBMS Spatial plugin
        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.



Tests

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.



Tools

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.



Documentation

Finally the documentation area in Subversion is as follows

documentation/
    accessplatform.datanucleus.org/
        trunk/
        branches/
    analysisplatform.datanucleus.org/
        trunk/
        branches/
    datanucleus.org/
        trunk/
        branches/
                

So we have a main website ("datanucleus.org"), and a website for each product.