You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2006/07/14 21:48:07 UTC
svn commit: r422003 - in /incubator/openjpa/trunk:
openjpa-kernel/src/main/java/org/apache/openjpa/event/
openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/
openjpa-lib/src/main/java/org/apache/openjpa/lib/log/
openjpa-lib/src/main/java/org/apache/...
Author: pcl
Date: Fri Jul 14 12:48:07 2006
New Revision: 422003
URL: http://svn.apache.org/viewvc?rev=422003&view=rev
Log:
updates to configuration. Committed on behalf of Abe
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/JMSRemoteCommitProvider.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/GenericConfigurable.java
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/LogFactoryImpl.java
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java
Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/JMSRemoteCommitProvider.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/JMSRemoteCommitProvider.java?rev=422003&r1=422002&r2=422003&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/JMSRemoteCommitProvider.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/JMSRemoteCommitProvider.java Fri Jul 14 12:48:07 2006
@@ -15,7 +15,6 @@
*/
package org.apache.openjpa.event;
-import java.util.Map;
import java.util.Properties;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
@@ -36,6 +35,7 @@
import org.apache.openjpa.lib.conf.Configurable;
import org.apache.openjpa.lib.conf.GenericConfigurable;
import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.Options;
import org.apache.openjpa.util.OpenJPAException;
import org.apache.openjpa.util.UserException;
@@ -92,11 +92,11 @@
* constructor for JNDI lookups. Implementation of
* {@link GenericConfigurable}.
*/
- public void setInto(Map m) {
- if (m != null && !m.isEmpty()) {
+ public void setInto(Options opts) {
+ if (opts != null && !opts.isEmpty()) {
_ctxProps = new Properties();
- _ctxProps.putAll(m);
- m.clear();
+ _ctxProps.putAll(opts);
+ opts.clear();
} else
_ctxProps = null;
}
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=422003&r1=422002&r2=422003&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 Jul 14 12:48:07 2006
@@ -274,7 +274,7 @@
configurable.startConfiguration();
}
if (opts != null) {
- Map invalidEntries = opts.setInto(obj);
+ Options invalidEntries = opts.setInto(obj);
if (obj instanceof GenericConfigurable)
((GenericConfigurable) obj).setInto(invalidEntries);
@@ -282,8 +282,8 @@
String msg = null;
String first = (String) invalidEntries.keySet().iterator()
.next();
- if (invalidEntries.keySet().size() == 1 &&
- first.indexOf('.') == -1) {
+ if (invalidEntries.keySet().size() == 1
+ && first.indexOf('.') == -1) {
// if there's just one misspelling and this is not a
// path traversal, check for near misses.
Collection options = Options.findOptionsFor(obj.getClass());
Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/GenericConfigurable.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/GenericConfigurable.java?rev=422003&r1=422002&r2=422003&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/GenericConfigurable.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/GenericConfigurable.java Fri Jul 14 12:48:07 2006
@@ -15,13 +15,13 @@
*/
package org.apache.openjpa.lib.conf;
-import java.util.Map;
+import org.apache.openjpa.lib.util.Options;
/**
* Implementations of this interface may perform additional
* generic configuration with any key-value pairs that cannot be set
- * into the object via the normal {@link org.apache.openjpa.lib.util.Options#setInto}
- * means.
+ * into the object via the normal
+ * {@link org.apache.openjpa.lib.util.Options#setInto} means.
*
* @author Patrick Linskey
*/
@@ -29,10 +29,10 @@
/**
* Perform any generic configuration based on the data in
- * <code>m</code>. This method should remove any values in
- * <code>m</code> that have been successfully processed; if any
- * values remain in <code>m</code> after this method is executed,
+ * <code>opts</code>. This method should remove any values in
+ * <code>opts</code> that have been successfully processed; if any
+ * values remain in <code>opts</code> after this method is executed,
* an exception will be thrown identifying those key-value pairs as invalid.
*/
- public void setInto(Map m);
+ public void setInto(Options opts);
}
Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/LogFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/LogFactoryImpl.java?rev=422003&r1=422002&r2=422003&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/LogFactoryImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/LogFactoryImpl.java Fri Jul 14 12:48:07 2006
@@ -28,6 +28,7 @@
import org.apache.openjpa.lib.conf.GenericConfigurable;
import org.apache.openjpa.lib.util.Files;
import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.Options;
import org.apache.openjpa.lib.util.concurrent.ConcurrentHashMap;
/**
@@ -222,15 +223,15 @@
// ---------- GenericConfigurable implementation ----------
- public void setInto(Map m) {
- if (!m.isEmpty()) {
+ public void setInto(Options opts) {
+ if (!opts.isEmpty()) {
Map.Entry e;
- for (Iterator iter = m.entrySet().iterator(); iter.hasNext();) {
+ for (Iterator iter = opts.entrySet().iterator(); iter.hasNext();) {
e = (Map.Entry) iter.next();
_configuredLevels.put(shorten((String) e.getKey()),
new Short(getLevel((String) e.getValue())));
}
- m.clear();
+ opts.clear();
}
}
Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java?rev=422003&r1=422002&r2=422003&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java Fri Jul 14 12:48:07 2006
@@ -49,6 +49,11 @@
*/
public class Options extends TypedProperties {
+ /**
+ * Immutable empty instance.
+ */
+ public static Options EMPTY = new EmptyOptions();
+
// maps primitive types to the appropriate wrapper class and default value
private static Object[][] _primWrappers = new Object[][]{
{ boolean.class, Boolean.class, Boolean.FALSE },
@@ -152,15 +157,16 @@
* <li>Map Entry: <code>"brother.name"->"Bob"</code><br />
* Resultant method call: <code>obj.getBrother().setName("Bob")
* <code></li>
- * </ul> Any keys present in the map for which there is no
+ * </ul>
+ * Any keys present in the map for which there is no
* corresponding property in the given object will be ignored,
* and will be returned in the {@link Map} returned by this method.
*
- * @return a {@link Map} of key-value pairs in this object
+ * @return an {@link Options} of key-value pairs in this object
* for which no setters could be found.
* @throws RuntimeException on parse error
*/
- public Map setInto(Object obj) {
+ public Options setInto(Object obj) {
// set all defaults that have no explicit value
Map.Entry entry = null;
if (defaults != null) {
@@ -173,19 +179,17 @@
}
// set from main map
- Map invalidEntries = null;
+ Options invalidEntries = null;
Map.Entry e;
for (Iterator itr = entrySet().iterator(); itr.hasNext();) {
e = (Map.Entry) itr.next();
if (!setInto(obj, e)) {
if (invalidEntries == null)
- invalidEntries = new HashMap();
+ invalidEntries = new Options();
invalidEntries.put(e.getKey(), e.getValue());
}
}
-
- return (invalidEntries == null) ? Collections.EMPTY_MAP :
- invalidEntries;
+ return (invalidEntries == null) ? EMPTY : invalidEntries;
}
/**
@@ -605,5 +609,19 @@
public String removeProperty(String key, String key2, String def) {
String val = removeProperty(key);
return (val == null) ? removeProperty(key2, def) : val;
+ }
+
+ /**
+ * Immutable empty options.
+ */
+ private static class EmptyOptions extends Options {
+
+ public Object setProperty(String key, String value) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object put(Object key, Object value) {
+ throw new UnsupportedOperationException();
+ }
}
}