Repository: karaf Updated Branches: refs/heads/master f59278183 -> 57f398276
[KARAF-4354] Provide a bin/run script Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/57f39827 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/57f39827 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/57f39827 Branch: refs/heads/master Commit: 57f398276bd3150525eb4cbf40ca17e556fd756c Parents: f592781 Author: Guillaume Nodet <[email protected]> Authored: Mon Feb 22 16:29:28 2016 +0100 Committer: Guillaume Nodet <[email protected]> Committed: Mon Feb 22 16:29:28 2016 +0100 ---------------------------------------------------------------------- .../base/src/main/resources/resources/bin/karaf | 4 +++ .../src/main/resources/resources/bin/karaf.bat | 6 ++++ .../resources/etc/org.ops4j.pax.logging.cfg | 5 ++-- .../karaf/main/KarafActivatorManager.java | 8 ++---- .../main/java/org/apache/karaf/main/Main.java | 3 +- .../apache/karaf/main/lock/DefaultJDBCLock.java | 6 +--- .../apache/karaf/main/lock/GenericJDBCLock.java | 7 +---- .../apache/karaf/main/lock/SimpleFileLock.java | 3 +- .../karaf/main/util/BootstrapLogManager.java | 30 ++++++++++++++++++++ 9 files changed, 50 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/assemblies/features/base/src/main/resources/resources/bin/karaf ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf b/assemblies/features/base/src/main/resources/resources/bin/karaf index 93236a5..9145431 100755 --- a/assemblies/features/base/src/main/resources/resources/bin/karaf +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf @@ -416,6 +416,10 @@ run() { OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true" shift ;; + 'run') + OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=true" + shift + ;; 'daemon') OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true" KARAF_DAEMON="true" http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/assemblies/features/base/src/main/resources/resources/bin/karaf.bat ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat index 8b36998..011d72c 100644 --- a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat @@ -301,6 +301,7 @@ if "%KARAF_PROFILER%" == "" goto :RUN if "%1" == "status" goto :EXECUTE_STATUS if "%1" == "console" goto :EXECUTE_CONSOLE if "%1" == "server" goto :EXECUTE_SERVER + if "%1" == "run" goto :EXECUTE_RUN if "%1" == "daemon" goto :EXECUTE_DAEMON if "%1" == "client" goto :EXECUTE_CLIENT if "%1" == "clean" goto :EXECUTE_CLEAN @@ -329,6 +330,11 @@ if "%KARAF_PROFILER%" == "" goto :RUN shift goto :RUN_LOOP +:EXECUTE_RUN + SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=true + shift + goto :RUN_LOOP + :EXECUTE_DAEMON SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true SET KARAF_DAEMON=true http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.logging.cfg ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.logging.cfg b/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.logging.cfg index f2d5ce0..48e1069 100644 --- a/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.logging.cfg +++ b/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.logging.cfg @@ -25,16 +25,17 @@ log4j2.rootLogger.level = INFO # uncomment to use asynchronous loggers, which require mvn:com.lmax/disruptor/3.3.2 library #log4j2.rootLogger.type = asyncRoot #log4j2.rootLogger.includeLocation = false -log4j2.rootLogger.appenderRefs = RollingFile, PaxOsgi +log4j2.rootLogger.appenderRefs = RollingFile, PaxOsgi${karaf.log.console:+, Console} log4j2.rootLogger.appenderRef.RollingFile.ref = RollingFile log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi +log4j2.rootLogger.appenderRef.Console.ref = Console # Appenders configuration log4j2.appenders = console, rolling, osgi # CONSOLE appender not used by default log4j2.appender.console.type = Console -log4j2.appender.console.name = STDOUT +log4j2.appender.console.name = Console log4j2.appender.console.layout.type = PatternLayout log4j2.appender.console.layout.pattern = ${log4j2.pattern} http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java b/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java index ad7de2b..48475d9 100644 --- a/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java +++ b/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.Manifest; +import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; @@ -45,12 +46,7 @@ public class KarafActivatorManager { public KarafActivatorManager(ClassLoader classLoader, Framework framework) { this.classLoader = classLoader; this.framework = framework; - try{ - LOG.addHandler(BootstrapLogManager.getDefaultHandler()); - }catch(Exception e){ - e.printStackTrace(); - } - + BootstrapLogManager.configureLogger(LOG); } void startKarafActivators() throws IOException { http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/Main.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/Main.java b/main/src/main/java/org/apache/karaf/main/Main.java index ea68aab..4b4179e 100644 --- a/main/src/main/java/org/apache/karaf/main/Main.java +++ b/main/src/main/java/org/apache/karaf/main/Main.java @@ -33,6 +33,7 @@ import java.util.List; import org.apache.felix.utils.properties.Properties; import java.util.StringTokenizer; +import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; @@ -235,7 +236,7 @@ public class Main { BootstrapLogManager.setProperties(config.props, log4jConfigPath); lockCallback = new KarafLockCallback(); InstanceHelper.updateInstancePid(config.karafHome, config.karafBase, true); - LOG.addHandler(BootstrapLogManager.getDefaultHandler()); + BootstrapLogManager.configureLogger(LOG); for (String provider : config.securityProviders) { addSecurityProvider(provider); http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java index 31bf499..a6d5a29 100644 --- a/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java +++ b/main/src/main/java/org/apache/karaf/main/lock/DefaultJDBCLock.java @@ -60,11 +60,7 @@ public class DefaultJDBCLock implements Lock { int timeout; public DefaultJDBCLock(Properties props) { - try{ - LOG.addHandler(BootstrapLogManager.getDefaultHandler()); - }catch (Exception e){ - e.printStackTrace(); - } + BootstrapLogManager.configureLogger(LOG); this.url = props.getProperty(PROPERTY_LOCK_URL); this.driver = props.getProperty(PROPERTY_LOCK_JDBC_DRIVER); this.user = props.getProperty(PROPERTY_LOCK_JDBC_USER, DEFAULT_USER); http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java b/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java index 286c0d4..195e914 100644 --- a/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java +++ b/main/src/main/java/org/apache/karaf/main/lock/GenericJDBCLock.java @@ -170,12 +170,7 @@ public class GenericJDBCLock implements Lock { private int currentLockDelay; public GenericJDBCLock(Properties props) { - try { - LOG.addHandler(BootstrapLogManager.getDefaultHandler()); - } catch (Exception e) { - e.printStackTrace(); - } - + BootstrapLogManager.configureLogger(LOG); this.url = props.getProperty(PROPERTY_LOCK_URL); this.driver = props.getProperty(PROPERTY_LOCK_JDBC_DRIVER); this.user = props.getProperty(PROPERTY_LOCK_JDBC_USER, DEFAULT_USER); http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java index 7004f7f..cc9cd3e 100644 --- a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java +++ b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java @@ -37,9 +37,8 @@ public class SimpleFileLock implements Lock { private FileLock lock; public SimpleFileLock(Properties props) { + BootstrapLogManager.configureLogger(LOG); try { - - LOG.addHandler( BootstrapLogManager.getDefaultHandler() ); String lock = props.getProperty(PROPERTY_LOCK_DIR); if (lock != null) { http://git-wip-us.apache.org/repos/asf/karaf/blob/57f39827/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java ---------------------------------------------------------------------- diff --git a/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java b/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java index 5e093d5..9117525 100644 --- a/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java +++ b/main/src/main/java/org/apache/karaf/main/util/BootstrapLogManager.java @@ -27,8 +27,13 @@ import java.io.IOException; import org.apache.felix.utils.properties.Properties; import org.apache.felix.utils.properties.InterpolationHelper; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.logging.ConsoleHandler; import java.util.logging.Handler; import java.util.logging.LogRecord; +import java.util.logging.Logger; import java.util.logging.StreamHandler; /** @@ -57,6 +62,23 @@ public class BootstrapLogManager { } return instance.getDefaultHandlerInternal(); } + + public static synchronized List<Handler> getDefaultHandlers() { + if (instance == null) { + throw new IllegalStateException("Properties must be set before calling getDefaultHandler"); + } + return instance.getDefaultHandlersInternal(); + } + + public static void configureLogger(Logger logger) { + try { + for (Handler handler : getDefaultHandlers()) { + logger.addHandler(handler); + } + } catch (Exception e){ + e.printStackTrace(); + } + } public static void setProperties(Properties configProps) { setProperties(configProps, null); @@ -81,6 +103,14 @@ public class BootstrapLogManager { } } + private List<Handler> getDefaultHandlersInternal() { + if (Boolean.getBoolean("karaf.log.console")) { + return Arrays.asList(new ConsoleHandler(), getDefaultHandlerInternal()); + } else { + return Collections.singletonList(getDefaultHandlerInternal()); + } + } + private Properties loadPaxLoggingConfig() { Properties props = new Properties(); FileInputStream fis = null;
