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", "");