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;

Reply via email to