You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by tj...@apache.org on 2020/08/12 14:57:18 UTC

[felix-dev] 03/03: Additional fixes for extended logging.

This is an automated email from the ASF dual-hosted git repository.

tjwatson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git

commit 3fcd7df2ef84941f5abdd51808c2bb5cddf4184c
Author: Thomas Watson <tj...@us.ibm.com>
AuthorDate: Tue Aug 11 13:55:11 2020 -0500

    Additional fixes for extended logging.
    
    - Allow enabling of the ExtLogManager from the context properties
    - Fix the bundle object for the ComponentLogger
    
    Signed-off-by: Thomas Watson <tj...@us.ibm.com>
---
 scr/src/main/java/org/apache/felix/scr/impl/Activator.java | 14 ++++++++++++--
 .../apache/felix/scr/impl/config/ScrConfigurationImpl.java |  2 ++
 .../org/apache/felix/scr/impl/logger/ExtLogManager.java    |  2 +-
 .../org/apache/felix/scr/impl/logger/ScrLogManager.java    |  2 +-
 .../java/org/apache/felix/scr/impl/logger/LoggerTest.java  |  2 +-
 5 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/scr/src/main/java/org/apache/felix/scr/impl/Activator.java b/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
index 491cdee..f3ab7cb 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
@@ -115,14 +115,13 @@ public class Activator extends AbstractExtender
     {
         m_context = context;
         m_bundle = context.getBundle();
-        // require the log service
-        logger = ScrLogManager.scr(context, m_configuration);
         // set bundle context for PackageAdmin tracker
         ClassUtils.setBundleContext( context );
         // get the configuration
         m_configuration.start( m_context ); //this will call restart, which calls super.start.
     }
 
+
     public void restart(boolean globalExtender)
     {
         m_componentMetadataStore = load(m_context, logger,
@@ -652,4 +651,15 @@ public class Activator extends AbstractExtender
             }
         }
     }
+
+    public void resetLogger()
+    {
+        // reset existing logger
+        ScrLogger existingLogger = logger;
+        if (existingLogger != null)
+        {
+            existingLogger.close();
+        }
+        logger = ScrLogManager.scr(m_context, m_configuration);
+    }
 }
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfigurationImpl.java b/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfigurationImpl.java
index bf2778b..064312e 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfigurationImpl.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/config/ScrConfigurationImpl.java
@@ -213,6 +213,7 @@ public class ScrConfigurationImpl implements ScrConfiguration
                 newGlobalExtender = VALUE_TRUE.equalsIgnoreCase( String.valueOf( config.get( PROP_GLOBAL_EXTENDER) ) );
                 cacheMetadata = VALUE_TRUE.equalsIgnoreCase(
                     String.valueOf(config.get(PROP_CACHE_METADATA)));
+                logExtension = VALUE_TRUE.equalsIgnoreCase(String.valueOf(config.get(PROP_LOG_EXTENSION)));
             }
             if ( scrCommand != null )
             {
@@ -221,6 +222,7 @@ public class ScrConfigurationImpl implements ScrConfiguration
             oldGlobalExtender = this.globalExtender;
             this.globalExtender = newGlobalExtender;
         }
+        activator.resetLogger();
         if ( newGlobalExtender != oldGlobalExtender )
         {
             activator.restart( newGlobalExtender );
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/logger/ExtLogManager.java b/scr/src/main/java/org/apache/felix/scr/impl/logger/ExtLogManager.java
index 3c99e5f..9c26355 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/logger/ExtLogManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/logger/ExtLogManager.java
@@ -64,7 +64,7 @@ class ExtLogManager extends ScrLogManager {
 		assert componentName != null;
 
 		String loggerName = SCR_LOGGER_PREFIX.concat(bundle.getSymbolicName()).concat(".").concat(componentName);
-		ScrLoggerFacade logger = getLogger(this.bundle, loggerName, ScrLoggerFacade.class);
+		ScrLoggerFacade logger = getLogger(bundle, loggerName, ScrLoggerFacade.class);
 		logger.setPrefix("["+componentName+"]");
 		return logger;
 	}
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/logger/ScrLogManager.java b/scr/src/main/java/org/apache/felix/scr/impl/logger/ScrLogManager.java
index c97548a..6a1c18d 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/logger/ScrLogManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/logger/ScrLogManager.java
@@ -230,7 +230,7 @@ public class ScrLogManager extends LogManager {
 		}
 
 		@Override
-		public ComponentLogger component(Bundle m_bundle, String implementationClassName, String name) {
+		public ComponentLogger component(Bundle bundle, String implementationClassName, String name) {
 			// assert !closed.get();
 			return ScrLogManager.this.component(bundle, implementationClassName, name);
 		}
diff --git a/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java b/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
index fa4e898..527b812 100644
--- a/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
+++ b/scr/src/test/java/org/apache/felix/scr/impl/logger/LoggerTest.java
@@ -293,7 +293,7 @@ public class LoggerTest {
 			assertThat(l.entries).hasSize(1);
 			LogEntry le = l.entries.get(0);
 			assertThat(le.format).isEqualTo("[name] Component");
-			assertThat(le.bundle).isEqualTo(scr);
+			assertThat(le.bundle).isEqualTo(component);
 			assertThat(le.loggername).isEqualTo(ExtLogManager.SCR_LOGGER_PREFIX + "component.name");
 
 			l.entries.clear();