Author: jlmonteiro
Date: Wed Nov  7 16:14:42 2012
New Revision: 1406695

URL: http://svn.apache.org/viewvc?rev=1406695&view=rev
Log:
TOMEE-559 Supporting tomee. prefix for properties configuration

Modified:
    
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java

Modified: 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java?rev=1406695&r1=1406694&r2=1406695&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
 Wed Nov  7 16:14:42 2012
@@ -71,7 +71,7 @@ import java.lang.reflect.Constructor;
 public class Options {
 
     private final Options parent;
-    private final Properties properties;
+    private final TomEEPropertyAdapter properties;
 
     public Options(Properties properties) {
         this(properties, new NullOptions());
@@ -79,11 +79,11 @@ public class Options {
 
     public Options(Properties properties, Options parent) {
         this.parent = parent;
-        this.properties = properties;
+        this.properties = new TomEEPropertyAdapter(properties);
     }
 
     public Properties getProperties() {
-        return properties;
+        return properties.delegate;
     }
 
     public void setLogger(Log logger) {
@@ -435,6 +435,37 @@ public class Options {
         }
     }
 
+    /**
+     * This adapter aims at supporting all configuration properties with 
tomee. prefix instead of openejb. prefix
+     */
+    public static class TomEEPropertyAdapter {
+        public static final int OPENEJB_PREFIX_LENGHT = "openejb.".length();
+        private Properties delegate;
+
+        public TomEEPropertyAdapter(Properties properties) {
+            this.delegate = properties;
+        }
+
+        public String getProperty(String key) {
+            String value = delegate.getProperty(key);
+
+            if (value == null && key.startsWith("openejb.")) {
+                value = delegate.getProperty(getTomeeKey(key), value);
+            }
+
+            return value;
+        }
+
+        public boolean containsKey(String key) {
+            return delegate.containsKey(key)
+                    || delegate.containsKey(getTomeeKey(key));
+        }
+
+        private String getTomeeKey(String key) {
+            return "tomee." + key.substring(OPENEJB_PREFIX_LENGHT);
+        }
+    }
+
     public static interface Log {
         public boolean isDebugEnabled();
 


Reply via email to