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 ad...@apache.org on 2017/12/12 08:48:31 UTC
[01/12] james-project git commit: JAMES-2251 Chain
StringBuilder.append() calls
Repository: james-project
Updated Branches:
refs/heads/master aee6cc7d3 -> 3bb571bf7
JAMES-2251 Chain StringBuilder.append() calls
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c9233f18
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c9233f18
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c9233f18
Branch: refs/heads/master
Commit: c9233f18c114564d84fea3fe62622e9edc4a7c9f
Parents: 72eabca
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 12:03:44 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:36 2017 +0100
----------------------------------------------------------------------
.../org/apache/james/protocols/smtp/core/RcptCmdHandler.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c9233f18/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
index 7e00dc8..562686c 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
@@ -226,12 +226,13 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
private String getContext(SMTPSession session, MailAddress recipientAddress, String recipient) {
StringBuilder sb = new StringBuilder(128);
if (null != recipientAddress) {
- sb.append(" [to:" + recipientAddress.toString() + "]");
+ sb.append(" [to:").append(recipientAddress.asString()).append(']');
} else if (null != recipient) {
- sb.append(" [to:" + recipient + "]");
+ sb.append(" [to:").append(recipient).append(']');
}
if (null != session.getAttachment(SMTPSession.SENDER, State.Transaction)) {
- sb.append(" [from:" + ((MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).toString() + "]");
+ MailAddress mailAddress = (MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction);
+ sb.append(" [from:").append(mailAddress.asString()).append(']');
}
return sb.toString();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[02/12] james-project git commit: JAMES-2251 Avoid calling
Collection.size()
Posted by ad...@apache.org.
JAMES-2251 Avoid calling Collection.size()
Avoiding Collection.size() is generally to be preferred because it might
be slow.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/0738899e
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/0738899e
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/0738899e
Branch: refs/heads/master
Commit: 0738899ee749b98166a50704660aad084b7bf7db
Parents: aee6cc7
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 11:57:23 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:36 2017 +0100
----------------------------------------------------------------------
.../org/apache/james/transport/mailets/BayesianAnalysis.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/0738899e/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index 2d9924b..0888761 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -374,10 +374,10 @@ public class BayesianAnalysis extends GenericMailet {
StringBuilder sb = new StringBuilder();
sb.append('[');
for (int i = 0; iter.hasNext(); i++) {
- sb.append(iter.next());
- if (i + 1 < addresses.size()) {
+ if (i > 0) {
sb.append(", ");
}
+ sb.append(iter.next());
}
sb.append(']');
return sb.toString();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[06/12] james-project git commit: JAMES-2251 Don't convert logBuffer
to a String twice
Posted by ad...@apache.org.
JAMES-2251 Don't convert logBuffer to a String twice
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9a06f408
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9a06f408
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9a06f408
Branch: refs/heads/master
Commit: 9a06f4081691f0c13dda2b138c3bcb72fc8e700b
Parents: 4a58c3e
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 12:09:55 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:37 2017 +0100
----------------------------------------------------------------------
.../mailrepository/jdbc/JDBCMailRepository.java | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9a06f408/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
index d1ad86c..c18bdd4 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
@@ -265,7 +265,7 @@ public class JDBCMailRepository extends AbstractMailRepository {
LOGGER.debug(logBuf);
}
} catch (Exception e) {
- final String message = "Failed to retrieve Store component:" + e.getMessage();
+ String message = "Failed to retrieve Store component:" + e.getMessage();
LOGGER.error(message, e);
throw new ConfigurationException(message, e);
}
@@ -365,18 +365,21 @@ public class JDBCMailRepository extends AbstractMailRepository {
if (hasUpdateMessageAttributesSQL && !hasRetrieveMessageAttributesSQL) {
logBuffer.append("JDBC Mail Attributes support was activated for update but not for retrieval" + "(found 'updateMessageAttributesSQL' but not 'retrieveMessageAttributesSQL'" + "in table '").append(tableName).append("').");
- LOGGER.error(logBuffer.toString());
- throw new SQLException(logBuffer.toString());
+ String logBufferAsString = logBuffer.toString();
+ LOGGER.error(logBufferAsString);
+ throw new SQLException(logBufferAsString);
}
if (!hasUpdateMessageAttributesSQL && hasRetrieveMessageAttributesSQL) {
logBuffer.append("JDBC Mail Attributes support was activated for retrieval but not for update" + "(found 'retrieveMessageAttributesSQL' but not 'updateMessageAttributesSQL'" + "in table '").append(tableName).append("'.");
- LOGGER.error(logBuffer.toString());
- throw new SQLException(logBuffer.toString());
+ String logBufferAsString = logBuffer.toString();
+ LOGGER.error(logBufferAsString);
+ throw new SQLException(logBufferAsString);
}
if (!hasMessageAttributesColumn && (hasUpdateMessageAttributesSQL || hasRetrieveMessageAttributesSQL)) {
logBuffer.append("JDBC Mail Attributes support was activated but column '").append(attributesColumnName).append("' is missing in table '").append(tableName).append("'.");
- LOGGER.error(logBuffer.toString());
- throw new SQLException(logBuffer.toString());
+ String logBufferAsString = logBuffer.toString();
+ LOGGER.error(logBufferAsString);
+ throw new SQLException(logBufferAsString);
}
if (hasUpdateMessageAttributesSQL && hasRetrieveMessageAttributesSQL) {
jdbcMailAttributesReady = true;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[09/12] james-project git commit: JAMES-2251 Refactor
getDomainsIP()/getDomainIP() to work with Streams
Posted by ad...@apache.org.
JAMES-2251 Refactor getDomainsIP()/getDomainIP() to work with Streams
This avoids creation of temporary ImmutableLists.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/7d2fee76
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/7d2fee76
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/7d2fee76
Branch: refs/heads/master
Commit: 7d2fee7602d89761d0deb6c48615e647ded84752
Parents: 78b04fe
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Wed Dec 6 17:50:44 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:38 2017 +0100
----------------------------------------------------------------------
.../domainlist/lib/AbstractDomainList.java | 29 ++++++++++----------
1 file changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/7d2fee76/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 460933f..e786ab1 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
@@ -24,6 +24,7 @@ import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
+import java.util.stream.Stream;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -158,8 +159,9 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
// https://stackoverflow.com/questions/37919648/concatenating-immutablelists
// A work-around is to use Iterables.concat() until something like
// https://github.com/google/guava/issues/1029 is implemented.
- ImmutableList<String> detectedIps = detectIps(Iterables.concat(domains, detectedDomains));
- Iterable<String> allDomains = Iterables.concat(domains, detectedDomains, detectedIps);
+ Iterable<String> domainsWithoutIp = (detectedDomains.isEmpty() ? domains : Iterables.concat(domains, detectedDomains));
+ ImmutableList<String> detectedIps = detectIps(domainsWithoutIp);
+ ImmutableList<String> allDomains = ImmutableList.copyOf(detectedIps.isEmpty() ? domainsWithoutIp : Iterables.concat(domainsWithoutIp, detectedIps));
if (LOGGER.isDebugEnabled()) {
for (String domain : allDomains) {
@@ -167,12 +169,13 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
}
}
- return ImmutableList.copyOf(allDomains);
+ return allDomains;
}
private ImmutableList<String> detectIps(Iterable<String> domains) {
if (autoDetectIP) {
- return getDomainsIP(domains, dns, LOGGER);
+ return getDomainsIpStream(domains, dns, LOGGER)
+ .collect(Guavate.toImmutableList());
}
return ImmutableList.of();
}
@@ -195,31 +198,29 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
}
/**
- * Return a List which holds all ipAddress of the domains in the given List
+ * Return a stream of all IP addresses of the given domains.
*
* @param domains
* Iterable of domains
- * @return domainIP List of ipaddress for domains
+ * @return Stream of ipaddress for domains
*/
- private static ImmutableList<String> getDomainsIP(Iterable<String> domains, DNSService dns, Logger log) {
+ private static Stream<String> getDomainsIpStream(Iterable<String> domains, DNSService dns, Logger log) {
return Guavate.stream(domains)
- .flatMap(domain -> getDomainIP(domain, dns, log).stream())
- .distinct()
- .collect(Guavate.toImmutableList());
+ .flatMap(domain -> getDomainIpStream(domain, dns, log))
+ .distinct();
}
/**
* @see #getDomainsIP(List, DNSService, Logger)
*/
- private static ImmutableList<String> getDomainIP(String domain, DNSService dns, Logger log) {
+ private static Stream<String> getDomainIpStream(String domain, DNSService dns, Logger log) {
try {
return dns.getAllByName(domain).stream()
.map(InetAddress::getHostAddress)
- .distinct()
- .collect(Guavate.toImmutableList());
+ .distinct();
} catch (UnknownHostException e) {
log.error("Cannot get IP address(es) for " + domain);
- return ImmutableList.of();
+ return Stream.of();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[07/12] james-project git commit: JAMES-2251 Fix potential undefined
behavior
Posted by ad...@apache.org.
JAMES-2251 Fix potential undefined behavior
Because attributes is a Hashtable, iteration over the keys/keySet
collection view should be manually synchronized.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4a58c3e9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4a58c3e9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4a58c3e9
Branch: refs/heads/master
Commit: 4a58c3e9d1af852460fa6717d7d5af8d6b30b7aa
Parents: c9233f1
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 12:06:41 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:37 2017 +0100
----------------------------------------------------------------------
.../james/mailetcontainer/impl/JamesMailetContext.java | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/4a58c3e9/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 51d01f9..b013414 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -19,16 +19,14 @@
package org.apache.james.mailetcontainer.impl;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
-import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
-import java.util.Optional;
-import java.util.Vector;
import javax.inject.Inject;
import javax.mail.Address;
@@ -132,9 +130,9 @@ public class JamesMailetContext implements MailetContext, Configurable {
@Override
public Iterator<String> getAttributeNames() {
- Vector<String> names = new Vector<>();
- for (Enumeration<String> e = attributes.keys(); e.hasMoreElements(); ) {
- names.add(e.nextElement());
+ final List<String> names;
+ synchronized (attributes) {
+ names = new ArrayList<>(attributes.keySet());
}
return names.iterator();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[08/12] james-project git commit: JAMES-2251 Switch to
ConcurrentHashMap
Posted by ad...@apache.org.
JAMES-2251 Switch to ConcurrentHashMap
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3bb571bf
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3bb571bf
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3bb571bf
Branch: refs/heads/master
Commit: 3bb571bf74e25d71e46165c2da25d2436b8d7a56
Parents: 62619e2
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Thu Dec 7 11:59:58 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:38 2017 +0100
----------------------------------------------------------------------
.../apache/james/mailetcontainer/impl/JamesMailetContext.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3bb571bf/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 34db500..c4d34bb 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -19,15 +19,14 @@
package org.apache.james.mailetcontainer.impl;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javax.inject.Inject;
import javax.mail.Address;
@@ -70,7 +69,7 @@ public class JamesMailetContext implements MailetContext, Configurable {
/**
* A hash table of server attributes These are the MailetContext attributes
*/
- private final Map<String, Object> attributes = new HashMap<>();
+ private final Map<String, Object> attributes = new ConcurrentHashMap<>();
protected DNSService dns;
private UsersRepository localusers;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[05/12] james-project git commit: JAMES-2251 Avoid creating
mutableDomains in AbstractDomainList.getDomains()
Posted by ad...@apache.org.
JAMES-2251 Avoid creating mutableDomains in AbstractDomainList.getDomains()
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9c871fef
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9c871fef
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9c871fef
Branch: refs/heads/master
Commit: 9c871fef63c0c7cff6dbd460e4e77103a67a97b5
Parents: f4b6276
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Thu Nov 9 08:20:39 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:37 2017 +0100
----------------------------------------------------------------------
.../domainlist/lib/AbstractDomainList.java | 35 ++++++++++----------
1 file changed, 18 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9c871fef/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 4582006..460933f 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
@@ -21,7 +21,6 @@ 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.List;
import java.util.Locale;
@@ -40,6 +39,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
/**
* All implementations of the DomainList interface should extends this abstract
@@ -151,32 +151,33 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
}
@Override
- public List<String> getDomains() throws DomainListException {
+ public ImmutableList<String> getDomains() throws DomainListException {
List<String> domains = getDomainListInternal();
-
- // create mutable copy, some subclasses return ImmutableList
- ArrayList<String> mutableDomains = new ArrayList<>(domains);
- List<String> detectedDomains = detectDomains();
- mutableDomains.addAll(detectedDomains);
- mutableDomains.addAll(detectIps(mutableDomains));
+ ImmutableList<String> detectedDomains = detectDomains();
+ // Guava does not support concatenating ImmutableLists at this time:
+ // https://stackoverflow.com/questions/37919648/concatenating-immutablelists
+ // A work-around is to use Iterables.concat() until something like
+ // https://github.com/google/guava/issues/1029 is implemented.
+ ImmutableList<String> detectedIps = detectIps(Iterables.concat(domains, detectedDomains));
+ Iterable<String> allDomains = Iterables.concat(domains, detectedDomains, detectedIps);
if (LOGGER.isDebugEnabled()) {
- for (String domain : mutableDomains) {
+ for (String domain : allDomains) {
LOGGER.debug("Handling mail for: " + domain);
}
}
- return ImmutableList.copyOf(mutableDomains);
+ return ImmutableList.copyOf(allDomains);
}
- private List<String> detectIps(ArrayList<String> mutableDomains) {
+ private ImmutableList<String> detectIps(Iterable<String> domains) {
if (autoDetectIP) {
- return getDomainsIP(mutableDomains, dns, LOGGER);
+ return getDomainsIP(domains, dns, LOGGER);
}
return ImmutableList.of();
}
- private List<String> detectDomains() {
+ private ImmutableList<String> detectDomains() {
if (autoDetect) {
String hostName;
try {
@@ -197,11 +198,11 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
* Return a List which holds all ipAddress of the domains in the given List
*
* @param domains
- * List of domains
+ * Iterable of domains
* @return domainIP List of ipaddress for domains
*/
- private static List<String> getDomainsIP(List<String> domains, DNSService dns, Logger log) {
- return domains.stream()
+ private static ImmutableList<String> getDomainsIP(Iterable<String> domains, DNSService dns, Logger log) {
+ return Guavate.stream(domains)
.flatMap(domain -> getDomainIP(domain, dns, log).stream())
.distinct()
.collect(Guavate.toImmutableList());
@@ -210,7 +211,7 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
/**
* @see #getDomainsIP(List, DNSService, Logger)
*/
- private static List<String> getDomainIP(String domain, DNSService dns, Logger log) {
+ private static ImmutableList<String> getDomainIP(String domain, DNSService dns, Logger log) {
try {
return dns.getAllByName(domain).stream()
.map(InetAddress::getHostAddress)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[10/12] james-project git commit: JAMES-2251 Switch to using Guava's
Joiner
Posted by ad...@apache.org.
JAMES-2251 Switch to using Guava's Joiner
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/23b96909
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/23b96909
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/23b96909
Branch: refs/heads/master
Commit: 23b9690968f472ff8fea89927ab01a98a0526aac
Parents: 9c871fe
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Wed Dec 6 12:16:47 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:38 2017 +0100
----------------------------------------------------------------------
.../apache/james/transport/mailets/BayesianAnalysis.java | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/23b96909/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index 0888761..69845ca 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -25,7 +25,6 @@ import java.io.StringReader;
import java.sql.Connection;
import java.text.DecimalFormat;
import java.util.Collection;
-import java.util.Iterator;
import javax.inject.Inject;
import javax.mail.MessagingException;
@@ -43,6 +42,8 @@ import org.apache.mailet.base.RFC2822Headers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Joiner;
+
/**
* <p>
* Spam detection mailet using bayesian analysis techniques.
@@ -370,15 +371,9 @@ public class BayesianAnalysis extends GenericMailet {
return "null";
}
- Iterator<MailAddress> iter = addresses.iterator();
StringBuilder sb = new StringBuilder();
sb.append('[');
- for (int i = 0; iter.hasNext(); i++) {
- if (i > 0) {
- sb.append(", ");
- }
- sb.append(iter.next());
- }
+ Joiner.on(", ").appendTo(sb, addresses);
sb.append(']');
return sb.toString();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[11/12] james-project git commit: JAMES-2251 Always perform the
concatenation
Posted by ad...@apache.org.
JAMES-2251 Always perform the concatenation
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/62619e28
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/62619e28
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/62619e28
Branch: refs/heads/master
Commit: 62619e28b2c45da024eb2b56192c889f7453dbb9
Parents: 7d2fee7
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Thu Dec 7 11:56:59 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:38 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/james/domainlist/lib/AbstractDomainList.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/62619e28/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 e786ab1..9184a6b 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
@@ -159,9 +159,9 @@ public abstract class AbstractDomainList implements DomainList, Configurable {
// https://stackoverflow.com/questions/37919648/concatenating-immutablelists
// A work-around is to use Iterables.concat() until something like
// https://github.com/google/guava/issues/1029 is implemented.
- Iterable<String> domainsWithoutIp = (detectedDomains.isEmpty() ? domains : Iterables.concat(domains, detectedDomains));
+ Iterable<String> domainsWithoutIp = Iterables.concat(domains, detectedDomains);
ImmutableList<String> detectedIps = detectIps(domainsWithoutIp);
- ImmutableList<String> allDomains = ImmutableList.copyOf(detectedIps.isEmpty() ? domainsWithoutIp : Iterables.concat(domainsWithoutIp, detectedIps));
+ ImmutableList<String> allDomains = ImmutableList.copyOf(Iterables.concat(domainsWithoutIp, detectedIps));
if (LOGGER.isDebugEnabled()) {
for (String domain : allDomains) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[12/12] james-project git commit: JAMES-2251 Switch to HashMap
Posted by ad...@apache.org.
JAMES-2251 Switch to HashMap
Using a synchronized collection appears to be unnecessary.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/78b04fed
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/78b04fed
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/78b04fed
Branch: refs/heads/master
Commit: 78b04fed9f6d53bda65cb68674c40e8b5af5e16c
Parents: 23b9690
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Wed Dec 6 17:45:11 2017 -0600
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:38 2017 +0100
----------------------------------------------------------------------
.../james/mailetcontainer/impl/JamesMailetContext.java | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/78b04fed/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index b013414..34db500 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -22,11 +22,12 @@ package org.apache.james.mailetcontainer.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import javax.inject.Inject;
import javax.mail.Address;
@@ -60,8 +61,6 @@ import org.apache.mailet.base.RFC2822Headers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.github.fge.lambdas.Throwing;
-import com.github.fge.lambdas.consumers.ConsumerChainer;
import com.google.common.collect.ImmutableSet;
@SuppressWarnings("deprecation")
@@ -71,7 +70,7 @@ public class JamesMailetContext implements MailetContext, Configurable {
/**
* A hash table of server attributes These are the MailetContext attributes
*/
- private final Hashtable<String, Object> attributes = new Hashtable<>();
+ private final Map<String, Object> attributes = new HashMap<>();
protected DNSService dns;
private UsersRepository localusers;
@@ -130,11 +129,7 @@ public class JamesMailetContext implements MailetContext, Configurable {
@Override
public Iterator<String> getAttributeNames() {
- final List<String> names;
- synchronized (attributes) {
- names = new ArrayList<>(attributes.keySet());
- }
- return names.iterator();
+ return attributes.keySet().iterator();
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[03/12] james-project git commit: JAMES-2251 Use ArrayList instead of
obsolete Vector
Posted by ad...@apache.org.
JAMES-2251 Use ArrayList instead of obsolete Vector
The thread safety provided by Vector is not needed.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/72eabcad
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/72eabcad
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/72eabcad
Branch: refs/heads/master
Commit: 72eabcad5af3ad6b4527a08ee92119e04953cc2c
Parents: 0738899
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 12:01:36 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:36 2017 +0100
----------------------------------------------------------------------
.../apache/james/transport/mailets/delivery/MailDispatcher.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/72eabcad/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
index f4743cb..6611330 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
@@ -18,11 +18,11 @@
****************************************************************/
package org.apache.james.transport.mailets.delivery;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Vector;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@@ -115,7 +115,7 @@ public class MailDispatcher {
}
private Collection<MailAddress> deliver(Mail mail, MimeMessage message) {
- Collection<MailAddress> errors = new Vector<>();
+ Collection<MailAddress> errors = new ArrayList<>();
for (MailAddress recipient : mail.getRecipients()) {
try {
Map<String, List<String>> savedHeaders = saveHeaders(mail, recipient);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[04/12] james-project git commit: JAMES-2251 Switch over to using
ParameterMetaData.getParameterCount()
Posted by ad...@apache.org.
JAMES-2251 Switch over to using ParameterMetaData.getParameterCount()
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f4b62766
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f4b62766
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f4b62766
Branch: refs/heads/master
Commit: f4b62766bcafe6424567bd367c6566d5093f85e7
Parents: 9a06f40
Author: Daniel Trebbien <dt...@gmail.com>
Authored: Mon Oct 30 12:11:18 2017 -0400
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Dec 12 09:47:37 2017 +0100
----------------------------------------------------------------------
.../mailrepository/jdbc/JDBCMailRepository.java | 21 +-------------------
1 file changed, 1 insertion(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f4b62766/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
index c18bdd4..9a67212 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
@@ -543,8 +543,8 @@ public class JDBCMailRepository extends AbstractMailRepository {
PreparedStatement insertMessage = null;
try {
String insertMessageSQL = sqlQueries.getSqlString("insertMessageSQL", true);
- int number_of_parameters = getNumberOfParameters(insertMessageSQL);
insertMessage = conn.prepareStatement(insertMessageSQL);
+ int number_of_parameters = insertMessage.getParameterMetaData().getParameterCount();
insertMessage.setString(1, mc.getName());
insertMessage.setString(2, repositoryName);
insertMessage.setString(3, mc.getState());
@@ -825,23 +825,4 @@ public class JDBCMailRepository extends AbstractMailRepository {
}
return result;
}
-
- /**
- * This method calculates number of parameters in a prepared statement SQL
- * String. It does so by counting the number of '?' in the string
- *
- * @param sqlstring
- * to return parameter count for
- * @return number of parameters
- **/
- private int getNumberOfParameters(String sqlstring) {
- // it is alas a java 1.4 feature to be able to call
- // getParameterMetaData which could provide us with the parameterCount
- char[] chars = sqlstring.toCharArray();
- int count = 0;
- for (char aChar : chars) {
- count += aChar == '?' ? 1 : 0;
- }
- return count;
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org