JDO : Usage of DataNucleus within an OSGi environment

DataNucleus jars are OSGi bundles, and as such, can be deployed in an OSGi environment. Being an OSGi environment care must be taken with respect to class-loading. In particular the persistence property datanucleus.primaryClassLoader will need setting. Please refer to the following guide(s) for assistance until a definitive guide can be provided

An important thing to note : any dependent jar that is required by DataNucleus needs to be OSGi enabled. By this we mean the jar needs to have the MANIFEST.MF file including ExportPackage for the packages required by DataNucleus. Failure to have this will result in ClassNotFoundException when trying to load its classes.

Note that the jdo-api.jar that is included in the DataNucleus distribution is OSGi enabled. Also the Geronimo "jpa" jar that is included in the DataNucleus distribution is OSGi enabled too.

When using DataNucleus in an Eclipse Equinox OSGi environment you can use the persistence property datanucleus.plugin.pluginRegistryClassName as org.datanucleus.plugin.EclipsePluginRegistry and when in other OSGi environments set that property to org.datanucleus.plugin.OSGiPluginRegistry .