You can use the getPersistenceManagerFactory
methods of JDOHelper to obtain
PersistenceManagerFactory objects in
a vendor-neutral fashion. Each method accepts a
java.util.Properties instance, the name of a
CLASSPATH properties resource, or a properties file.
JDOHelper uses the
javax.jdo.PersistenceManagerFactoryClass property
value to invoke your vendor's PersistenceManagerFactory
class. It uses the rest of the properties to configure
the PersistenceManagerFactory
before returning it to you. Vendors may construct a new
PersistenceManagerFactory with each
invocation of this method, or may return a pooled instance that
matches the supplied properties.
The available configuration options and their associated property
names are discussed in Chapter 7, PersistenceManagerFactory.

Note

Set the javax.jdo.PersistenceManagerFactoryClass
to kodo.jdo.PersistenceManagerFactoryImpl
to use Kodo.

If the vendor's PersistenceManagerFactory
class is not visible to the current thread's class loader, you
can supply an alternative ClassLoader
to the JDOHelper when invoking each method.

This is a convenience method to retrieve a previously-bound
PersistenceManagerFactory from the
Java Naming and Directory Interface (JNDI). If the given
Context is null, the
JDOHelper will create a new
InitialContext with which to perform the lookup.

Example 6.1. Obtaining a PersistenceManagerFactory from Properties

// this is usually just done once in your application somewhere, and then
// you cache the factory for easy retrieval by application components
Properties props = new Properties ();
// this property key tells the JDOHelper what factory class to instantiate
props.setProperty ("javax.jdo.PersistenceManagerFactoryClass",
"kodo.jdo.PersistenceManagerFactoryImpl");
// these properties define the default settings for PersistenceManagers
// produced by this factory; these settings are covered in the next chapter
props.setProperty ("javax.jdo.option.Optimistic", "true");
props.setProperty ("javax.jdo.option.RetainValues", "true");
props.setProperty ("javax.jdo.option.ConnectionUserName", "solarmetric");
props.setProperty ("javax.jdo.option.ConnectionPassword", "kodo");
props.setProperty ("javax.jdo.option.ConnectionURL", "jdbc:hsql:database");
props.setProperty ("javax.jdo.option.ConnectionDriverName",
"org.hsqldb.jdbcDriver");
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory (props);