You can use the getPersistenceManagerFactory method of the JDOHelper to obtain PersistenceManagerFactory objects in a vendor-neutral fashion. This method takes a single argument, a java.util.Properties instance. The Properties instance is used to configure the PersistenceManagerFactory before it is returned from the method. Vendors may construct a new PersistenceManagerFactory with each invocation of this method, or may pool PersistenceManagerFactory instances and return a pooled instance that matches the supplied properties. The available configuration options and their associated property names are discussed in the next chapter detailing the PersistenceManagerFactory interface.
Example 6.1. Obtaining a PersistenceManagerFactory
// this is usually just done once in your application somewhere, and then // you cache the factory for easy retrieval by application components; often // the properties are read from a properties file Properties props = new Properties (); // this property key tells the jdohelper what pmfactory class to instantiate props.setProperty ("javax.jdo.PersistenceManagerFactoryClass", "com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory"); // these properties define the default settings for persistence managers // 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);