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 bt...@apache.org on 2017/08/08 10:46:37 UTC
[02/10] james-project git commit: JAMES-1589 Add domains mentioned in
configuration upon start
JAMES-1589 Add domains mentioned in configuration upon start
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5edfac13
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5edfac13
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5edfac13
Branch: refs/heads/master
Commit: 5edfac13b71af385fab4b8220d1a02494790c7de
Parents: 6e36b22
Author: benwa <bt...@linagora.com>
Authored: Fri Jul 28 18:07:44 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Aug 8 17:08:50 2017 +0700
----------------------------------------------------------------------
.../james/domainlist/xml/XMLDomainList.java | 13 -------------
.../james/domainlist/lib/AbstractDomainList.java | 18 ++++++++++++++++++
.../lib/AbstractDomainListPrivateMethodsTest.java | 15 +++++++++++++++
3 files changed, 33 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5edfac13/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java b/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
index 813f521..c73590b 100644
--- a/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
+++ b/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
@@ -51,13 +51,6 @@ public class XMLDomainList extends AbstractDomainList implements Configurable {
@Override
public void configure(HierarchicalConfiguration config) throws ConfigurationException {
super.configure(config);
- for (String serverNameConf : config.getStringArray("domainnames.domainname")) {
- try {
- addToServedDomains(serverNameConf);
- } catch (DomainListException e) {
- throw new ConfigurationException("Unable to add domain to memory", e);
- }
- }
isConfigured = true;
}
@@ -87,10 +80,4 @@ public class XMLDomainList extends AbstractDomainList implements Configurable {
domainNames.remove(domain);
}
- private void addToServedDomains(String domain) throws DomainListException {
- String newDomain = domain.toLowerCase(Locale.US);
- if (!containsDomain(newDomain)) {
- domainNames.add(newDomain);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5edfac13/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
index c08abbe..62c4f09 100644
--- a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
+++ b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
@@ -22,6 +22,7 @@ package org.apache.james.domainlist.lib;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
@@ -55,6 +56,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
public static final String CONFIGURE_AUTODETECT = "autodetect";
public static final String CONFIGURE_AUTODETECT_IP = "autodetectIP";
public static final String CONFIGURE_DEFAULT_DOMAIN = "defaultDomain";
+ public static final String CONFIGURE_DOMAIN_NAMES = "domainnames.domainname";
public static final String ENV_DOMAIN = "DOMAIN";
private final DNSService dns;
@@ -83,11 +85,27 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
configureDefaultDomain(config);
addEnvDomain();
+ addConfiguredDomains(config);
setAutoDetect(config.getBoolean(CONFIGURE_AUTODETECT, true));
setAutoDetectIP(config.getBoolean(CONFIGURE_AUTODETECT_IP, true));
}
+ protected void addConfiguredDomains(HierarchicalConfiguration config) {
+ String[] configuredDomainNames = config.getStringArray(CONFIGURE_DOMAIN_NAMES);
+ try {
+ if (configuredDomainNames != null) {
+ for (String domain : Arrays.asList(configuredDomainNames)) {
+ if (!containsDomainInternal(domain)) {
+ addDomain(domain.toLowerCase(Locale.US));
+ }
+ }
+ }
+ } catch (DomainListException e) {
+ throw Throwables.propagate(e);
+ }
+ }
+
private void addEnvDomain() {
String envDomain = envDetector.getEnv(ENV_DOMAIN);
if (!Strings.isNullOrEmpty(envDomain)) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/5edfac13/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
index 9f6de93..86137dc 100644
--- a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import java.net.InetAddress;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -330,4 +331,18 @@ public class AbstractDomainListPrivateMethodsTest {
assertThat(domainList.containsDomain(envDomain)).isTrue();
}
+ @Test
+ public void configuredDomainShouldBeAddedUponConfiguration() throws Exception {
+ String[] configuredDomain = new String[] {"conf1.tld", "conf2.tld"};
+
+ HierarchicalConfiguration configuration = mock(HierarchicalConfiguration.class);
+ when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, true)).thenReturn(true);
+ when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, true)).thenReturn(false);
+ when(configuration.getStringArray(AbstractDomainList.CONFIGURE_DOMAIN_NAMES)).thenReturn(configuredDomain);
+ domainList.configure(configuration);
+
+ assertThat(domainList.getDomains())
+ .containsOnlyElementsOf(Arrays.asList(configuredDomain));
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org