You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by aw...@apache.org on 2006/08/11 23:08:00 UTC

svn commit: r430897 - in /incubator/openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/ openjpa-kernel/src/main/java/org/apache/openjpa/ant/ openjpa-kernel/src/main/java/org/ap...

Author: awhite
Date: Fri Aug 11 14:07:58 2006
New Revision: 430897

URL: http://svn.apache.org/viewvc?rev=430897&view=rev
Log:
Allow our JPA ConfigurationProviderImpl to find a default persistence unit in
persistence.xml when no explicit configuration is given to dev tools.  Do this
in a backwards-compatible way that won't break previous behavior or other facade
behavior (JDO).  This means you should no longer have to pass 
"-p persistence.xml" to tools like the enhancer, nor should you have to specify
a properties argument to the PCEnhancerAgent in the premain for runtime 
enhancement.


Modified:
    incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/MappingToolTask.java
    incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.java
    incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/SchemaToolTask.java
    incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/MetaDataToolTask.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/ant/AbstractTask.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationProvider.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/MapConfigurationProvider.java
    incubator/openjpa/trunk/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties
    incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/ConfigurationTestConfigurationProvider.java
    incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-persistence-jdbc/pom.xml
    incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ConfigurationProviderImpl.java
    incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
    incubator/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLConfiguration.java

Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/MappingToolTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/MappingToolTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/MappingToolTask.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/MappingToolTask.java Fri Aug 11 14:07:58 2006
@@ -22,7 +22,7 @@
 import org.apache.openjpa.jdbc.meta.MappingTool;
 import org.apache.openjpa.jdbc.schema.SchemaTool;
 import org.apache.openjpa.lib.ant.AbstractTask;
-import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.util.MultiLoaderClassResolver;
@@ -161,7 +161,7 @@
         flags.meta = meta;
     }
 
-    protected Configuration newConfiguration() {
+    protected ConfigurationImpl newConfiguration() {
         return new JDBCConfigurationImpl();
     }
 

Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.java Fri Aug 11 14:07:58 2006
@@ -26,7 +26,7 @@
 import org.apache.openjpa.jdbc.meta.ReverseCustomizer;
 import org.apache.openjpa.jdbc.meta.ReverseMappingTool;
 import org.apache.openjpa.lib.ant.AbstractTask;
-import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.util.CodeFormat;
 import org.apache.openjpa.lib.util.Files;
@@ -215,7 +215,7 @@
         return flags.format;
     }
 
-    protected Configuration newConfiguration() {
+    protected ConfigurationImpl newConfiguration() {
         return new JDBCConfigurationImpl();
     }
 

Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/SchemaToolTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/SchemaToolTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/SchemaToolTask.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/ant/SchemaToolTask.java Fri Aug 11 14:07:58 2006
@@ -21,7 +21,7 @@
 import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
 import org.apache.openjpa.jdbc.schema.SchemaTool;
 import org.apache.openjpa.lib.ant.AbstractTask;
-import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.Localizer;
 
@@ -121,7 +121,7 @@
         this.file = file;
     }
 
