You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2012/05/31 18:43:49 UTC

svn commit: r1344808 - in /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl: Activator.java config/ScrConfiguration.java

Author: fmeschbe
Date: Thu May 31 16:43:49 2012
New Revision: 1344808

URL: http://svn.apache.org/viewvc?rev=1344808&view=rev
Log:
FELIX-3016 Activator.log should also obey dynamically configured log level

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfiguration.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java?rev=1344808&r1=1344807&r2=1344808&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java Thu May 31 16:43:49 2012
@@ -49,10 +49,7 @@ public class Activator implements Bundle
     static final String PACKAGEADMIN_CLASS = "org.osgi.service.packageadmin.PackageAdmin";
 
     // Our configuration from bundle context properties and Config Admin
-    private ScrConfiguration m_configuration;
-
-    // Flag that sets error messages
-    private static int m_logLevel = LogService.LOG_DEBUG;
+    private static ScrConfiguration m_configuration = new ScrConfiguration();
 
     // this bundle's context
     private static BundleContext m_context;
@@ -96,10 +93,7 @@ public class Activator implements Bundle
         m_componentRegistry = new ComponentRegistry( context );
 
         // get the configuration
-        m_configuration = new ScrConfiguration( context );
-
-        // configure logging from context properties
-        m_logLevel = m_configuration.getLogLevel();
+        m_configuration.start( context );
 
         // log SCR startup
         log( LogService.LOG_INFO, context.getBundle(), " Version = "
@@ -386,7 +380,7 @@ public class Activator implements Bundle
      */
     public static void log( int level, Bundle bundle, String message, Throwable ex )
     {
-        if ( m_logLevel >= level )
+        if ( m_configuration.getLogLevel() >= level )
         {
             Object logger = ( m_logService != null ) ? m_logService.getService() : null;
             if ( logger == null )

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfiguration.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfiguration.java?rev=1344808&r1=1344807&r2=1344808&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfiguration.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfiguration.java Thu May 31 16:43:49 2012
@@ -25,6 +25,7 @@ import java.util.Hashtable;
 import org.apache.felix.scr.impl.Activator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.log.LogService;
 
 
@@ -78,19 +79,26 @@ public class ScrConfiguration
 
     private static final String PROP_SHOWERRORS = "ds.showerrors";
 
-    private final BundleContext bundleContext;
-
     private int logLevel;
 
     private boolean factoryEnabled;
 
     private boolean keepInstances;
 
-    public ScrConfiguration( BundleContext bundleContext )
+    private BundleContext bundleContext;
+
+    private ServiceRegistration managedService;
+
+    public ScrConfiguration( )
     {
+        // default configuration
+        configure( null );
+    }
+
+    public void start(final BundleContext bundleContext){
         this.bundleContext = bundleContext;
 
-        // default configuration
+        // reconfigure from bundle context properties
         configure( null );
 
         // listen for Configuration Admin configuration
@@ -102,14 +110,32 @@ public class ScrConfiguration
             props);
     }
 
+    public void stop() {
+        if (this.managedService != null) {
+            this.managedService.unregister();
+            this.managedService = null;
+        }
+
+        this.bundleContext = null;
+    }
+
     // Called from the ScrManagedService.updated method to reconfigure
     void configure( Dictionary config )
     {
         if ( config == null )
         {
-            logLevel = getDefaultLogLevel();
-            factoryEnabled = getDefaultFactoryEnabled();
-            keepInstances = getDefaultKeepInstances();
+            if ( this.bundleContext == null )
+            {
+                logLevel = LogService.LOG_ERROR;
+                factoryEnabled = false;
+                keepInstances = false;
+            }
+            else
+            {
+                logLevel = getDefaultLogLevel();
+                factoryEnabled = getDefaultFactoryEnabled();
+                keepInstances = getDefaultKeepInstances();
+            }
         }
         else
         {