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]](img/note.gif) | Note | 
|---|---|
| 
			Set the  | 
		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");
|    |