diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerFactoryValue.java b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerFactoryValue.java
index c4aef5b1c..dd084d1bc 100755
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerFactoryValue.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerFactoryValue.java
@@ -15,6 +15,8 @@
*/
package org.apache.openjpa.conf;
+import java.util.List;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
@@ -38,15 +40,13 @@ public class BrokerFactoryValue
private static final String KEY = "BrokerFactory";
- private static final String[] ALIASES = new String[]{
- "abstractstore",
- "org.apache.openjpa.abstractstore.AbstractStoreBrokerFactory",
- };
-
+ private static final List _aliases = new ArrayList();
private static final Collection _prefixes = new HashSet();
static {
_prefixes.add("openjpa");
+ addDefaultAlias("abstractstore",
+ "org.apache.openjpa.abstractstore.AbstractStoreBrokerFactory");
}
public BrokerFactoryValue() {
@@ -55,7 +55,7 @@ public class BrokerFactoryValue
public BrokerFactoryValue(String prop) {
super(prop, false);
- setAliases(ALIASES);
+ setAliases((String[]) _aliases.toArray(new String[_aliases.size()]));
}
/**
@@ -88,4 +88,14 @@ public class BrokerFactoryValue
public static void addPropertyPrefix(String prefix) {
_prefixes.add(prefix);
}
+
+
+ /**
+ * Add a mapping from alias
to cls
to the list
+ * of default aliases for new values created after this invocation.
+ */
+ public static void addDefaultAlias(String alias, String cls) {
+ _aliases.add(alias);
+ _aliases.add(cls);
+ }
}
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Bootstrap.java b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Bootstrap.java
index ce8161c36..dad88c5bf 100755
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Bootstrap.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Bootstrap.java
@@ -17,7 +17,6 @@ package org.apache.openjpa.kernel;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.Map;
import org.apache.openjpa.conf.BrokerFactoryValue;
import org.apache.openjpa.conf.ProductDerivations;
diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
index ae4a65989..454140951 100755
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
@@ -169,7 +169,7 @@ public class ConfigurationImpl
if (provider == null) {
Log log = getConfigurationLog();
if (log.isTraceEnabled())
- log.trace(_loc.get("no-providers"));
+ log.trace(_loc.get("no-default-providers"));
return false;
}
return true;
diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
index 1e95f8709..4d8cb8d4d 100755
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
@@ -500,7 +500,12 @@ public class Configurations {
errs.append(e.toString());
}
}
- String msg = (errs == null) ? resource : errs.toString();
+ String msg;
+ if (errs != null)
+ msg = errs.toString();
+ else
+ msg = _loc.get("no-provider", resource);
+
throw new MissingResourceException(msg,
Configurations.class.getName(), resource);
}
diff --git a/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties b/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties
index 0922711b2..6eacd172e 100755
--- a/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties
+++ b/openjpa-lib/src/main/resources/org/apache/openjpa/lib/conf/localizer.properties
@@ -43,8 +43,9 @@ not-singleton: You cannot set the value of property "{0}" as an object. The \
cant-set-string: Configuration property "{0}" cannot be set from a string. \
You must supply the object value.
loaded-via-provider: Configuration information loaded via "{0}".
-no-providers: Default configuration information couldn''t be loaded from any \
- provider.
+no-default-providers: Default configuration information couldn''t be loaded \
+ from any configuration provider.
+no-provider: No registered configuration provider could load "{0}".
hook-before: An exception occurred while invoking beforeConfigurationLoad() \
on "{0}". This exception will be consumed.
hook-after: An exception occurred while invoking afterConfigurationLoad() \