Author: rmannibucau Date: Mon Oct 6 11:01:01 2014 New Revision: 1629615 URL: http://svn.apache.org/r1629615 Log: don't init logger too early
Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java tomee/tomee/branches/tomee-1.7.x/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1629615&r1=1629614&r2=1629615&view=diff ============================================================================== --- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Oct 6 11:01:01 2014 @@ -217,7 +217,7 @@ public class Assembler extends Assembler } public static final String OPENEJB_URL_PKG_PREFIX = IvmContext.class.getPackage().getName(); - public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, Assembler.class); + public final Logger logger; public static final String OPENEJB_JPA_DEPLOY_TIME_ENHANCEMENT_PROP = "openejb.jpa.deploy-time-enhancement"; public static final String PROPAGATE_APPLICATION_EXCEPTIONS = "openejb.propagate.application-exceptions"; private static final String GLOBAL_UNIQUE_ID = "global"; @@ -289,6 +289,7 @@ public class Assembler extends Assembler } public Assembler(final JndiFactory jndiFactory) { + logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, Assembler.class); skipLoaderIfPossible = "true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.classloader.skip-app-loader-if-possible", "true")); persistenceClassLoaderHandler = new PersistenceClassLoaderHandlerImpl(); @@ -1147,7 +1148,7 @@ public class Assembler extends Assembler return ejbs; } - private static TimerStore newTimerStore(final BeanContext beanContext) { + private TimerStore newTimerStore(final BeanContext beanContext) { for (final DeploymentContext context : Arrays.asList(beanContext, beanContext.getModuleContext(), beanContext.getModuleContext().getAppContext())) { final String timerStoreClass = context.getProperties().getProperty(TIMER_STORE_CLASS); if (timerStoreClass != null) { @@ -1493,7 +1494,7 @@ public class Assembler extends Assembler return resources; } - private static void destroyResource(final String name, final String className, final Object object) { + private void destroyResource(final String name, final String className, final Object object) { if (object instanceof ResourceAdapter) { final ResourceAdapter resourceAdapter = (ResourceAdapter) object; try { @@ -2664,6 +2665,7 @@ public class Assembler extends Assembler } private static void logUnusedProperties(final Map<String, Object> unsetProperties, final ServiceInfo info) { + Logger logger = null; for (final String property : unsetProperties.keySet()) { //TODO: DMB: Make more robust later if (property.equalsIgnoreCase("Definition")) { @@ -2703,6 +2705,9 @@ public class Assembler extends Assembler continue; // inline service (no sp) } + if (logger == null) { + logger = SystemInstance.get().getComponent(Assembler.class).logger; + } logger.getChildLogger("service").warning("unusedProperty", property, info.id); } } @@ -2779,7 +2784,7 @@ public class Assembler extends Assembler transformers.add(classFileTransformer); } } else if (!logged.getAndSet(true)) { - logger.warning("assembler.noAgent"); + SystemInstance.get().getComponent(Assembler.class).logger.warning("assembler.noAgent"); } } @@ -2793,7 +2798,7 @@ public class Assembler extends Assembler instrumentation.removeTransformer(transformer); } } else { - logger.error("assembler.noAgent"); + SystemInstance.get().getComponent(Assembler.class).logger.error("assembler.noAgent"); } } } Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1629615&r1=1629614&r2=1629615&view=diff ============================================================================== --- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original) +++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Mon Oct 6 11:01:01 2014 @@ -22,6 +22,7 @@ import org.apache.openejb.BeanContext; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.assembler.classic.AppInfo; import org.apache.openejb.assembler.classic.Assembler; +import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.webbeans.config.BeansDeployer; @@ -193,7 +194,7 @@ public class OpenEJBLifecycle implements //Deploy bean from XML. Also configures deployments, interceptors, decorators. deployer.deploy(scannerService); } catch (final Exception e1) { - Assembler.logger.error("CDI Beans module deployment failed", e1); + SystemInstance.get().getComponent(Assembler.class).logger.error("CDI Beans module deployment failed", e1); throw new OpenEJBRuntimeException(e1); } finally { CURRENT_APP_INFO.remove(); 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=1629615&r1=1629614&r2=1629615&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:01:01 2014 @@ -33,12 +33,9 @@ import java.util.ResourceBundle; public class Logger { private static final String SUFFIX = ".Messages"; private static final String OPENEJB = "org.apache.openejb"; + private static final Properties EMPTY_PROPS = new Properties(); private static LogStreamFactory logStreamFactory; - static { - configure(); - } - // don't return the instance since it needs to stay private but export which one is used to allow integration with other libs (as tomcat ;)) @SuppressWarnings("UnusedDeclaration") public static String delegateClass() { @@ -49,16 +46,22 @@ public class Logger { } public static synchronized void configure() { + configure(EMPTY_PROPS); + } + + public static synchronized void configure(final Properties config) { if (logStreamFactory != null) { return; } //See if user factory has been specified - String factoryName = SystemInstance.get().getOptions().get("openejb.log.factory", JuliLogStreamFactory.class.getName()); + final String julFqn = JuliLogStreamFactory.class.getName(); + String factoryName = config.getProperty("openejb.log.factory", + SystemInstance.isInitialized() ? SystemInstance.get().getOptions().get("openejb.log.factory", julFqn) : julFqn); if ("jul".equalsIgnoreCase(factoryName) || "juli".equalsIgnoreCase(factoryName)) { - factoryName = JuliLogStreamFactory.class.getName(); + factoryName = julFqn; } else if ("slf4j".equalsIgnoreCase(factoryName)) { @@ -255,6 +258,8 @@ public class Logger { * @return Logger */ public static Logger getInstance(final LogCategory category, final String baseName) { + configure(); + try { return loggerCache.compute(new Object[]{category, baseName}); } catch (final InterruptedException e) { Modified: tomee/tomee/branches/tomee-1.7.x/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1629615&r1=1629614&r2=1629615&view=diff ============================================================================== --- tomee/tomee/branches/tomee-1.7.x/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java (original) +++ tomee/tomee/branches/tomee-1.7.x/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java Mon Oct 6 11:01:01 2014 @@ -150,7 +150,12 @@ public class Container implements Closea setup(configuration); } - Logger.configure(); + final Properties props = configuration.getProperties(); + if (props != null) { + Logger.configure(configuration.getProperties()); + } else { + Logger.configure(); + } final File conf = new File(base, "conf"); final File webapps = new File(base, "webapps"); @@ -171,7 +176,6 @@ public class Container implements Closea } else { copyFileTo(conf, "server.xml"); } - final Properties props = configuration.getProperties(); if (props != null && !props.isEmpty()) { final FileWriter systemProperties = new FileWriter(new File(conf, "system.properties")); try {