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

Read-Only :
svn checkout svn://svn.code.sf.net/p/datanucleus/code/ datanucleus-code

Read-Write :
svn checkout --username={your-sf-login} svn+ssh://{your-sf-login}@svn.code.sf.net/p/datanucleus/code/ datanucleus-code

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. 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. Please note that not all plugins are included here, this is simply to give an idea of the layout.

platform/
    accessplatform/            <- AccessPlatform "product" bundle process
        trunk/
        branches/
    core/                      <- "Core" plugin, the basis for all datastore access
        trunk/
        branches/
    cache/                     <- Level 2 caching plugin
        trunk/
        branches/
    api.jdo/                   <- JDO API plugin
        trunk/
        branches/
    api.jpa/                   <- JPA API plugin
        trunk/
        branches/
    api.rest/                  <- REST API plugin
        trunk/
        branches/
    jdo.connector/             <- JCA adaptor for JDO
        trunk/
        branches/
    store.neo4j/               <- Neo4j datastore plugin
        trunk/
        branches/
    store.excel/               <- Excel datastore plugin
        trunk/
        branches/
    store.odf/                 <- ODF 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.types.spatial/       <- Spatial types plugin
        trunk/
        branches/
    local.repository/          <- Repository (in Maven1 layout) with all dependencies
        trunk/
            

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.jdo.application/
            test.jdo.datastore/
            test.jpa.general/
            ...
        branches/
    analysisplatform/
        trunk/
        branches/
            

So we have separated tests for "AccessPlatform" from "AnalysisPlatform" and we branch all tests for each product.


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/
    maven2/
        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/
    datanucleus.org/
        trunk/
        branches/
    accessplatform/
        trunk/
        branches/
                

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