6.3. PersistenceManagerFactory Construction

public static PersistenceManagerFactory getPersistenceManagerFactory (Properties props);
public static PersistenceManagerFactory getPersistenceManagerFactory (Properties props, ClassLoader loader);
public static PersistenceManagerFactory getPersistenceManagerFactory (String rsrc);
public static PersistenceManagerFactory getPersistenceManagerFactory (String rsrc, ClassLoader loader);
public static PersistenceManagerFactory getPersistenceManagerFactory (File file);
public static PersistenceManagerFactory getPersistenceManagerFactory (File file, ClassLoader loader);

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]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.

public static PersistenceManagerFactory getPersistenceManagerFactory (String name, 
    Context jndiContext);
public static PersistenceManagerFactory getPersistenceManagerFactory (String name, 
    Context jndiContext, ClassLoader loader);

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);

Example 6.2. Obtaining a PersistenceManagerFactory from a Resource

// the jdo.properties resource sets the javax.jdo.PersistenceManagerFactory
// key to kodo.jdo.PersistenceManagerFactoryImpl, and includes other
// javax.jdo.option.* settings 
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory ("jdo.properties");

 

Skip navigation bar   Back to Top