Author: rmannibucau
Date: Mon Oct  6 11:07:41 2014
New Revision: 1629617

URL: http://svn.apache.org/r1629617
Log:
we miss configure(Props) in LogStreamfactory so workaround for a known 
property, we can desire to do it for few more and maybe use a ThreadLocal but 
it would be a as poor solution as today

Modified:
    
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java

Modified: 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=1629617&r1=1629616&r2=1629617&view=diff
==============================================================================
--- 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 (original)
+++ 
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 Mon Oct  6 11:07:41 2014
@@ -85,21 +85,35 @@ public class Logger {
             factoryName = "org.apache.openejb.util.PaxLogStreamFactory";
         }
 
-        if (factoryName != null) {
+        // we can be called before having SystemInstance so we need this hack 
to set some specific environment
+        // without changing LogStreamFactory contract
+        final String specialKey = "openejb.jul.forceReload";
+        final String original = System.getProperty(specialKey);
+        System.setProperty(specialKey, config.getProperty(specialKey, 
SystemInstance.isInitialized() ?  
SystemInstance.get().getOptions().get(specialKey, (String) null) : null));
 
-            logStreamFactory = createFactory(factoryName);
-        }
+        try {
+            if (factoryName != null) {
 
-        if (isLog4jImplied()) {
-            logStreamFactory = 
createFactory("org.apache.openejb.util.Log4jLogStreamFactory");
-        }
+                logStreamFactory = createFactory(factoryName);
+            }
 
-        //Fall back -> JUL
-        if (logStreamFactory == null) {
-            logStreamFactory = new JuliLogStreamFactory();
-        }
+            if (isLog4jImplied()) {
+                logStreamFactory = 
createFactory("org.apache.openejb.util.Log4jLogStreamFactory");
+            }
 
-        checkForIgnoredLog4jConfig();
+            //Fall back -> JUL
+            if (logStreamFactory == null) {
+                logStreamFactory = new JuliLogStreamFactory();
+            }
+
+            checkForIgnoredLog4jConfig();
+        } finally {
+            if (original == null) {
+                System.clearProperty(specialKey);
+            } else {
+                System.setProperty(specialKey, original);
+            }
+        }
     }
 
     private static void checkForIgnoredLog4jConfig() {


Reply via email to