You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2018/12/18 12:57:30 UTC

[5/7] james-project git commit: JAMES-2611 Add Logging level parameterization for ConfigurationProvider

JAMES-2611 Add Logging level parameterization for ConfigurationProvider


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e57655f9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e57655f9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e57655f9

Branch: refs/heads/master
Commit: e57655f961e6b58e49835f289ca09e2dea5a58d2
Parents: 18666e3
Author: Gautier DI FOLCO <gd...@linagora.com>
Authored: Wed Nov 28 11:37:00 2018 +0100
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Tue Dec 18 13:56:45 2018 +0100

----------------------------------------------------------------------
 .../server/core/configuration/ConfigurationProvider.java    | 8 +++++++-
 .../core/configuration/FileConfigurationProvider.java       | 9 +++++----
 .../org/apache/james/DefaultCassandraJamesServerTest.java   | 2 +-
 .../java/org/apache/james/DefaultMemoryJamesServerTest.java | 2 +-
 4 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e57655f9/server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java b/server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java
index c1f5539..1e23289 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java
@@ -21,10 +21,16 @@ package org.apache.james.server.core.configuration;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.james.util.LoggingLevel;
 
 public interface ConfigurationProvider {
 
-    HierarchicalConfiguration getConfiguration(String component)
+    default HierarchicalConfiguration getConfiguration(String component)
+            throws ConfigurationException {
+        return getConfiguration(component, LoggingLevel.WARNING);
+    }
+
+    HierarchicalConfiguration getConfiguration(String component, LoggingLevel loggingLevelOnError)
             throws ConfigurationException;
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/e57655f9/server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java b/server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java
index 911907e..1fcfe6b 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java
@@ -29,6 +29,7 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.util.LoggingLevel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,12 +64,12 @@ public class FileConfigurationProvider implements ConfigurationProvider {
     }
     
     @Override
-    public HierarchicalConfiguration getConfiguration(String component) throws ConfigurationException {
+    public HierarchicalConfiguration getConfiguration(String component, LoggingLevel loggingLevelOnError) throws ConfigurationException {
         Preconditions.checkNotNull(component);
         List<String> configPathParts = Splitter.on(".").splitToList(component);
         Preconditions.checkArgument(!configPathParts.isEmpty());
 
-        Optional<InputStream> inputStream = retrieveConfigInputStream(configPathParts.get(0));
+        Optional<InputStream> inputStream = retrieveConfigInputStream(configPathParts.get(0), loggingLevelOnError);
         if (inputStream.isPresent()) {
             return selectConfigurationPart(configPathParts,
                 getConfig(inputStream.get()));
@@ -80,13 +81,13 @@ public class FileConfigurationProvider implements ConfigurationProvider {
         return selectHierarchicalConfigPart(config, Iterables.skip(configPathParts, 1));
     }
 
-    private Optional<InputStream> retrieveConfigInputStream(String configurationFileWithoutExtension) throws ConfigurationException {
+    private Optional<InputStream> retrieveConfigInputStream(String configurationFileWithoutExtension, LoggingLevel loggingLevelOnError) throws ConfigurationException {
         Preconditions.checkArgument(!Strings.isNullOrEmpty(configurationFileWithoutExtension), "The configuration file name should not be empty or null");
         try {
             return Optional.of(
                 fileSystem.getResource(configurationPrefix + configurationFileWithoutExtension + CONFIGURATION_FILE_SUFFIX));
         } catch (IOException e) {
-            LOGGER.warn("Unable to locate configuration file {}" + CONFIGURATION_FILE_SUFFIX + ", assuming empty configuration", configurationFileWithoutExtension);
+            loggingLevelOnError.format(LOGGER, "Unable to locate configuration file {}" + CONFIGURATION_FILE_SUFFIX + ", assuming empty configuration", configurationFileWithoutExtension);
             return Optional.empty();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e57655f9/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
index 7e6b6a9..65495b5 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
@@ -44,7 +44,7 @@ class DefaultCassandraJamesServerTest {
             .overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
             .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
             .overrideWith(binder -> binder.bind(PropertiesProvider.class).to(FailingPropertiesProvider.class))
-            .overrideWith(binder -> binder.bind(ConfigurationProvider.class).toInstance(s -> new HierarchicalConfiguration())))
+            .overrideWith(binder -> binder.bind(ConfigurationProvider.class).toInstance((s, l) -> new HierarchicalConfiguration())))
         .build();
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/e57655f9/server/container/guice/memory-guice/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java
index fdd2196..47a8d19 100644
--- a/server/container/guice/memory-guice/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java
+++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java
@@ -41,7 +41,7 @@ class DefaultMemoryJamesServerTest {
             .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
             .overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
             .overrideWith(binder -> binder.bind(PropertiesProvider.class).to(FailingPropertiesProvider.class))
-            .overrideWith(binder -> binder.bind(ConfigurationProvider.class).toInstance(s -> new HierarchicalConfiguration())))
+            .overrideWith(binder -> binder.bind(ConfigurationProvider.class).toInstance((s, l) -> new HierarchicalConfiguration())))
         .build();
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org