Author: rmannibucau
Date: Thu Jan 17 12:44:12 2013
New Revision: 1434646
URL: http://svn.apache.org/viewvc?rev=1434646&view=rev
Log:
OPENEJB-1990 openejb.jul.forceReload property
Modified:
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java
Modified:
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
URL:
http://svn.apache.org/viewvc/tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=1434646&r1=1434645&r2=1434646&view=diff
==============================================================================
---
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
(original)
+++
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
Thu Jan 17 12:44:12 2013
@@ -74,17 +74,20 @@ public final class OpenEJB {
}
initialized = new InitializationException("Initialized at "+new
Date()).fillInStackTrace();
- Logger.configure();
- Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP,
"org.apache.openejb.util.resources");
-
try {
SystemInstance.init(initProps);
+
+ // do it after having gotten the properties
+ Logger.configure();
+
OptionsLog.install();
} catch (Exception e) {
throw new OpenEJBException(e);
}
SystemInstance system = SystemInstance.get();
+ final Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP,
"org.apache.openejb.util.resources");
+
system.setComponent(DeploymentExceptionManager.class, new
DeploymentExceptionManager());
system.setComponent(ApplicationServer.class, appServer);
@@ -270,7 +273,6 @@ public final class OpenEJB {
}
private static Messages messages = new
Messages("org.apache.openejb.util.resources");
- private static Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP,
"org.apache.openejb.util.resources");
/**
* 2 usages
@@ -279,11 +281,11 @@ public final class OpenEJB {
if (isInitialized()) {
if (instance != null){
String msg = messages.message("startup.alreadyInitialized");
- logger.error(msg, instance.initialized);
+ logger().error(msg, instance.initialized);
throw new OpenEJBException(msg, instance.initialized);
} else {
String msg = messages.message("startup.alreadyInitialized");
- logger.error(msg);
+ logger().error(msg);
throw new OpenEJBException(msg);
}
} else {
@@ -291,6 +293,10 @@ public final class OpenEJB {
}
}
+ private static Logger logger() { // do it lazily to avoid to trigger
logger creation before properties are read + generally useless
+ return Logger.getInstance(LogCategory.OPENEJB_STARTUP,
"org.apache.openejb.util.resources");
+ }
+
/**
* 1 usages
*/
Modified:
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java
URL:
http://svn.apache.org/viewvc/tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java?rev=1434646&r1=1434645&r2=1434646&view=diff
==============================================================================
---
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java
(original)
+++
tomee/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java
Thu Jan 17 12:44:12 2013
@@ -16,11 +16,12 @@
*/
package org.apache.openejb.util;
+import org.apache.openejb.loader.Options;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.log.ConsoleColorHandler;
import org.apache.openejb.log.SingleLineFormatter;
-import org.apache.webbeans.logger.JULLoggerFactory;
+import java.lang.reflect.Field;
import java.util.logging.ConsoleHandler;
import java.util.logging.LogManager;
@@ -42,9 +43,10 @@ public class JuliLogStreamFactory implem
final boolean embedded = is("org.apache.tomee.embedded.Container");
// if embedded case enhance a bit logging if not set
+ final Options options = SystemInstance.get().getOptions();
if ((!tomee || embedded) &&
System.getProperty("java.util.logging.manager") == null) {
System.setProperty("java.util.logging.manager",
OpenEJBLogManager.class.getName());
- if (SystemInstance.get().getOptions().get(OPENEJB_LOG_COLOR_PROP,
false) && isNotIDE()) {
+ if (options.get(OPENEJB_LOG_COLOR_PROP, false) && isNotIDE()) {
consoleHandlerClazz = ConsoleColorHandler.class.getName();
} else {
consoleHandlerClazz =
OpenEJBSimpleLayoutHandler.class.getName();
@@ -55,10 +57,27 @@ public class JuliLogStreamFactory implem
} catch (ClassNotFoundException e) {
consoleHandlerClazz = ConsoleHandler.class.getName();
}
+
+ if (options.get("openejb.jul.forceReload", false)) {
+ try {
+ final Field logManager =
LogManager.class.getDeclaredField("manager");
+ final boolean acc = logManager.isAccessible();
+ logManager.setAccessible(true);
+ OpenEJBLogManager value = new OpenEJBLogManager();
+ try {
+ logManager.set(null, value);
+ } finally {
+ logManager.setAccessible(acc);
+ }
+ value.forceReset();
+ } catch (Exception e) {
+ // no-op
+ }
+ }
}
try {
- if (SystemInstance.get().getOptions().get("openjpa.Log", (String)
null) == null) {
+ if (options.get("openjpa.Log", (String) null) == null) {
JuliLogStreamFactory.class.getClassLoader().loadClass("org.apache.openjpa.lib.log.LogFactoryAdapter");
System.setProperty("openjpa.Log",
"org.apache.openejb.openjpa.JULOpenJPALogFactory");
}