FELIX-5181: Only log info/debug if dm annotation log parameter is enabled.


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1729458 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Activator.java b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Activator.java
index 91d702a..f693808 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Activator.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Activator.java
@@ -64,6 +64,8 @@
     @Override
     public void init(BundleContext context, DependencyManager dm) throws Exception
     {
+        boolean logEnabled = "true".equalsIgnoreCase(context.getProperty(CONF_LOG));
+        Log.instance().enableLogs(logEnabled);
 		Component component = createComponent()
 				.setImplementation(DependencyManagerRuntime.class)
 				.setComposition("getComposition")
@@ -76,7 +78,7 @@
 						.setRequired(true)
 						.setService(PackageAdmin.class))
 				.add(createServiceDependency()
-						.setRequired("true".equalsIgnoreCase(context.getProperty(CONF_LOG)))
+						.setRequired(logEnabled)
 						.setService(LogService.class));
 				                
         dm.add(component);
diff --git a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyManagerRuntime.java b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyManagerRuntime.java
index b6994f8..f1bde97 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyManagerRuntime.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyManagerRuntime.java
@@ -88,7 +88,7 @@
      */
     protected void start()
     {
-        Log.instance().info("Starting Dependency Manager annotation runtime");
+        Log.instance().info("Starting Dependency Manager annotation runtime.");
     }
 
     /**
diff --git a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Log.java b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Log.java
index f23ba0e..c41b956 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Log.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/Log.java
@@ -29,6 +29,9 @@
 {
     /** The wrap log service which is actually used (Injected by Activator) */
     private volatile LogService m_logService;
+
+    /** Log INFO/DEBUG only if logs are enabled, else only log ERROR/WARN messages */
+    private volatile boolean m_logEnabled;
     
     /** Our sole instance */
     private static Log m_instance = new Log();
@@ -38,6 +41,11 @@
         return m_instance;
     }
     
+    public void enableLogs(boolean logEnabled) 
+    {
+        m_logEnabled = logEnabled;
+    }
+
     public void error(String format, Object ... args) 
     {
         m_logService.log(LogService.LOG_ERROR, String.format(format, args));
@@ -60,21 +68,25 @@
     
     public void info(String format, Object ... args) 
     {
-        m_logService.log(LogService.LOG_INFO, String.format(format, args));
+        if (m_logEnabled)
+            m_logService.log(LogService.LOG_INFO, String.format(format, args));
     }
     
     public void info(String format, Throwable t, Object ... args) 
     {
-        m_logService.log(LogService.LOG_INFO, String.format(format, args), t);
+        if (m_logEnabled)
+                    m_logService.log(LogService.LOG_INFO, String.format(format, args), t);
     }
     
     public void debug(String format, Object ... args) 
     {
-        m_logService.log(LogService.LOG_DEBUG, String.format(format, args));
+        if (m_logEnabled)
+                    m_logService.log(LogService.LOG_DEBUG, String.format(format, args));
     }
     
     public void debug(String format, Throwable t, Object ... args) 
     {
-        m_logService.log(LogService.LOG_DEBUG, String.format(format, args), t);
+        if (m_logEnabled)
+                    m_logService.log(LogService.LOG_DEBUG, String.format(format, args), t);
     }
 }