-    protected Configuration newConfiguration() {
+    protected ConfigurationImpl newConfiguration() {
         return new JDBCConfigurationImpl();
     }
 

Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java Fri Aug 11 14:07:58 2006
@@ -93,20 +93,19 @@
     /**
      * Constructor.
      *
-     * @param loadDefaults whether to attempt to load the default
-     * <code>org.apache.openjpa.properties</code> resource
+     * @param loadGlobals whether to attempt to load the global properties
      */
-    public JDBCConfigurationImpl(boolean loadDefaults) {
-        this(true, loadDefaults);
+    public JDBCConfigurationImpl(boolean loadGlobals) {
+        this(true, loadGlobals);
     }
 
     /**
      * Constructor.
      *
      * @param derivations whether to apply product derivations
-     * @param loadDefaults whether to attempt to load the default properties
+     * @param loadGlobals whether to attempt to load the global properties
      */
-    public JDBCConfigurationImpl(boolean derivations, boolean loadDefaults) {
+    public JDBCConfigurationImpl(boolean derivations, boolean loadGlobals) {
         super(false, false);
         String[] aliases;
 
@@ -297,14 +296,10 @@
         // a bug in JRun, and we can get around it by forcing
         // Instruction.class to be loaded and initialized
         // before TypedInstruction.class
-        try {
-            serp.bytecode.lowlevel.Entry.class.getName();
-        } catch (Throwable t) {
-        }
-        try {
-            serp.bytecode.Instruction.class.getName();
-        } catch (Throwable t) {
-        }
+        try { serp.bytecode.lowlevel.Entry.class.getName(); } 
+        catch (Throwable t) {}
+        try { serp.bytecode.Instruction.class.getName(); } 
+        catch (Throwable t) {}
 
         supportedOptions().add(OPTION_QUERY_SQL);
         supportedOptions().add(OPTION_JDBC_CONNECTION);
@@ -313,8 +308,8 @@
 
         if (derivations)
             ProductDerivations.beforeConfigurationLoad(this);
-        if (loadDefaults)
-            loadDefaults();
+        if (loadGlobals)
+            loadGlobals();
     }
 
     /**

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/MetaDataToolTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/MetaDataToolTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/MetaDataToolTask.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/MetaDataToolTask.java Fri Aug 11 14:07:58 2006
@@ -23,7 +23,7 @@
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.lib.ant.AbstractTask;
-import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.meta.MetaDataTool;
@@ -58,7 +58,7 @@
         this.fileName = fileName;
     }
 
-    protected Configuration newConfiguration() {
+    protected ConfigurationImpl newConfiguration() {
         return new OpenJPAConfigurationImpl();
     }
 

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ant/PCEnhancerTask.java Fri Aug 11 14:07:58 2006
@@ -21,7 +21,7 @@
 import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.enhance.PCEnhancer;
 import org.apache.openjpa.lib.ant.AbstractTask;
-import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.meta.MetaDataRepository;
 
@@ -73,7 +73,7 @@
         flags.tmpClassLoader = tmpClassLoader;
     }
 
-    protected Configuration newConfiguration() {
+    protected ConfigurationImpl newConfiguration() {
         return new OpenJPAConfigurationImpl();
     }
 

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java Fri Aug 11 14:07:58 2006
@@ -58,10 +58,6 @@
 
 /**
  * Implementation of the {@link OpenJPAConfiguration} interface.
- *  On construction, the class will attempt to locate a default properties
- * file called <code>openjpa.properties</code> located at any top level token
- * of the CLASSPATH. See the {@link ConfigurationImpl} class description
- * for details.
  *
  * @see ConfigurationImpl
  * @author Marc Prud'hommeaux
@@ -149,7 +145,7 @@
         new StoreFacadeTypeRegistry();
 
     /**
-     * Default constructor. Attempts to load default properties.
+     * Default constructor. Attempts to load global properties.
      */
     public OpenJPAConfigurationImpl() {
         this(true);
@@ -158,21 +154,19 @@
     /**
      * Constructor.
      *
-     * @param loadDefaults whether to attempt to load the default
-     * <code>openjpa.properties</code> resource
+     * @param loadGlobals whether to attempt to load the global properties
      */
-    public OpenJPAConfigurationImpl(boolean loadDefaults) {
-        this(true, loadDefaults);
+    public OpenJPAConfigurationImpl(boolean loadGlobals) {
+        this(true, loadGlobals);
     }
 
     /**
      * Constructor.
      *
      * @param derivations whether to apply product derivations
-     * @param loadDefaults whether to attempt to load the default
-     * <code>openjpa.properties</code> resource
+     * @param loadGlobals whether to attempt to load the global properties
      */
-    public OpenJPAConfigurationImpl(boolean derivations, boolean loadDefaults) {
+    public OpenJPAConfigurationImpl(boolean derivations, boolean loadGlobals) {
         super(false);
         String[] aliases;
 
@@ -514,8 +508,8 @@
 
         if (derivations)
             ProductDerivations.beforeConfigurationLoad(this);
-        if (loadDefaults)
-            loadDefaults();
+        if (loadGlobals)
+            loadGlobals();
     }
 
     public Collection supportedOptions() {

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/ant/AbstractTask.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/ant/AbstractTask.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/ant/AbstractTask.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/ant/AbstractTask.java Fri Aug 11 14:07:58 2006
@@ -27,6 +27,9 @@
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
 import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.ConfigurationImpl;
+import org.apache.openjpa.lib.conf.ConfigurationProvider;
+import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.util.Localizer;
 
 /**
@@ -55,7 +58,7 @@
     protected boolean useParent = false;
     protected boolean isolate = false;
 
-    private Configuration _conf = null;
+    private ConfigurationImpl _conf = null;
     private AntClassLoader _cl = null;
 
     /**
@@ -94,7 +97,7 @@
      * Implement this method to return a configuration object for the
      * product in use.
      */
-    protected abstract Configuration newConfiguration();
+    protected abstract ConfigurationImpl newConfiguration();
 
     /**
      * Perform the task action on the given files.
@@ -148,6 +151,16 @@
     }
 
     public void execute() throws BuildException {
+        // if the user didn't supply a conf file, load the default
+        if (_conf == null)
+            _conf = newConfiguration();
+        if (_conf.getPropertiesResource() == null) {
+            ConfigurationProvider cp = Configurations.
+                loadDefaults(getClassLoader());
+            if (cp != null)
+                cp.setInto(_conf);
+        }
+
         String[] files = getFiles();
         try {
             executeOn(files);
@@ -156,8 +169,7 @@
             if (haltOnError)
                 throw new BuildException(e);
         } finally {
-            if (_conf != null)
-                _conf.close();
+            _conf.close();
             _conf = null;
         }
     }

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java Fri Aug 11 14:07:58 2006
@@ -105,7 +105,8 @@
     private String _product = null;
     private boolean _readOnly = false;
     private Map _props = null;
-    private boolean _defaults = false;
+    private boolean _globals = false;
+    private String _auto = null;
     private final List _vals = new ArrayList();
     private List _prefixes = new ArrayList(2);
 
@@ -127,9 +128,9 @@
     /**
      * Constructor.
      *
-     * @param loadDefaults whether to attempt to load the default properties
+     * @param loadGlobals whether to attempt to load the global properties
      */
-    public ConfigurationImpl(boolean loadDefaults) {
+    public ConfigurationImpl(boolean loadGlobals) {
         setProductName("openjpa"); // also adds as prop prefix
 
         logFactoryPlugin = addPlugin("Log", true);
@@ -145,28 +146,28 @@
         logFactoryPlugin.setString(aliases[0]);
         logFactoryPlugin.setInstantiatingGetter("getLogFactory");
 
-        if (loadDefaults)
-            loadDefaults();
+        if (loadGlobals)
+            loadGlobals();
     }
 
     /**
-     * Automatically load default values from the system's
+     * Automatically load global values from the system's
      * {@link ConfigurationProvider}s, and from System properties.
      */
-    public boolean loadDefaults() {
-        ConfigurationProvider provider = Configurations.loadDefaults
+    public boolean loadGlobals() {
+        ConfigurationProvider provider = Configurations.loadGlobals
             (getClass().getClassLoader());
         if (provider != null)
             provider.setInto(this);
 
-        // let system properties override other defaults
+        // let system properties override other globals
         try {
             fromProperties(new HashMap(System.getProperties()));
         } catch (SecurityException se) {
             // security manager might disallow
         }
 
-        _defaults = true;
+        _globals = true;
         if (provider == null) {
             Log log = getConfigurationLog();
             if (log.isTraceEnabled())
@@ -575,9 +576,9 @@
         // this way we preserve the original formatting of the user's props
         // instead of the defaults.  this is important for caching on
         // configuration objects
-        if (_defaults) {
+        if (_globals) {
             _props = null;
-            _defaults = false;
+            _globals = false;
         }
 
         Map remaining = new HashMap(map);
@@ -732,6 +733,10 @@
         return false;
     }
 
+    //////////////////////
+    // Auto-configuration
+    //////////////////////
+
     /**
      * This method loads the named resource as a properties file. It is
      * useful for auto-configuration tools so users can specify a
@@ -740,6 +745,7 @@
     public void setProperties(String resourceName) throws IOException {
         Configurations.load(resourceName, getClass().getClassLoader()).
             setInto(this);
+        _auto = resourceName;
     }
 
     /**
@@ -749,6 +755,15 @@
      */
     public void setPropertiesFile(File file) throws IOException {
         Configurations.load(file, getClass().getClassLoader()).setInto(this);
+        _auto = file.toString();
+    }
+
+    /**
+     * Return the resource that was set via auto-configuration methods
+     * {@link #setProperties} or {@link #setPropertiesFile}, or null if none.
+     */
+    public String getPropertiesResource() {
+        return _auto;
     }
 
     /////////////
@@ -839,7 +854,7 @@
         throws IOException, ClassNotFoundException {
         fromProperties((Map) in.readObject());
         _prefixes = (List) in.readObject();
-        _defaults = in.readBoolean();
+        _globals = in.readBoolean();
     }
 
     /**
@@ -852,7 +867,7 @@
         else
             out.writeObject(toProperties(false));
         out.writeObject(_prefixes);
-        out.writeBoolean(_defaults);
+        out.writeBoolean(_globals);
     }
 
     /**
@@ -867,7 +882,7 @@
                 (new Object[]{ Boolean.FALSE });
             clone._prefixes.clear();
             clone._prefixes.addAll(_prefixes);
-            clone._defaults = _defaults;
+            clone._globals = _globals;
             clone.fromProperties(toProperties(true));
             return clone;
         } catch (RuntimeException re) {

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationProvider.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationProvider.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationProvider.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationProvider.java Fri Aug 11 14:07:58 2006
@@ -30,6 +30,11 @@
 public interface ConfigurationProvider {
 
     /**
+     * Load globals, or return false if no globals for this provider found.
+     */
+    public boolean loadGlobals(ClassLoader loader) throws Exception;
+
+    /**
      * Load defaults, or return false if no defaults for this provider found.
      */
     public boolean loadDefaults(ClassLoader loader) throws Exception;
@@ -37,14 +42,20 @@
     /**
      * Load the given given resource, or return false if it is not a resource
      * this provider understands. The given class loader may be null.
+     *
+     * @param anchor optional named anchor within a multiple-configuration
+     * resource
      */
-    public boolean load(String resource, ClassLoader loader) throws Exception;
+    public boolean load(String resource, String anchor, ClassLoader loader) 
+        throws Exception;
 
     /**
      * Load given file, or return false if it is not a file this provider
      * understands.
+     *
+     * @param anchor optional named anchor within a multiple-configuration file
      */
-    public boolean load(File file) throws Exception;
+    public boolean load(File file, String anchor) throws Exception;
 
     /**
      * Return properties loaded thus far, or empty map if none.

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java Fri Aug 11 14:07:58 2006
@@ -16,6 +16,7 @@
 package org.apache.openjpa.lib.conf;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
@@ -386,10 +387,8 @@
                         } else
                             buf.append(props[i]);
                     }
-
                     val = buf.toString();
                 }
-
                 opts.put(prop, val);
             }
             return opts;
@@ -409,18 +408,35 @@
     public static void populateConfiguration(Configuration conf, Options opts) {
         String props = opts.removeProperty("properties", "p", null);
         if (props != null && props.length() > 0) {
-            File file = new File(props);
+            String path = props;
+            String anchor = null;
+            int idx = path.lastIndexOf('#');
+            if (idx != -1) {
+                if (idx < path.length() - 1)
+                    anchor = path.substring(idx + 1);
+                path = path.substring(0, idx);
+                if (path.length() == 0)
+                    throw new MissingResourceException(_loc.get("anchor-only",
+                        props).getMessage(), Configurations.class.getName(), 
+                        props);
+            }
+
+            File file = new File(path);
             ConfigurationProvider provider;
             if (file.isFile())
-                provider = load(file, null);
+                provider = load(file, anchor, null);
             else {
-                file = new File("META-INF" + File.separatorChar + props);
+                file = new File("META-INF" + File.separatorChar + path);
                 if (file.isFile())
-                    provider = load(file, null);
+                    provider = load(file, anchor, null);
                 else
-                    provider = load(props, null);
+                    provider = load(path, anchor, null);
             }
             provider.setInto(conf);
+        } else {
+            ConfigurationProvider provider = loadDefaults(null);
+            if (provider != null)
+                provider.setInto(conf);
         }
         opts.setInto(conf);
     }
@@ -429,6 +445,21 @@
      * Return a {@link ConfigurationProvider} that has parsed system defaults.
      */
     public static ConfigurationProvider loadDefaults(ClassLoader loader) {
+        return load(loader, false);
+    }
+
+    /**
+     * Return a {@link ConfigurationProvider} that has parsed system globals.
+     */
+    static ConfigurationProvider loadGlobals(ClassLoader loader) {
+        return load(loader, true);
+    }
+
+    /**
+     * Load globals or defaults.
+     */
+    private static ConfigurationProvider load(ClassLoader loader, 
+        boolean globals) {
         if (loader == null)
             loader = Thread.currentThread().getContextClassLoader();
         Class[] impls = Services.getImplementorClasses
@@ -443,7 +474,8 @@
 
             providerCount++;
             try {
-                if (provider.loadDefaults(loader))
+                if ((globals && provider.loadGlobals(loader))
+                    || (!globals && provider.loadDefaults(loader)))
                     return provider;
             } catch (MissingResourceException mre) {
                 throw mre;
@@ -455,13 +487,15 @@
                 errs.append(e.toString());
             }
         }
+
+        String type = (globals) ? "globals" : "defaults";
         if (errs != null)
             throw new MissingResourceException(errs.toString(),
-                Configurations.class.getName(), "defaults");
+                Configurations.class.getName(), type);
         if (providerCount == 0)
             throw new MissingResourceException(_loc.get ("no-providers", 
                 ConfigurationProvider.class.getName()).getMessage(),
-                Configurations.class.getName(), "defaults"); 
+                Configurations.class.getName(), type);
         return null;
     }
 
@@ -482,7 +516,32 @@
      * resource. Throws {@link MissingResourceException} if resource does
      * not exist.
      */
-    public static ConfigurationProvider load(String resource,
+    public static ConfigurationProvider load(String resource, 
+        ClassLoader loader) {
+        if (resource == null || resource.length() == 0)
+            return null;
+
+        String path = resource;
+        String anchor = null;
+        int idx = path.indexOf('.');
+        if (idx != -1) {
+            if (idx < path.length() - 1)
+                anchor = path.substring(idx + 1);
+            path = path.substring(0, idx);
+            if (path.length() == 0)
+                throw new MissingResourceException(_loc.get("anchor-only", 
+                    resource).getMessage(), Configurations.class.getName(), 
+                    resource);
+        }
+        return load(path, anchor, loader);
+    }
+
+    /**
+     * Return a {@link ConfigurationProvider} that has parsed the given
+     * resource. Throws {@link MissingResourceException} if resource does
+     * not exist.
+     */
+    public static ConfigurationProvider load(String resource, String anchor, 
         ClassLoader loader) {
         if (resource == null || resource.length() == 0)
             return null;
@@ -501,7 +560,7 @@
 
             providerCount++;
             try {
-                if (provider.load(resource, loader))
+                if (provider.load(resource, anchor, loader))
                     return provider;
             } catch (MissingResourceException mre) {
                 throw mre;
@@ -534,6 +593,35 @@
         if (file == null)
             return null;
 
+        String anchor = null;
+        try {
+            String path = file.getCanonicalPath();
+            int idx = path.indexOf('.');
+            if (idx != -1) {
+                if (idx < path.length() - 1)
+                    anchor = path.substring(idx + 1);
+                path = path.substring(0, idx);
+                if (path.length() == 0)
+                    throw new MissingResourceException(_loc.get("anchor-only",
+                        file).getMessage(), Configurations.class.getName(), 
+                        file.toString());
+                file = new File(path);
+            }
+        } catch (IOException ioe) {
+            // ignore
+        }
+        return load(file, anchor, loader);
+    }
+
+    /**
+     * Return a {@link ConfigurationProvider} that has parsed the given
+     * file. Throws {@link MissingResourceException} if file does not exist.
+     */
+    public static ConfigurationProvider load(File file, String anchor, 
+        ClassLoader loader) {
+        if (file == null)
+            return null;
+
         if (loader == null)
             loader = Thread.currentThread().getContextClassLoader();
         Class[] impls = Services.getImplementorClasses
@@ -543,7 +631,7 @@
         for (int i = 0; i < impls.length; i++) {
             provider = newProvider(impls[i]);
             try {
-                if (provider != null && provider.load(file))
+                if (provider != null && provider.load(file, anchor))
                     return provider;
             } catch (MissingResourceException mre) {
                 throw mre;
@@ -576,10 +664,7 @@
                 _loc.get("naming-err", name).getMessage(), ne);
         } finally {
             if (ctx != null)
-                try {
-                    ctx.close();
-                } catch (Exception e) {
-                }
+                try { ctx.close(); } catch (Exception e) {}
         }
     }
 }

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/MapConfigurationProvider.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/MapConfigurationProvider.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/MapConfigurationProvider.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/MapConfigurationProvider.java Fri Aug 11 14:07:58 2006
@@ -51,15 +51,20 @@
         addProperties(props);
     }
 
+    public boolean loadGlobals(ClassLoader loader) throws Exception {
+        return false;
+    }
+
     public boolean loadDefaults(ClassLoader loader) throws Exception {
         return false;
     }
 
-    public boolean load(String resource, ClassLoader loader) throws Exception {
+    public boolean load(String resource, String anchor, ClassLoader loader) 
+        throws Exception {
         return false;
     }
 
-    public boolean load(File file) throws Exception {
+    public boolean load(File file, String anchor) throws Exception {
         return false;
     }
 

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties Fri Aug 11 14:07:58 2006
@@ -62,6 +62,8 @@
 	prefixes. Properties: {0}, {1}.
 plugin-creation-exception: An exception occurred while creating a plugin for \
     value {0}. This exception will be consumed.
+anchor-only: You cannot supply a configuration unit name only.  You must also \
+    supply the name of the resource in which the unit appears.
 
 Log-name: Log factory
 Log-desc: LogFactory and configuration

Modified: incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/ConfigurationTestConfigurationProvider.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/ConfigurationTestConfigurationProvider.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/ConfigurationTestConfigurationProvider.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/ConfigurationTestConfigurationProvider.java Fri Aug 11 14:07:58 2006
@@ -21,9 +21,14 @@
         super(null);
     }
 
-    public boolean loadDefaults(ClassLoader loader)
+    public boolean loadGlobals(ClassLoader loader)
         throws IOException {
         return load(null, loader);
+    }
+
+    public boolean loadDefaults(ClassLoader loader)
+        throws IOException {
+        return false;
     }
 
     public boolean load(String rsrc, ClassLoader loader)

Modified: incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java Fri Aug 11 14:07:58 2006
@@ -51,15 +51,15 @@
     }
 
     /**
-     * Test that default properties are found and loaded.
+     * Test that global properties are found and loaded.
      */
-    public void testDefaults() {
+    public void testGlobals() {
         System.setProperty("openjpa.sysKey", "sysvalue");
         assertNull(_conf.getTestKey());
         assertNull(_conf.getSysKey());
         assertNull(_conf.getPluginKey());
         assertNull(_conf.getObjectKey());
-        assertTrue(_conf.loadDefaults());
+        assertTrue(_conf.loadGlobals());
         assertEquals("testvalue", _conf.getTestKey());
         assertEquals("sysvalue", _conf.getSysKey());
         assertNull(_conf.getPluginKey());
@@ -70,7 +70,7 @@
         _conf.setSysKey(null);
         System.setProperty("openjpatest.properties", "foo.properties");
         try {
-            assertTrue(!_conf.loadDefaults());
+            assertTrue(!_conf.loadGlobals());
             fail("Should have thrown exception for missing resource.");
         } catch (MissingResourceException mre) {
         }
@@ -78,7 +78,7 @@
         // set back for remainder of tests
         System.setProperty("openjpatest.properties", "test.properties");
         System.setProperty("openjpa.pluginKey", "java.lang.Object");
-        assertTrue(_conf.loadDefaults());
+        assertTrue(_conf.loadGlobals());
         assertEquals("testvalue", _conf.getTestKey());
         assertEquals("sysvalue", _conf.getSysKey());
         assertEquals("java.lang.Object", _conf.getPluginKey());
@@ -90,7 +90,7 @@
      * Test that the configuration is serialized to properties correctly.
      */
     public void testToProperties() {
-        assertTrue(_conf.loadDefaults());
+        assertTrue(_conf.loadGlobals());
         assertEquals("testvalue", _conf.getTestKey());
         Map props = _conf.toProperties(false);
         assertEquals("testvalue", props.get("openjpa.testKey"));
@@ -209,7 +209,7 @@
      * Test serialization.
      */
     public void testSerialization() throws Exception {
-        assertTrue(_conf.loadDefaults());
+        assertTrue(_conf.loadGlobals());
         _conf.setTestKey("testvalue");
         _conf.setSysKey("sysvalue");
         _conf.setObjectKey(new Object());

Modified: incubator/openjpa/trunk/openjpa-persistence-jdbc/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/pom.xml?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/pom.xml (original)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/pom.xml Fri Aug 11 14:07:58 2006
@@ -71,7 +71,6 @@
                                              refid="enhance.path.ref"
                                              pathsep=" "/>
                                 <java classname="org.apache.openjpa.enhance.PCEnhancer">
-                                    <arg line="-p persistence.xml"/>
                                     <arg line="${enhance.files}"/>
                                     <classpath>
                                         <path refid="maven.dependency.classpath"/>

Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ConfigurationProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ConfigurationProviderImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ConfigurationProviderImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ConfigurationProviderImpl.java Fri Aug 11 14:07:58 2006
@@ -18,6 +18,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
@@ -26,8 +27,7 @@
 import javax.persistence.spi.PersistenceUnitInfo;
 import javax.persistence.spi.PersistenceUnitTransactionType;
 
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
+import org.apache.commons.lang.StringUtils;
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.lib.conf.Configuration;
 import org.apache.openjpa.lib.conf.MapConfigurationProvider;
@@ -35,15 +35,21 @@
 import org.apache.openjpa.lib.meta.XMLMetaDataParser;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.util.GeneralException;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
 
 /**
  * Configuration provider capable of loading a {@link Configuration} from
  * the current environment's JPA-style XML configuration data.
  * 
- * For defaults, looks in <code>openjpa.properties</code> system property for
+ * For globals, looks in <code>openjpa.properties</code> system property for
  * the location of a file to parse. If no system property is defined, the
- * default resource location of <code>openjpa.xml</code> is used.
- * If it exists, the resource is parsed as an XML file.
+ * default resource location of <code>META-INF/openjpa.xml</code> is used.
+ *
+ * For defaults, looks for <code>META-INF/persistence.xml</code>.
+ * Within <code>persistence.xml</code>, look for the named persistence unit, or
+ * if no name given, an OpenJPA unit (preferring an unnamed OpenJPA unit to 
+ * a named one).
  *
  * @nojavadoc
  * @since 4.0.0
@@ -51,8 +57,8 @@
 public class ConfigurationProviderImpl
     extends MapConfigurationProvider {
 
-    private static final String RSRC_DEFAULT = "openjpa.xml";
-    private static final String RSRC_SPEC = "META-INF/persistence.xml";
+    private static final String RSRC_GLOBAL = "META-INF/openjpa.xml";
+    private static final String RSRC_DEFAULT = "META-INF/persistence.xml";
 
     private static final Localizer _loc = Localizer.forPackage
         (ConfigurationProviderImpl.class);
@@ -86,7 +92,7 @@
         if (pinfo == null)
             return false;
         String providerName = pinfo.getPersistenceProviderClassName();
-        if (providerName != null && providerName.length() != 0
+        if (!StringUtils.isEmpty(providerName)
             && !PersistenceProviderImpl.class.getName().equals(providerName))
             return false;
 
@@ -100,7 +106,6 @@
             if (impl.getPersistenceXmlFileUrl() != null)
                 _source = impl.getPersistenceXmlFileUrl().toString();
         }
-
         return true;
     }
 
@@ -109,12 +114,12 @@
      * overrides. If the resource is null, tries to load from persistence.xml,
      * but still returns true if persistence.xml does not exist.
      */
-    public boolean load(String name, String rsrc, Map m)
+    public boolean load(String rsrc, String name, Map m)
         throws IOException {
-        boolean explicit = rsrc != null && rsrc.length() > 0;
+        boolean explicit = !StringUtils.isEmpty(rsrc);
         if (!explicit)
-            rsrc = RSRC_SPEC;
-        Boolean ret = load(name, rsrc, m, null, explicit);
+            rsrc = RSRC_DEFAULT;
+        Boolean ret = load(rsrc, name, m, null, explicit);
         if (ret != null)
             return ret.booleanValue();
         if (explicit)
@@ -127,30 +132,35 @@
     }
 
     @Override
-    public boolean loadDefaults(ClassLoader loader)
+    public boolean loadGlobals(ClassLoader loader)
         throws IOException {
         String rsrc = System.getProperty("openjpa.properties");
-        String name = null;
-        boolean explicit = false;
-        if (rsrc == null)
-            rsrc = RSRC_DEFAULT;
-        else {
-            // separate name from <resrouce>:<name> string
-            explicit = true;
-            int idx = rsrc.lastIndexOf(':');
-            if (idx != -1) {
-                name = rsrc.substring(idx + 1);
-                rsrc = rsrc.substring(0, idx);
-            }
-            if (!rsrc.endsWith(".xml"))
-                return false;
+        boolean explicit = !StringUtils.isEmpty(rsrc);
+        String anchor = null;
+        int idx = (!explicit) ? -1 : rsrc.lastIndexOf('#');
+        if (idx != -1) {
+            // separate name from <resrouce>#<name> string
+            if (idx < rsrc.length() - 1)
+                anchor = rsrc.substring(idx + 1);
+            rsrc = rsrc.substring(0, idx);
         }
-        return load(name, rsrc, null, loader, explicit) == Boolean.TRUE;
+        if (StringUtils.isEmpty(rsrc))
+            rsrc = RSRC_GLOBAL;
+        else if (!rsrc.endsWith(".xml"))
+            return false;
+        return load(rsrc, anchor, null, loader, explicit) == Boolean.TRUE;
+
+    }
+
+    @Override
+    public boolean loadDefaults(ClassLoader loader)
+        throws IOException {
+        return load(RSRC_DEFAULT, null, null, loader, false) == Boolean.TRUE;
     }
 
     /**
      * Looks through the resources at <code>rsrc</code> for a configuration
-     * file that matches <code>name</code> (or the first one if
+     * file that matches <code>name</code> (or an unnamed one if
      * <code>name</code> is <code>null</code>), and loads the XML in the
      * resource into a new {@link PersistenceUnitInfo}. Then, applies the
      * overrides in <code>m</code>.
@@ -158,7 +168,7 @@
      * @return {@link Boolean#TRUE} if the resource was loaded, null if it
      * does not exist, or {@link Boolean#FALSE} if it is not for OpenJPA
      */
-    private Boolean load(String name, String rsrc, Map m, ClassLoader loader,
+    private Boolean load(String rsrc, String name, Map m, ClassLoader loader,
         boolean explicit)
         throws IOException {
         if (loader == null)
@@ -187,52 +197,68 @@
 
     /**
      * Parse resources at the given location. Searches for a
-     * PersistenceUnitInfo with the requested name, or the first
-     * one if no name is passed in.
+     * PersistenceUnitInfo with the requested name, or an OpenJPA unit if
+     * no name given (preferring an unnamed OpenJPA unit to a named one).
      */
     private PersistenceUnitInfo parseResources(ConfigurationParser parser,
         Enumeration<URL> urls, String name, ClassLoader loader)
         throws IOException {
+        List<PersistenceUnitInfo> pinfos = new ArrayList<PersistenceUnitInfo>();
         for (URL url : Collections.list(urls)) {
             parser.parse(url);
-            List pinfos = parser.getResults();
-            for (PersistenceUnitInfo pinfo : (List<PersistenceUnitInfo>) pinfos)
-            {
-                if (name == null
-                    || name.equals(pinfo.getPersistenceUnitName()))
+            pinfos.addAll((List<PersistenceUnitInfo>) parser.getResults());
+        }
+        return findUnit(pinfos, name);
+    }
+
+    /**
+     * Find the unit with the given name, or an OpenJPA unit if no name is
+     * given (preferring an unnamed OpenJPA unit to a named one).
+     */
+    private PersistenceUnitInfo findUnit(List<PersistenceUnitInfo> pinfos,
+        String name) {
+        PersistenceUnitInfo ojpa = null;
+        for (PersistenceUnitInfo pinfo : pinfos) {
+            // found named unit?
+            if (name != null) {
+                if (name.equals(pinfo.getPersistenceUnitName()))
+                    return pinfo;
+                continue;
+            }
+
+            if (StringUtils.isEmpty(pinfo.getPersistenceProviderClassName())
+                || PersistenceProviderImpl.class.getName().equals(pinfo.
+                    getPersistenceProviderClassName())) {
+                // if no name given and found unnamed unit, return it.  
+                // otherwise record as default unit unless we find a 
+                // better match later
+                if (StringUtils.isEmpty(pinfo.getPersistenceUnitName()))
                     return pinfo;
+                if (ojpa == null)
+                    ojpa = pinfo;
             }
         }
-        return null;
+        return ojpa;
     }
 
     @Override
-    public boolean load(String rsrc, ClassLoader loader)
+    public boolean load(String rsrc, String anchor, ClassLoader loader)
         throws IOException {
-        String name = null;
-        int idx = rsrc.lastIndexOf(':');
-        if (idx != -1) {
-            name = rsrc.substring(idx + 1);
-            rsrc = rsrc.substring(0, idx);
-        }
         if (!rsrc.endsWith(".xml"))
             return false;
-        return load(name, rsrc, null, loader, true) == Boolean.TRUE;
+        return load(rsrc, anchor, null, loader, true) == Boolean.TRUE;
     }
 
     @Override
-    public boolean load(File file) {
+    public boolean load(File file, String anchor) {
         if (!file.getName().endsWith(".xml"))
             return false;
 
         try {
             ConfigurationParser parser = new ConfigurationParser(null);
             parser.parse(file);
-            List pinfos = parser.getResults();
-            for (PersistenceUnitInfo pinfo : (List<PersistenceUnitInfo>) pinfos)
-                if (load(pinfo))
-                    return true;
-            return false;
+            return load(findUnit((List<PersistenceUnitInfo>) 
+                parser.getResults(), anchor));
         } catch (IOException ioe) {
             throw new GeneralException(ioe);
         }

Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java Fri Aug 11 14:07:58 2006
@@ -62,7 +62,7 @@
         String resource, Map m) {
         ConfigurationProviderImpl cp = new ConfigurationProviderImpl();
         try {
-            if (cp.load(name, resource, m))
+            if (cp.load(resource, name, m))
                 return OpenJPAPersistence.toEntityManagerFactory(
                     Bootstrap.newBrokerFactory(cp, cp.getClassLoader()));
             else

Modified: incubator/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLConfiguration.java?rev=430897&r1=430896&r2=430897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLConfiguration.java (original)
+++ incubator/openjpa/trunk/openjpa-xmlstore/src/main/java/org/apache/openjpa/xmlstore/XMLConfiguration.java Fri Aug 11 14:07:58 2006
@@ -47,7 +47,7 @@
         lockManagerPlugin.setString("version");
 
         ProductDerivations.beforeConfigurationLoad(this);
-        loadDefaults();
+        loadGlobals();
     }
 
     /**