You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/10/16 02:20:49 UTC

svn commit: r1023151 - in /openejb/trunk/openejb3: ./ container/openejb-core/src/test/java/org/apache/openejb/config/ container/openejb-loader/src/main/java/org/apache/openejb/loader/ examples/alternate-descriptors/src/main/resources/META-INF/

Author: dblevins
Date: Sat Oct 16 00:20:48 2010
New Revision: 1023151

URL: http://svn.apache.org/viewvc?rev=1023151&view=rev
Log:
svn merge -r 1021902:1021903 https://svn.apache.org/repos/asf/openejb/branches/openejb-3.1.x

http://svn.apache.org/viewvc?view=revision&revision=1021903
------------------------------------------------------------------------
r1021903 | dblevins | 2010-10-12 13:00:51 -0700 (Tue, 12 Oct 2010) | 1 line

Can now use Options to get any object that has a constructor that takes a string
------------------------------------------------------------------------

Modified:
    openejb/trunk/openejb3/   (props changed)
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java   (props changed)
    openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
    openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml   (props changed)

Propchange: openejb/trunk/openejb3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:20:48 2010
@@ -1,3 +1,3 @@
 /openejb/branches/openejb-3.1.1:779593
-/openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880
+/openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880,1021903
 /openejb/branches/openejb-jcdi:984659-985270

Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:20:48 2010
@@ -1,3 +1,3 @@
 /openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
-/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880
+/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880,1021903
 /openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:984659-985270

Modified: openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java?rev=1023151&r1=1023150&r2=1023151&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java (original)
+++ openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java Sat Oct 16 00:20:48 2010
@@ -20,11 +20,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.EnumSet;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.Collections;
+import java.lang.reflect.Constructor;
 
 /**
  * The purpose of this class is to provide a more strongly typed version of a
@@ -65,7 +65,7 @@ import java.util.Collections;
  * Additionally TRUE is an alias for ALL and FALSE an alias for NONE.  This allows options
  * that used to support only true/false values to be further defined in the future without
  * breaking compatibility.
- * 
+ *
  * @version $Rev$ $Date$
  */
 public class Options {
@@ -82,6 +82,10 @@ public class Options {
         this.properties = properties;
     }
 
+    public Properties getProperties() {
+        return properties;
+    }
+
     public void setLogger(Log logger) {
         parent.setLogger(logger);
     }
@@ -100,10 +104,29 @@ public class Options {
         return value != null ? log(property, value) : parent.get(property, defaultValue);
     }
 
+    public <T> T get(String property, T defaultValue) {
+        if (defaultValue == null) throw new NullPointerException("defaultValue");
+
+        String value = properties.getProperty(property);
+
+        if (value == null || value.equals("")) return parent.get(property, defaultValue);
+
+        try {
+            Class<?> type = defaultValue.getClass();
+            Constructor<?> constructor = type.getConstructor(String.class);
+            T t = (T) constructor.newInstance(value);
+            return log(property, t);
+        } catch (Exception e) {
+            e.printStackTrace();
+            warn(property, value, e);
+            return parent.get(property, defaultValue);
+        }
+    }
+
     public int get(String property, int defaultValue) {
         String value = properties.getProperty(property);
 
-        if (value == null) return parent.get(property, defaultValue);
+        if (value == null || value.equals("")) return parent.get(property, defaultValue);
 
         try {
             return log(property, Integer.parseInt(value));
@@ -116,7 +139,7 @@ public class Options {
     public long get(String property, long defaultValue) {
         String value = properties.getProperty(property);
 
-        if (value == null) return parent.get(property, defaultValue);
+        if (value == null || value.equals("")) return parent.get(property, defaultValue);
 
         try {
             return log(property, Long.parseLong(value));
@@ -129,7 +152,7 @@ public class Options {
     public boolean get(String property, boolean defaultValue) {
         String value = properties.getProperty(property);
 
-        if (value == null) return parent.get(property, defaultValue);
+        if (value == null || value.equals("")) return parent.get(property, defaultValue);
 
         try {
             return log(property, Boolean.parseBoolean(value));
@@ -156,7 +179,7 @@ public class Options {
     public <T extends Enum<T>> T get(String property, T defaultValue) {
         String value = properties.getProperty(property);
 
-        if (value == null) return parent.get(property, defaultValue);
+        if (value == null || value.equals("")) return parent.get(property, defaultValue);
 
         if (defaultValue == null) throw new IllegalArgumentException("Must supply a default for property " + property);
 
@@ -194,7 +217,7 @@ public class Options {
     protected <T extends Enum<T>> Set<T> getAll(String property, Set<T> defaultValue, Class<T> enumType) {
         String value = properties.getProperty(property);
 
-        if (value == null) return parent.getAll(property, defaultValue, enumType);
+        if (value == null || value.equals("")) return parent.getAll(property, defaultValue, enumType);
 
         // Shorthand for specifying ALL or NONE for any option
         // that allows for multiple values of the enum
@@ -239,7 +262,7 @@ public class Options {
         T value = map.get(name.toUpperCase());
 
         // Call Enum.valueOf for the clean exception
-        if (value == null) Enum.valueOf(enumType, name);
+        if (value == null || value.equals("")) Enum.valueOf(enumType, name);
 
         return value;
     }
@@ -334,6 +357,11 @@ public class Options {
         }
 
         @Override
+        public <T> T get(String property, T defaultValue) {
+            return log(property, defaultValue);
+        }
+
+        @Override
         public int get(String property, int defaultValue) {
             return log(property, defaultValue);
         }

Propchange: openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:20:48 2010
@@ -1,3 +1,3 @@
 /openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
-/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880
+/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880,1021903
 /openejb/branches/openejb-jcdi/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:984659-985270