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

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit f8fd4d9a63e25d255f6f736fe977ab233875184b
Author: Tran Tien Duc <[email protected]>
AuthorDate: Mon Aug 19 11:27:33 2019 +0700

    JAMES-2855 default delimiter is set in PropertyProvider
---
 .../init/configuration/ClusterConfiguration.java   |  4 +---
 .../init/CassandraConfigurationReadingTest.java    | 15 +++++++++----
 .../backends/es/ElasticSearchConfiguration.java    |  6 ++---
 .../es/ElasticSearchConfigurationTest.java         |  7 ++++--
 .../modules/mailbox/TikaConfigurationReader.java   |  4 +---
 .../org/apache/james/utils/PropertiesProvider.java | 26 +++++++++++++++++-----
 .../apache/james/utils/PropertiesProviderTest.java |  6 +++++
 .../configuration/src/test/resources/a.properties  |  3 ++-
 8 files changed, 49 insertions(+), 22 deletions(-)

diff --git 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/ClusterConfiguration.java
 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/ClusterConfiguration.java
index 2db6f7e..5d832ca 100644
--- 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/ClusterConfiguration.java
+++ 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/ClusterConfiguration.java
@@ -25,8 +25,7 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.configuration.AbstractConfiguration;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
 import org.apache.james.backends.cassandra.init.ClusterBuilder;
 import org.apache.james.util.Host;
 
