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.