
DataNucleus provides support for persisting objects to particular datastores. It provides this capability via a Store Manager. It provides a Store Manager plugin for many datastores (see below). You can extend DataNucleuss capabilities using the plugin extension org.datanucleus.store_manager.
| Plugin extension-point | Key | URL-key | Description | Location |
|---|---|---|---|---|
| org.datanucleus.store_manager | rdbms | jdbc | Store Manager for RDBMS datastores | datanucleus-rdbms |
| org.datanucleus.store_manager | db4o | db4o | Store Manager for DB4O datastore | datanucleus-db4o |
| org.datanucleus.store_manager | neodatis | neodatis | Store Manager for NeoDatis datastores | datanucleus-neodatis |
| org.datanucleus.store_manager | ldap | ldap | Store Manager for LDAP datastores | datanucleus-ldap |
| org.datanucleus.store_manager | excel | Store Manager for Excel documents | excel | datanucleus-excel |
| org.datanucleus.store_manager | odf | odf | Store Manager for ODF datastores | datanucleus-odf |
| org.datanucleus.store_manager | xml | xml | Store Manager for XML datastores | datanucleus-xml |
| org.datanucleus.store_manager | json | json | Store Manager for JSON datastores | datanucleus-json |
| org.datanucleus.store_manager | amazons3 | amazons3 | Store Manager for Amazon S3 datastore | datanucleus-json |
| org.datanucleus.store_manager | googlestorage | googlestorage | Store Manager for Google Storage datastore | datanucleus-json |
| org.datanucleus.store_manager | hbase | hbase | Store Manager for HBase datastores | datanucleus-hbase |
If you want to implement support for another datastore you can achieve it by implementating the StoreManager interface.
.
For a brief guide on starting support for a new datastore, follow this HOWTO.
Once you have this implementation you then need to make the class available as a DataNucleus plugin. You do this by putting a file plugin.xml in your JAR at the root of the CLASSPATH. The file plugin.xml will look like this
<?xml version="1.0"?>
<plugin id="mydomain.mystore" name="DataNucleus plug-ins" provider-name="My Company">
<extension point="org.datanucleus.store_manager">
<store-manager class-name="mydomain.MyStoreManager" url-key="mykey" key="mykey"/>
</extension>
</plugin>
Note that you also require a MANIFEST.MF file as per the Extensions Guide.