Author: rmannibucau
Date: Fri Oct 19 11:58:01 2012
New Revision: 1400056

URL: http://svn.apache.org/viewvc?rev=1400056&view=rev
Log:
TOMEE-486 overriding by profile of properties

Modified:
    
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
    
openejb/trunk/openejb/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java

Modified: 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java?rev=1400056&r1=1400055&r2=1400056&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
 Fri Oct 19 11:58:01 2012
@@ -236,6 +236,7 @@ public class SystemInstance {
         system = new SystemInstance(properties);
         readUserSystemProperties();
         readSystemProperties();
+        readSystemProperties(get().currentProfile());
         initialized = true;
         get().setProperty("openejb.profile.custom", 
Boolean.toString(!get().isDefaultProfile()));
     }
@@ -270,14 +271,25 @@ public class SystemInstance {
         return new File(conf, subPath);
     }
 
-    private static void readSystemProperties() {
+    private static void readSystemProperties(final String prefix) {
+        final String completePrefix;
+        if (prefix != null && !prefix.isEmpty()) {
+            completePrefix =  prefix + ".";
+        } else {
+            completePrefix = "";
+        }
+
         // Read in and apply the conf/system.properties
-        final File conf = system.getConf("system.properties");
+        final File conf = system.getConf(completePrefix + "system.properties");
         if (conf != null && conf.exists()) {
             addSystemProperties(conf);
         }
     }
 
+    private static void readSystemProperties() {
+        readSystemProperties(null);
+    }
+
     private static void addSystemProperties(final File file) {
         if (!file.exists()) {
             return;

Modified: 
openejb/trunk/openejb/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java?rev=1400056&r1=1400055&r2=1400056&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
 Fri Oct 19 11:58:01 2012
@@ -234,37 +234,8 @@ public abstract class ServiceManager {
                 }
             }
 
-            File serviceConfig = new File(conf, serviceName + ".properties");
-
-            if (!serviceConfig.exists()) {
-                serviceConfig = new File(conf, (legacySchema ? "" : "conf.d/") 
+ serviceConfig.getName());
-
-                if (legacySchema) {
-                    logger.info("Using legacy configuration path for new 
service: " + serviceConfig);
-                }
-            }
-
-            if (serviceConfig.exists()) {
-                IO.readProperties(serviceConfig, serviceProperties);
-            } else {
-
-                final File confD = serviceConfig.getParentFile();
-
-                if (!confD.exists() && !confD.mkdirs()) {
-                    logger.warning("Failed to create " + 
serviceConfig.getPath());
-                }
-
-                if (confD.exists()) {
-                    if (EnvProps.extractConfigurationFiles()) {
-
-                        final String rawPropsContent = (String) 
serviceProperties.get(Properties.class);
-                        IO.copy(IO.read(rawPropsContent), serviceConfig);
-
-                    } else {
-                        serviceProperties.put("disabled", "true");
-                    }
-                }
-            }
+            addProperties(conf, legacySchema, new File(conf, serviceName + 
".properties"), serviceProperties);
+            addProperties(conf, legacySchema, new File(conf, 
SystemInstance.get().currentProfile() + "." + serviceName + ".properties"), 
serviceProperties);
         }
 
         holdsWithUpdate(serviceProperties);
@@ -285,6 +256,43 @@ public abstract class ServiceManager {
 
     }
 
+    private void addProperties(final File conf, final boolean legacySchema, 
final File path, final Properties fullProps) throws IOException {
+        File serviceConfig = path;
+        if (!serviceConfig.exists()) {
+            serviceConfig = new File(conf, (legacySchema ? "" : "conf.d/") + 
serviceConfig.getName());
+
+            if (legacySchema) {
+                logger.info("Using legacy configuration path for new service: 
" + serviceConfig);
+            }
+        }
+
+        final Properties props = new Properties();
+
+        if (serviceConfig.exists()) {
+            IO.readProperties(serviceConfig, props);
+        } else {
+
+            final File confD = serviceConfig.getParentFile();
+
+            if (!confD.exists() && !confD.mkdirs()) {
+                logger.warning("Failed to create " + serviceConfig.getPath());
+            }
+
+            if (confD.exists()) {
+                if (EnvProps.extractConfigurationFiles()) {
+
+                    final String rawPropsContent = (String) 
props.get(Properties.class);
+                    IO.copy(IO.read(rawPropsContent), serviceConfig);
+
+                } else {
+                    props.put("disabled", "true");
+                }
+            }
+        }
+
+        fullProps.putAll(props);
+    }
+
     private boolean isEnabled(Properties props) {
         // if it should be started, continue
         String disabled = props.getProperty("disabled", "");


Reply via email to