@@ -177,7 +176,6 @@ public class ClusterConfiguration {
     }
 
     public static ClusterConfiguration from(Configuration configuration) {
-        AbstractConfiguration.setDefaultListDelimiter(',');
         return ClusterConfiguration.builder()
             .hosts(listCassandraServers(configuration))
             
.keyspace(Optional.ofNullable(configuration.getString(CASSANDRA_KEYSPACE, 
null)))
diff --git 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationReadingTest.java
 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationReadingTest.java
index 860d0d7..7ae57c4 100644
--- 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationReadingTest.java
+++ 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationReadingTest.java
@@ -21,8 +21,11 @@ package org.apache.james.backends.cassandra.init;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.builder.fluent.Parameters;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.junit.Test;
 
@@ -37,8 +40,12 @@ public class CassandraConfigurationReadingTest {
 
     @Test
     public void 
provideCassandraConfigurationShouldReturnRightConfigurationFile() throws 
ConfigurationException {
-        CassandraConfiguration configuration = CassandraConfiguration.from(new 
PropertiesConfiguration(
-            ClassLoader.getSystemResource("cassandra.properties")));
+        FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new 
FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
+            .configure(new Parameters()
+                .fileBased()
+                
.setURL(ClassLoader.getSystemResource("cassandra.properties")));
+
+        CassandraConfiguration configuration = 
CassandraConfiguration.from(builder.getConfiguration());
 
         assertThat(configuration)
             .isEqualTo(CassandraConfiguration.builder()
diff --git 
a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchConfiguration.java
 
b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchConfiguration.java
index 24635f5..0f21537 100644
--- 
a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchConfiguration.java
+++ 
b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchConfiguration.java
@@ -26,9 +26,8 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.configuration.AbstractConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.util.Host;
 
 import com.github.steveash.guavate.Guavate;
@@ -143,7 +142,6 @@ public class ElasticSearchConfiguration {
     }
 
     private static ImmutableList<Host> getHosts(Configuration 
propertiesReader) throws ConfigurationException {
-        AbstractConfiguration.setDefaultListDelimiter(',');
         Optional<String> masterHost = Optional.ofNullable(
             propertiesReader.getString(ELASTICSEARCH_MASTER_HOST, null));
         Optional<Integer> masterPort = Optional.ofNullable(
diff --git 
a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchConfigurationTest.java
 
b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchConfigurationTest.java
index 18167a1..366c0cc 100644
--- 
a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchConfigurationTest.java
+++ 
b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchConfigurationTest.java
@@ -24,12 +24,14 @@ import static 
org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.Optional;
 
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.util.Host;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
+
 import nl.jqno.equalsverifier.EqualsVerifier;
 
 public class ElasticSearchConfigurationTest {
@@ -154,6 +156,7 @@ public class ElasticSearchConfigurationTest {
         String hostname2 = "myOtherHost";
         int port = 2154;
         PropertiesConfiguration configuration = new PropertiesConfiguration();
+        configuration.setListDelimiterHandler(new 
DefaultListDelimiterHandler(','));
         configuration.addProperty("elasticsearch.hosts", hostname + "," + 
hostname2 + ":" + port);
 
         ElasticSearchConfiguration elasticSearchConfiguration = 
ElasticSearchConfiguration.fromProperties(configuration);
diff --git 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
index 68763ec..ae7bc0e 100644
--- 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
+++ 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
@@ -24,8 +24,7 @@ import java.time.temporal.ChronoUnit;
 import java.util.Optional;
 import java.util.Set;
 
-import org.apache.commons.configuration.AbstractConfiguration;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
 import org.apache.james.mailbox.tika.TikaConfiguration;
 import org.apache.james.util.DurationParser;
 import org.apache.james.util.Size;
@@ -45,7 +44,6 @@ public class TikaConfigurationReader {
     public static final String TIKA_CONTENT_TYPE_BLACKLIST = 
"tika.contentType.blacklist";
 
     public static TikaConfiguration readTikaConfiguration(Configuration 
configuration) {
-        AbstractConfiguration.setDefaultListDelimiter(',');
         Optional<Boolean> enabled = Optional.ofNullable(
             configuration.getBoolean(TIKA_ENABLED, null));
 
diff --git 
a/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
 
b/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
index c474a87..c9fd564 100644
--- 
a/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
+++ 
b/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
@@ -26,9 +26,13 @@ import java.util.Optional;
 
 import javax.inject.Inject;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.builder.fluent.Parameters;
+import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.util.OptionalUtils;
 
@@ -38,6 +42,8 @@ import com.google.common.base.Strings;
 
 public class PropertiesProvider {
 
+    private static final char COMMA = ',';
+
     private final FileSystem fileSystem;
     private final String configurationPrefix;
 
@@ -54,7 +60,7 @@ public class PropertiesProvider {
             .findFirst()
             .orElseThrow(() -> new 
FileNotFoundException(Joiner.on(",").join(filenames) + " not found"));
 
-        return new PropertiesConfiguration(file);
+        return getConfiguration(file);
     }
 
     public Configuration getConfiguration(String fileName) throws 
FileNotFoundException, ConfigurationException {
@@ -63,7 +69,17 @@ public class PropertiesProvider {
         File file = getConfigurationFile(fileName)
             .orElseThrow(() -> new FileNotFoundException(fileName));
 
-        return new PropertiesConfiguration(file);
+        return getConfiguration(file);
+    }
+
+    private Configuration getConfiguration(File propertiesFile) throws 
ConfigurationException {
+        FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new 
FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
+            .configure(new Parameters()
+                .fileBased()
+                .setListDelimiterHandler(new 
DefaultListDelimiterHandler(COMMA))
+                .setFile(propertiesFile));
+
+        return builder.getConfiguration();
     }
 
     private Optional<File> getConfigurationFile(String fileName) {
diff --git 
a/server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderTest.java
 
b/server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderTest.java
index 9bfdcc4..bbda6a3 100644
--- 
a/server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderTest.java
+++ 
b/server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderTest.java
@@ -77,4 +77,10 @@ class PropertiesProviderTest {
         assertThat(testee.getConfiguration("a").getString("prop"))
             .isEqualTo("value1");
     }
+
+    @Test
+    void getConfigurationShouldLoadListValues() throws Exception {
+        assertThat(testee.getConfiguration("a").getList(String.class, 
"keyByList"))
+            .containsExactly("value1", "value2");
+    }
 }
\ No newline at end of file
diff --git 
a/server/container/guice/configuration/src/test/resources/a.properties 
b/server/container/guice/configuration/src/test/resources/a.properties
index 452d1aa..43e4d04 100644
--- a/server/container/guice/configuration/src/test/resources/a.properties
+++ b/server/container/guice/configuration/src/test/resources/a.properties
@@ -1 +1,2 @@
-prop=value1
\ No newline at end of file
+prop=value1
+keyByList=value1, value2
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to