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 ma...@apache.org on 2018/07/20 08:05:02 UTC
[01/19] james-project git commit: JAMES-2472 Upgrade
commons-collection to 4.2
Repository: james-project
Updated Branches:
refs/heads/master 9c3aa9f50 -> 86debb669
JAMES-2472 Upgrade commons-collection to 4.2
Dependency can be simply dropped in many places
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ac0c84c8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ac0c84c8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ac0c84c8
Branch: refs/heads/master
Commit: ac0c84c896e48e2e26fb5dc691445901910f381e
Parents: 325cb7a
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:32:21 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
mailet/mailetdocs-maven-plugin/pom.xml | 4 ---
.../james/mailet/AbstractMailetdocsReport.java | 35 +++++---------------
pom.xml | 8 +----
server/container/spring/pom.xml | 4 ---
server/mailet/mailets/pom.xml | 4 ---
5 files changed, 10 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/ac0c84c8/mailet/mailetdocs-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/mailetdocs-maven-plugin/pom.xml b/mailet/mailetdocs-maven-plugin/pom.xml
index 6f3be1f..75adfac 100644
--- a/mailet/mailetdocs-maven-plugin/pom.xml
+++ b/mailet/mailetdocs-maven-plugin/pom.xml
@@ -50,10 +50,6 @@
<artifactId>qdox</artifactId>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/ac0c84c8/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
----------------------------------------------------------------------
diff --git a/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java b/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
index 0e11422..44b6ce2 100644
--- a/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
+++ b/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
@@ -23,8 +23,6 @@ import java.util.Comparator;
import java.util.List;
import java.util.Locale;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
import org.apache.maven.doxia.siterenderer.Renderer;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
@@ -32,6 +30,7 @@ import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.MavenReportException;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Strings;
/**
@@ -58,23 +57,6 @@ public abstract class AbstractMailetdocsReport extends AbstractMavenReport {
@Component
private Renderer siteRenderer;
- /**
- * Extracts only a given type from a list.
- */
- private static final class TypePredicate implements Predicate {
-
- private final MailetMatcherDescriptor.Type type;
-
- public TypePredicate(MailetMatcherDescriptor.Type typeMatcher) {
- this.type = typeMatcher;
- }
-
- @Override
- public boolean evaluate(Object subject) {
- return ((MailetMatcherDescriptor) subject).getType() == type;
- }
- }
-
@Override
protected void executeReport(Locale locale) throws MavenReportException {
@@ -106,13 +88,14 @@ public abstract class AbstractMailetdocsReport extends AbstractMavenReport {
private void writeDescriptions() {
final List<MailetMatcherDescriptor> descriptors = buildSortedDescriptors();
-
- @SuppressWarnings("unchecked")
- final List<MailetMatcherDescriptor> matchers = (List<MailetMatcherDescriptor>) CollectionUtils.select(descriptors,
- new TypePredicate(MailetMatcherDescriptor.Type.MATCHER));
- @SuppressWarnings("unchecked")
- final List<MailetMatcherDescriptor> mailets = (List<MailetMatcherDescriptor>) CollectionUtils.select(descriptors,
- new TypePredicate(MailetMatcherDescriptor.Type.MAILET));
+
+ final List<MailetMatcherDescriptor> matchers = descriptors.stream()
+ .filter(descriptor -> descriptor.getType() == MailetMatcherDescriptor.Type.MATCHER)
+ .collect(Guavate.toImmutableList());
+
+ final List<MailetMatcherDescriptor> mailets = descriptors.stream()
+ .filter(descriptor -> descriptor.getType() == MailetMatcherDescriptor.Type.MAILET)
+ .collect(Guavate.toImmutableList());
final boolean matchersExist = matchers.size() > 0;
final boolean mailetsExist = mailets.size() > 0;
http://git-wip-us.apache.org/repos/asf/james-project/blob/ac0c84c8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3bc991a..ab09f25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -604,7 +604,6 @@
<slf4j.version>1.7.25</slf4j.version>
<servlet-api.version>2.4</servlet-api.version>
<commons-daemon.version>1.0.10</commons-daemon.version>
- <commons-collections.version>3.2.2</commons-collections.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-cli.version>1.4</commons-cli.version>
<commons-pool.version>1.6</commons-pool.version>
@@ -1748,11 +1747,6 @@
<version>${commons-cli.version}</version>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>${commons-collections.version}</version>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons-configuration.version}</version>
@@ -2011,7 +2005,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
- <version>4.1</version>
+ <version>4.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/ac0c84c8/server/container/spring/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/spring/pom.xml b/server/container/spring/pom.xml
index 152ab21..0598fd0 100644
--- a/server/container/spring/pom.xml
+++ b/server/container/spring/pom.xml
@@ -89,10 +89,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/ac0c84c8/server/mailet/mailets/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml
index e48611b..d60eba1 100644
--- a/server/mailet/mailets/pom.xml
+++ b/server/mailet/mailets/pom.xml
@@ -191,10 +191,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[03/19] james-project git commit: JAMES-2472 refactor hashing code to
use guava
Posted by ma...@apache.org.
JAMES-2472 refactor hashing code to use guava
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/18340831
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/18340831
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/18340831
Branch: refs/heads/master
Commit: 18340831fd5e7f33c547c75ea0dcf56386ff3044
Parents: 18f5da3
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jul 17 16:23:08 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
.../org/apache/james/mailbox/model/BlobId.java | 5 ++--
.../mailbox/tika/CachingTextExtractor.java | 4 +--
.../james/blob/cassandra/CassandraBlobId.java | 4 +--
.../apache/james/user/jpa/model/JPAUser.java | 30 +++++++++++++-------
.../DockerClusterRabbitMQExtension.java | 6 ++--
5 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/18340831/mailbox/api/src/main/java/org/apache/james/mailbox/model/BlobId.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/BlobId.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/BlobId.java
index 34a62e3..b5b25ad 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/BlobId.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/BlobId.java
@@ -21,16 +21,15 @@ package org.apache.james.mailbox.model;
import java.util.Objects;
-import org.apache.commons.codec.digest.DigestUtils;
-
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
+import com.google.common.hash.Hashing;
public class BlobId {
public static BlobId fromBytes(byte[] bytes) {
Preconditions.checkNotNull(bytes);
- return new BlobId(DigestUtils.sha256Hex(bytes));
+ return new BlobId(Hashing.sha256().hashBytes(bytes).toString());
}
public static BlobId fromString(String raw) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/18340831/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java
----------------------------------------------------------------------
diff --git a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java
index 3db1ad9..9feaf55 100644
--- a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java
+++ b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java
@@ -26,7 +26,6 @@ import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.extractor.ParsedContent;
import org.apache.james.mailbox.extractor.TextExtractor;
@@ -39,6 +38,7 @@ import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.RemovalListener;
import com.google.common.cache.Weigher;
+import com.google.common.hash.Hashing;
import com.google.common.util.concurrent.UncheckedExecutionException;
public class CachingTextExtractor implements TextExtractor {
@@ -110,7 +110,7 @@ public class CachingTextExtractor implements TextExtractor {
@Override
public ParsedContent extractContent(InputStream inputStream, String contentType) throws Exception {
byte[] bytes = IOUtils.toByteArray(inputStream);
- String key = DigestUtils.sha256Hex(bytes);
+ String key = Hashing.sha256().hashBytes(bytes).toString();
try {
return cache.get(key, () -> retrieveAndUpdateWeight(bytes, contentType));
http://git-wip-us.apache.org/repos/asf/james-project/blob/18340831/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobId.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobId.java b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobId.java
index fedd734..d349b53 100644
--- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobId.java
+++ b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobId.java
@@ -19,7 +19,6 @@
package org.apache.james.blob.cassandra;
-import org.apache.commons.codec.digest.DigestUtils;
import org.apache.james.blob.api.BlobId;
import com.google.common.annotations.VisibleForTesting;
@@ -27,6 +26,7 @@ import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
+import com.google.common.hash.Hashing;
public class CassandraBlobId implements BlobId {
@@ -34,7 +34,7 @@ public class CassandraBlobId implements BlobId {
@Override
public CassandraBlobId forPayload(byte[] payload) {
Preconditions.checkArgument(payload != null);
- return new CassandraBlobId(DigestUtils.sha256Hex(payload));
+ return new CassandraBlobId(Hashing.sha256().hashBytes(payload).toString());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/18340831/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
index 07c9a1c..271ea38 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
@@ -19,6 +19,8 @@
package org.apache.james.user.jpa.model;
+import java.nio.charset.StandardCharsets;
+import java.util.Optional;
import java.util.function.Function;
import javax.persistence.Basic;
@@ -30,10 +32,11 @@ import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Version;
-import org.apache.commons.codec.digest.DigestUtils;
import org.apache.james.user.api.model.User;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.hash.HashFunction;
+import com.google.common.hash.Hashing;
@Entity(name = "JamesUser")
@Table(name = "JAMES_USER")
@@ -57,23 +60,28 @@ public class JPAUser implements User {
return chooseHashFunction(alg).apply(password);
}
- interface HashFunction extends Function<String, String> {}
+ interface PasswordHashFunction extends Function<String, String> {}
- private static HashFunction chooseHashFunction(String algorithm) {
- if (algorithm == null) {
- return DigestUtils::md5Hex;
- }
+ private static PasswordHashFunction chooseHashFunction(String nullableAlgorithm) {
+ String algorithm = Optional.ofNullable(nullableAlgorithm).orElse("MD5");
switch (algorithm) {
- case "MD5":
- return DigestUtils::md5Hex;
case "NONE":
return (password) -> "password";
+ default:
+ return (password) -> chooseHashing(algorithm).hashString(password, StandardCharsets.UTF_8).toString();
+ }
+ }
+
+ private static HashFunction chooseHashing(String algorithm) {
+ switch (algorithm) {
+ case "MD5":
+ return Hashing.md5();
case "SHA-256":
- return DigestUtils::sha256Hex;
+ return Hashing.sha256();
case "SHA-512":
- return DigestUtils::sha512Hex;
+ return Hashing.sha512();
default:
- return DigestUtils::sha1Hex;
+ return Hashing.sha1();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/18340831/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/DockerClusterRabbitMQExtension.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/DockerClusterRabbitMQExtension.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/DockerClusterRabbitMQExtension.java
index 1f8cc0f..bbe9457 100644
--- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/DockerClusterRabbitMQExtension.java
+++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/DockerClusterRabbitMQExtension.java
@@ -18,7 +18,8 @@
****************************************************************/
package org.apache.james.queue.rabbitmq;
-import org.apache.commons.codec.digest.DigestUtils;
+import java.nio.charset.StandardCharsets;
+
import org.apache.james.util.Runnables;
import org.junit.jupiter.api.extension.AfterEachCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
@@ -30,6 +31,7 @@ import org.testcontainers.containers.Network;
import com.github.fge.lambdas.Throwing;
import com.google.common.collect.ImmutableList;
+import com.google.common.hash.Hashing;
import com.rabbitmq.client.Address;
public class DockerClusterRabbitMQExtension implements BeforeEachCallback, AfterEachCallback, ParameterResolver {
@@ -42,7 +44,7 @@ public class DockerClusterRabbitMQExtension implements BeforeEachCallback, After
@Override
public void beforeEach(ExtensionContext context) {
- String cookie = DigestUtils.sha1Hex("secret cookie here");
+ String cookie = Hashing.sha1().hashString("secret cookie here", StandardCharsets.UTF_8).toString();
network = Network.NetworkImpl.builder()
.enableIpv6(false)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[10/19] james-project git commit: JAMES-2472 Upgrade commons-daemon
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-daemon
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d4973c2e
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d4973c2e
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d4973c2e
Branch: refs/heads/master
Commit: d4973c2e8f85fc6c80b9b888d5ecdce417a1e1e0
Parents: ac0c84c
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:33:29 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d4973c2e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ab09f25..b1ebda4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -603,7 +603,7 @@
<geronimo-javamail.version>1.8.3</geronimo-javamail.version>
<slf4j.version>1.7.25</slf4j.version>
<servlet-api.version>2.4</servlet-api.version>
- <commons-daemon.version>1.0.10</commons-daemon.version>
+ <commons-daemon.version>1.1.0</commons-daemon.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-cli.version>1.4</commons-cli.version>
<commons-pool.version>1.6</commons-pool.version>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[18/19] james-project git commit: JAMES-2472 Remove unused
commons-beanutils
Posted by ma...@apache.org.
JAMES-2472 Remove unused commons-beanutils
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d8d20afd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d8d20afd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d8d20afd
Branch: refs/heads/master
Commit: d8d20afd7a4f757954b428fe39d1bfec336d1ba1
Parents: 88656ad
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:51:33 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 6 ------
1 file changed, 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d8d20afd/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5f642c8..dc4c02d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -609,7 +609,6 @@
<commons-configuration.version>1.9</commons-configuration.version>
<commons-dbcp.version>1.4</commons-dbcp.version>
<commons-net.version>3.6</commons-net.version>
- <commons-beanutils-core.version>1.8.3</commons-beanutils-core.version>
<commons-io.version>2.6</commons-io.version>
<commons-logging.version>1.1.1</commons-logging.version>
@@ -1736,11 +1735,6 @@
<version>${qdox.version}</version>
</dependency>
<dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils-core</artifactId>
- <version>${commons-beanutils-core.version}</version>
- </dependency>
- <dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>${commons-cli.version}</version>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[12/19] james-project git commit: JAMES-2472 Upgrade commons-io
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
index c69b2cc..b3001c5 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
@@ -26,7 +26,6 @@ import java.util.Locale;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.io.IOUtils;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
@@ -92,17 +91,13 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
@Override
public void removeUser(String name) throws UsersRepositoryException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getUsersRepositoryTable();
+ try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
Delete delete = new Delete(Bytes.toBytes(name));
table.delete(delete);
table.flushCommits();
} catch (IOException e) {
log.error("Error while deleting user from HBase", e);
throw new UsersRepositoryException("Error while deleting user from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -125,49 +120,39 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
@Override
public int countUsers() throws UsersRepositoryException {
- HTableInterface table = null;
- ResultScanner resultScanner = null;
- try {
- table = TablePool.getInstance().getUsersRepositoryTable();
+ try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
Scan scan = new Scan();
scan.addFamily(HUsersRepository.COLUMN_FAMILY_NAME);
scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
- resultScanner = table.getScanner(scan);
- int resultCount = 0;
- while (resultScanner.next() != null) {
- resultCount++;
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ int resultCount = 0;
+ while (resultScanner.next() != null) {
+ resultCount++;
+ }
+ return resultCount;
}
- return resultCount;
} catch (IOException e) {
log.error("Error while counting users from HBase", e);
throw new UsersRepositoryException("Error while counting users from HBase", e);
- } finally {
- IOUtils.closeQuietly(resultScanner);
- IOUtils.closeQuietly(table);
}
}
@Override
public Iterator<String> list() throws UsersRepositoryException {
List<String> list = new ArrayList<>();
- HTableInterface table = null;
- ResultScanner resultScanner = null;
- try {
- table = TablePool.getInstance().getUsersRepositoryTable();
+ try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
Scan scan = new Scan();
scan.addFamily(HUsersRepository.COLUMN_FAMILY_NAME);
scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
- resultScanner = table.getScanner(scan);
- Result result;
- while ((result = resultScanner.next()) != null) {
- list.add(Bytes.toString(result.getRow()));
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ Result result;
+ while ((result = resultScanner.next()) != null) {
+ list.add(Bytes.toString(result.getRow()));
+ }
}
} catch (IOException e) {
log.error("Error while scanning users from HBase", e);
throw new UsersRepositoryException("Error while scanning users from HBase", e);
- } finally {
- IOUtils.closeQuietly(resultScanner);
- IOUtils.closeQuietly(table);
}
return list.iterator();
}
@@ -187,9 +172,7 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
* @throws UsersRepositoryException
*/
private KeyValue getKeyValue(String username) throws UsersRepositoryException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getUsersRepositoryTable();
+ try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
Get get = new Get(Bytes.toBytes(username));
Result result = table.get(get);
KeyValue keyValue = result.getColumnLatest(HUsersRepository.COLUMN_FAMILY_NAME, HUsersRepository.COLUMN.PWD);
@@ -197,8 +180,6 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
} catch (IOException e) {
log.error("Error while counting users from HBase", e);
throw new UsersRepositoryException("Error while counting users from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -216,9 +197,7 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
throw new UsersRepositoryException(username + " already exists.");
}
}
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getUsersRepositoryTable();
+ try (HTableInterface table = TablePool.getInstance().getUsersRepositoryTable()) {
Put put = new Put(Bytes.toBytes(username));
put.add(HUsersRepository.COLUMN_FAMILY_NAME, HUsersRepository.COLUMN.PWD,
Bytes.toBytes(user.getHashedPassword()));
@@ -227,8 +206,6 @@ public class HBaseUsersRepository extends AbstractUsersRepository {
} catch (IOException e) {
log.error("Error while adding user in HBase", e);
throw new UsersRepositoryException("Error while adding user in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
index 0f57114..c2f8218 100644
--- a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
+++ b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
@@ -54,7 +54,6 @@ import javax.mail.internet.MimeMessage;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.commons.cnd.CndImporter;
import org.apache.jackrabbit.util.ISO9075;
import org.apache.jackrabbit.util.Text;
@@ -520,14 +519,12 @@ public class JCRMailRepository extends AbstractMailRepository implements MailRep
}
PipedInputStream input = new PipedInputStream();
- final PipedOutputStream output = new PipedOutputStream(input);
+ PipedOutputStream output = new PipedOutputStream(input);
new Thread(() -> {
- try {
- message.writeTo(output);
+ try (PipedOutputStream stream = output) {
+ message.writeTo(stream);
} catch (Exception e) {
LOGGER.info("Exception ignored", e);
- } finally {
- IOUtils.closeQuietly(output);
}
}).start();
node.setProperty("jcr:data", input);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
index 9c2723e..8dc44de 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
@@ -21,9 +21,7 @@ package org.apache.james.jmap.crypto;
import static org.assertj.core.api.Assertions.assertThat;
-import java.nio.charset.StandardCharsets;
import java.security.KeyStoreException;
-import java.util.Base64;
import org.apache.james.jmap.JMAPConfiguration;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
index ec6c2d8..7a631f3 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
@@ -28,7 +28,6 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.api.ImapSessionState;
import org.apache.james.imap.api.process.ImapSession;
@@ -117,12 +116,20 @@ public class ImapRequestFrameDecoder extends FrameDecoder implements NettyConsta
buffer.readBytes(out, amount);
written += amount;
} catch (Exception e) {
- IOUtils.closeQuietly(out);
+ try {
+ out.close();
+ } catch (IOException ignored) {
+ //ignore exception during close
+ }
throw e;
}
// Check if all needed data was streamed to the file.
if (written == size) {
- IOUtils.closeQuietly(out);
+ try {
+ out.close();
+ } catch (IOException ignored) {
+ //ignore exception during close
+ }
reader = new NettyStreamImapRequestLineReader(channel, new FileInputStream(f) {
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
index 4c1363e..cc82148 100644
--- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
+++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
@@ -47,7 +47,6 @@ import javax.mail.MessagingException;
import javax.mail.util.SharedFileInputStream;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.james.lifecycle.api.Disposable;
import org.apache.james.lifecycle.api.LifecycleUtil;
import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
@@ -173,9 +172,6 @@ public class FileMailQueue implements ManageableMailQueue {
@Override
public void enQueue(Mail mail, long delay, TimeUnit unit) throws MailQueueException {
final String key = mail.getName() + "-" + COUNTER.incrementAndGet();
- FileOutputStream out = null;
- FileOutputStream foout = null;
- ObjectOutputStream oout = null;
try {
int i = RANDOM.nextInt(SPLITCOUNT) + 1;
@@ -185,19 +181,20 @@ public class FileMailQueue implements ManageableMailQueue {
if (delay > 0) {
mail.setAttribute(NEXT_DELIVERY, System.currentTimeMillis() + unit.toMillis(delay));
}
- foout = new FileOutputStream(item.getObjectFile());
- oout = new ObjectOutputStream(foout);
- oout.writeObject(mail);
- oout.flush();
- if (sync) {
- foout.getFD().sync();
+ try (FileOutputStream foout = new FileOutputStream(item.getObjectFile());
+ ObjectOutputStream oout = new ObjectOutputStream(foout)) {
+ oout.writeObject(mail);
+ oout.flush();
+ if (sync) {
+ foout.getFD().sync();
+ }
}
- out = new FileOutputStream(item.getMessageFile());
-
- mail.getMessage().writeTo(out);
- out.flush();
- if (sync) {
- out.getFD().sync();
+ try (FileOutputStream out = new FileOutputStream(item.getMessageFile())) {
+ mail.getMessage().writeTo(out);
+ out.flush();
+ if (sync) {
+ out.getFD().sync();
+ }
}
keyMappings.put(key, item);
@@ -221,10 +218,6 @@ public class FileMailQueue implements ManageableMailQueue {
//TODO: Think about exception handling in detail
} catch (IOException | MessagingException | InterruptedException e) {
throw new MailQueueException("Unable to enqueue mail", e);
- } finally {
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(oout);
- IOUtils.closeQuietly(foout);
}
}
@@ -247,44 +240,41 @@ public class FileMailQueue implements ManageableMailQueue {
}
final String key = k;
final FileItem fitem = item;
- ObjectInputStream oin = null;
try {
final File objectFile = new File(fitem.getObjectFile());
final File msgFile = new File(fitem.getMessageFile());
- oin = new ObjectInputStream(new FileInputStream(objectFile));
- final Mail mail = (Mail) oin.readObject();
- mail.setMessage(new MimeMessageCopyOnWriteProxy(new FileMimeMessageSource(msgFile)));
- MailQueueItem fileMailQueueItem = new MailQueueItem() {
-
- @Override
- public Mail getMail() {
- return mail;
- }
-
- @Override
- public void done(boolean success) throws MailQueueException {
- if (!success) {
- try {
- inmemoryQueue.put(key);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- throw new MailQueueException("Unable to rollback", e);
- }
- } else {
- fitem.delete();
- keyMappings.remove(key);
+ try (ObjectInputStream oin = new ObjectInputStream(new FileInputStream(objectFile))) {
+ final Mail mail = (Mail) oin.readObject();
+ mail.setMessage(new MimeMessageCopyOnWriteProxy(new FileMimeMessageSource(msgFile)));
+ MailQueueItem fileMailQueueItem = new MailQueueItem() {
+
+ @Override
+ public Mail getMail() {
+ return mail;
}
- LifecycleUtil.dispose(mail);
- }
- };
- return mailQueueItemDecoratorFactory.decorate(fileMailQueueItem);
+ @Override
+ public void done(boolean success) throws MailQueueException {
+ if (!success) {
+ try {
+ inmemoryQueue.put(key);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new MailQueueException("Unable to rollback", e);
+ }
+ } else {
+ fitem.delete();
+ keyMappings.remove(key);
+ }
+ LifecycleUtil.dispose(mail);
+ }
+ };
+ return mailQueueItemDecoratorFactory.decorate(fileMailQueueItem);
+ }
// TODO: Think about exception handling in detail
} catch (IOException | ClassNotFoundException | MessagingException e) {
throw new MailQueueException("Unable to dequeue", e);
- } finally {
- IOUtils.closeQuietly(oin);
}
} catch (InterruptedException e) {
@@ -325,7 +315,11 @@ public class FileMailQueue implements ManageableMailQueue {
@Override
public void dispose() {
- IOUtils.closeQuietly(in);
+ try {
+ in.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
file = null;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
index fa53de9..dd7c4dc 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
@@ -25,7 +25,6 @@ import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.mail.util.SharedByteArrayInputStream;
-import org.apache.commons.io.IOUtils;
import org.apache.james.lifecycle.api.Disposable;
import org.apache.james.lifecycle.api.LifecycleUtil;
import org.apache.james.server.core.MimeMessageSource;
@@ -70,7 +69,11 @@ public class MimeMessageObjectMessageSource extends MimeMessageSource implements
@Override
public void dispose() {
- IOUtils.closeQuietly(in);
+ try {
+ in.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
LifecycleUtil.dispose(in);
try {
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
index 98b79c3..b03492c 100644
--- a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
+++ b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
@@ -23,7 +23,6 @@ import java.io.Closeable;
import java.io.IOException;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.net.imap.IMAPClient;
import org.junit.rules.ExternalResource;
@@ -183,7 +182,11 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
@Override
protected void after() {
- IOUtils.closeQuietly(this);
+ try {
+ this.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
}
public void copyFirstMessage(String destMailbox) throws IOException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java b/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
index c17be4d..45121c7 100644
--- a/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
+++ b/server/testing/src/main/java/org/apache/james/utils/MockSpamd.java
@@ -66,15 +66,14 @@ public class MockSpamd implements Runnable {
@Override
public void run() {
- try (Socket spamd = socket.accept();
+ try (ServerSocket serverSocket = socket;
+ Socket spamd = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(spamd.getInputStream()));
OutputStream out = spamd.getOutputStream()) {
handleRequest(in, out);
} catch (IOException e) {
LOGGER.error("Exception while handling answer", e);
- } finally {
- IOUtils.closeQuietly(socket);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[08/19] james-project git commit: JAMES-2472 Upgrade commons-lang
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-lang
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/fb2e2150
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/fb2e2150
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/fb2e2150
Branch: refs/heads/master
Commit: fb2e215001bddf5420ac9681f6d62db38eebf7cd
Parents: 8b94fa5
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:40:10 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/fb2e2150/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7e3e378..68a509a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -652,7 +652,7 @@
<apache-commons-io.version>1.3.2</apache-commons-io.version>
<jutf7.version>1.0.0</jutf7.version>
<plugin.mailetdocs.version>0.1</plugin.mailetdocs.version>
- <commons-lang3.version>3.6</commons-lang3.version>
+ <commons-lang3.version>3.7</commons-lang3.version>
<httpclient-osgi.version>4.5.1</httpclient-osgi.version>
<!-- maven-mailetdocs-plugin artifacts -->
<maven-artifact.version>3.0-alpha-1</maven-artifact.version>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[05/19] james-project git commit: JAMES-2472 implement tests for
password hashing
Posted by ma...@apache.org.
JAMES-2472 implement tests for password hashing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c1403407
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c1403407
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c1403407
Branch: refs/heads/master
Commit: c1403407a35ba2a2a06e8c99804a2e2fa748c26e
Parents: 3a800d2
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jul 17 16:00:55 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
.../apache/james/user/jpa/model/JPAUser.java | 13 ++--
.../james/user/jpa/model/JPAUserTest.java | 63 ++++++++++++++++++++
2 files changed, 70 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c1403407/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
index c7bca5d..5e2c1f1 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
@@ -31,6 +31,8 @@ import javax.persistence.Version;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.james.user.api.model.User;
+import com.google.common.annotations.VisibleForTesting;
+
@Entity(name = "JamesUser")
@Table(name = "JAMES_USER")
@NamedQueries({
@@ -44,13 +46,12 @@ public class JPAUser implements User {
/**
* Hash password.
*
- * @param username
- * not null
* @param password
* not null
* @return not null
*/
- private static String hashPassword(String username, String password, String alg) {
+ @VisibleForTesting
+ static String hashPassword(String password, String alg) {
String newPass;
if (alg == null || alg.equals("MD5")) {
newPass = DigestUtils.md5Hex(password);
@@ -91,7 +92,7 @@ public class JPAUser implements User {
super();
this.name = userName;
this.alg = alg;
- this.password = hashPassword(userName, password, alg);
+ this.password = hashPassword(password, alg);
}
@Override
@@ -105,7 +106,7 @@ public class JPAUser implements User {
if (newPass == null) {
result = false;
} else {
- password = hashPassword(name, newPass, alg);
+ password = hashPassword(newPass, alg);
result = true;
}
return result;
@@ -117,7 +118,7 @@ public class JPAUser implements User {
if (pass == null) {
result = password == null;
} else {
- result = password != null && password.equals(hashPassword(name, pass, alg));
+ result = password != null && password.equals(hashPassword(pass, alg));
}
return result;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c1403407/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java b/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
new file mode 100644
index 0000000..2e087aa
--- /dev/null
+++ b/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
@@ -0,0 +1,63 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.user.jpa.model;
+
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+class JPAUserTest {
+
+ private static final String RANDOM_PASSWORD = "baeMiqu7";
+
+ @Test
+ void hashPasswordShouldBeNoopWhenNone() {
+ //I doubt the expected result was the author intent
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "NONE")).isEqualTo("password");
+ }
+
+ @Test
+ void hashPasswordShouldHashWhenMD5() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "MD5")).isEqualTo("702000e50c9fd3755b8fc20ecb07d1ac");
+ }
+
+ @Test
+ void hashPasswordShouldHashWhenSHA1() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "SHA1")).isEqualTo("05dbbaa7b4bcae245f14d19ae58ef1b80adf3363");
+ }
+
+ @Test
+ void hashPasswordShouldHashWhenSHA256() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "SHA-256")).isEqualTo("6d06c72a578fe0b78ede2393b07739831a287774dcad0b18bc4bde8b0c948b82");
+ }
+
+ @Test
+ void hashPasswordShouldHashWhenSHA512() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "SHA-512")).isEqualTo("f9cc82d1c04bb2ce0494a51f7a21d07ac60b6f79a8a55397f454603acac29d8589fdfd694d5c01ba01a346c76b090abca9ad855b5b0c92c6062ad6d93cdc0d03");
+ }
+
+ @Test
+ void hashPasswordShouldSha1WhenRandomString() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, "random")).isEqualTo("05dbbaa7b4bcae245f14d19ae58ef1b80adf3363");
+ }
+
+ @Test
+ void hashPasswordShouldMD5WhenNull() {
+ Assertions.assertThat(JPAUser.hashPassword(RANDOM_PASSWORD, null)).isEqualTo("702000e50c9fd3755b8fc20ecb07d1ac");
+ }
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[14/19] james-project git commit: JAMES-2472 Rat plugin complained
while launching maven
Posted by ma...@apache.org.
JAMES-2472 Rat plugin complained while launching maven
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c55f440f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c55f440f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c55f440f
Branch: refs/heads/master
Commit: c55f440f7078c28bb7758caef5840f31ea5146be
Parents: d8d20af
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:59:49 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
.../icalendar/src/test/resources/logback-test.xml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c55f440f/mailet/icalendar/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/test/resources/logback-test.xml b/mailet/icalendar/src/test/resources/logback-test.xml
index 705a933..9a8525d 100644
--- a/mailet/icalendar/src/test/resources/logback-test.xml
+++ b/mailet/icalendar/src/test/resources/logback-test.xml
@@ -1,3 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[04/19] james-project git commit: JAMES-2472 refactor hashPassword
Posted by ma...@apache.org.
JAMES-2472 refactor hashPassword
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/18f5da3a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/18f5da3a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/18f5da3a
Branch: refs/heads/master
Commit: 18f5da3aac7d298caaebe349713059060b8497c3
Parents: c140340
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jul 17 16:06:42 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
.../apache/james/user/jpa/model/JPAUser.java | 34 +++++++++++++-------
1 file changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/18f5da3a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
index 5e2c1f1..07c9a1c 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
@@ -19,6 +19,8 @@
package org.apache.james.user.jpa.model;
+import java.util.function.Function;
+
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -52,19 +54,27 @@ public class JPAUser implements User {
*/
@VisibleForTesting
static String hashPassword(String password, String alg) {
- String newPass;
- if (alg == null || alg.equals("MD5")) {
- newPass = DigestUtils.md5Hex(password);
- } else if (alg.equals("NONE")) {
- newPass = "password";
- } else if (alg.equals("SHA-256")) {
- newPass = DigestUtils.sha256Hex(password);
- } else if (alg.equals("SHA-512")) {
- newPass = DigestUtils.sha512Hex(password);
- } else {
- newPass = DigestUtils.sha1Hex(password);
+ return chooseHashFunction(alg).apply(password);
+ }
+
+ interface HashFunction extends Function<String, String> {}
+
+ private static HashFunction chooseHashFunction(String algorithm) {
+ if (algorithm == null) {
+ return DigestUtils::md5Hex;
+ }
+ switch (algorithm) {
+ case "MD5":
+ return DigestUtils::md5Hex;
+ case "NONE":
+ return (password) -> "password";
+ case "SHA-256":
+ return DigestUtils::sha256Hex;
+ case "SHA-512":
+ return DigestUtils::sha512Hex;
+ default:
+ return DigestUtils::sha1Hex;
}
- return newPass;
}
/** Prevents concurrent modification */
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[16/19] james-project git commit: JAMES-2472 remove properties for
versions that are used only once
Posted by ma...@apache.org.
JAMES-2472 remove properties for versions that are used only once
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e8ae4464
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e8ae4464
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e8ae4464
Branch: refs/heads/master
Commit: e8ae4464a31edb37135401f8b68d963a7b146777
Parents: 644b4a9
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Jul 18 16:40:38 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e8ae4464/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 42f53e4..5de3072 100644
--- a/pom.xml
+++ b/pom.xml
@@ -603,13 +603,6 @@
<geronimo-javamail.version>1.8.3</geronimo-javamail.version>
<slf4j.version>1.7.25</slf4j.version>
<servlet-api.version>2.4</servlet-api.version>
- <commons-daemon.version>1.1.0</commons-daemon.version>
- <commons-lang.version>2.6</commons-lang.version>
- <commons-cli.version>1.4</commons-cli.version>
- <commons-configuration.version>1.9</commons-configuration.version>
- <commons-dbcp.version>1.4</commons-dbcp.version>
- <commons-net.version>3.6</commons-net.version>
- <commons-io.version>2.6</commons-io.version>
<commons-logging.version>1.1.1</commons-logging.version>
<dnsjava.version>2.1.1</dnsjava.version>
@@ -647,10 +640,8 @@
<es-reporter.version>2.2.0</es-reporter.version>
<guava.version>19.0</guava.version>
- <apache-commons-io.version>1.3.2</apache-commons-io.version>
<jutf7.version>1.0.0</jutf7.version>
<plugin.mailetdocs.version>0.1</plugin.mailetdocs.version>
- <commons-lang3.version>3.7</commons-lang3.version>
<httpclient-osgi.version>4.5.1</httpclient-osgi.version>
<!-- maven-mailetdocs-plugin artifacts -->
<maven-artifact.version>3.0-alpha-1</maven-artifact.version>
@@ -1737,12 +1728,12 @@
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
- <version>${commons-cli.version}</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
- <version>${commons-configuration.version}</version>
+ <version>1.9</version>
<exclusions>
<exclusion>
<groupId>dom4j</groupId>
@@ -1773,12 +1764,12 @@
<dependency>
<groupId>commons-daemon</groupId>
<artifactId>commons-daemon</artifactId>
- <version>${commons-daemon.version}</version>
+ <version>1.1.0</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
- <version>${commons-dbcp.version}</version>
+ <version>1.4</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
@@ -1789,7 +1780,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>${commons-io.version}</version>
+ <version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
@@ -1817,7 +1808,7 @@
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
- <version>${commons-net.version}</version>
+ <version>3.6</version>
</dependency>
<dependency>
<groupId>concurrent</groupId>
@@ -1984,7 +1975,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>${commons-lang3.version}</version>
+ <version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[19/19] james-project git commit: JAMES-2472 Upgrade commons-text
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-text
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/03ee14c8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/03ee14c8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/03ee14c8
Branch: refs/heads/master
Commit: 03ee14c835ef68c103649d20738ebe4994ede4ec
Parents: fb2e215
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:41:23 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/03ee14c8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 68a509a..fbcd856 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2015,7 +2015,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
- <version>1.1</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[17/19] james-project git commit: JAMES-2472 Upgrade commons-net
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-net
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e9a25d0d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e9a25d0d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e9a25d0d
Branch: refs/heads/master
Commit: e9a25d0dd9d70076d4c521cadbdeb47cfed85c42
Parents: d4973c2
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:34:15 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
.../java/org/apache/james/utils/SMTPMessageSender.java | 12 ++----------
2 files changed, 3 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a25d0d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b1ebda4..4743e1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -609,7 +609,7 @@
<commons-pool.version>1.6</commons-pool.version>
<commons-configuration.version>1.9</commons-configuration.version>
<commons-dbcp.version>1.4</commons-dbcp.version>
- <commons-net.version>3.2</commons-net.version>
+ <commons-net.version>3.6</commons-net.version>
<commons-beanutils-core.version>1.8.3</commons-beanutils-core.version>
<commons-io.version>2.5</commons-io.version>
<commons-logging.version>1.1.1</commons-logging.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9a25d0d/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java b/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
index f3d1fb7..0ae1930 100644
--- a/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
+++ b/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
@@ -40,16 +40,8 @@ import com.github.fge.lambdas.Throwing;
public class SMTPMessageSender extends ExternalResource implements Closeable {
- private static AuthenticatingSMTPClient createClient() {
- try {
- return new AuthenticatingSMTPClient();
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException(e);
- }
- }
-
public static SMTPMessageSender noAuthentication(String ip, int port, String senderDomain) throws IOException {
- AuthenticatingSMTPClient smtpClient = createClient();
+ AuthenticatingSMTPClient smtpClient = new AuthenticatingSMTPClient();
smtpClient.connect(ip, port);
return new SMTPMessageSender(smtpClient, senderDomain);
}
@@ -73,7 +65,7 @@ public class SMTPMessageSender extends ExternalResource implements Closeable {
}
public SMTPMessageSender(String senderDomain) {
- this(createClient(), senderDomain);
+ this(new AuthenticatingSMTPClient(), senderDomain);
}
public SMTPMessageSender connect(String ip, int port) throws IOException {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[15/19] james-project git commit: JAMES-2472 Update and remove
uneeded production pdfbox dependency
Posted by ma...@apache.org.
JAMES-2472 Update and remove uneeded production pdfbox dependency
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/644b4a9e
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/644b4a9e
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/644b4a9e
Branch: refs/heads/master
Commit: 644b4a9e6134fa7be7d47bb7221a9b5c2c941870
Parents: c55f440
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 11:11:36 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
server/container/guice/cassandra-guice/pom.xml | 1 +
server/container/guice/memory-guice/pom.xml | 9 +++++----
.../cassandra-jmap-integration-testing/pom.xml | 5 +++++
.../memory-jmap-integration-testing/pom.xml | 5 +++++
5 files changed, 17 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/644b4a9e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index dc4c02d..42f53e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2221,7 +2221,7 @@
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
- <version>2.0.7</version>
+ <version>2.0.11</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/644b4a9e/server/container/guice/cassandra-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index ddac592..4cf4b50 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -252,6 +252,7 @@
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/644b4a9e/server/container/guice/memory-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/pom.xml b/server/container/guice/memory-guice/pom.xml
index af6e184..9f3c4ba 100644
--- a/server/container/guice/memory-guice/pom.xml
+++ b/server/container/guice/memory-guice/pom.xml
@@ -143,10 +143,6 @@
<artifactId>james-server-queue-memory</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>pdfbox</artifactId>
- </dependency>
- <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
@@ -157,6 +153,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/644b4a9e/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/pom.xml b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/pom.xml
index d9a80c0..03fa0ca 100644
--- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/pom.xml
+++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/pom.xml
@@ -158,6 +158,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/644b4a9e/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/pom.xml b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/pom.xml
index 811be70..0294e25 100644
--- a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/pom.xml
+++ b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/pom.xml
@@ -127,6 +127,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[13/19] james-project git commit: JAMES-2472 Upgrade commons-io
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-io
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8b94fa51
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8b94fa51
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8b94fa51
Branch: refs/heads/master
Commit: 8b94fa51a15740136386f0927f27c3e0b6ac5b0c
Parents: e9a25d0
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:38:10 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
.../james/mailbox/maildir/MaildirFolder.java | 234 +++++++------------
.../maildir/mail/MaildirMessageMapper.java | 19 +-
.../maildir/mail/model/MaildirMessage.java | 10 +-
.../mailbox/store/StoreMessageManager.java | 225 +++++++++---------
.../james/transport/mailets/ClamAVScan.java | 140 +++++------
.../james/transport/mailets/HeadersToHTTP.java | 18 +-
.../transport/mailets/SerialiseToHTTP.java | 11 +-
.../protocol/FileProtocolSessionBuilder.java | 19 +-
.../GenericSimpleScriptedTestProtocol.java | 14 +-
.../james/mpt/host/ManageSieveSession.java | 3 +-
mpt/pom.xml | 1 -
pom.xml | 2 +-
.../core/MimeMessageInputStreamSource.java | 12 +-
.../james/server/core/MimeMessageUtil.java | 6 +-
.../james/server/core/MimeMessageWrapper.java | 59 +++--
.../filesystem/api/AbstractFileSystemTest.java | 15 +-
.../file/SieveFileRepository.java | 12 +-
.../james/domainlist/hbase/HBaseDomainList.java | 36 +--
.../rrt/hbase/HBaseRecipientRewriteTable.java | 58 ++---
.../james/user/hbase/HBaseUsersRepository.java | 55 ++---
.../mailrepository/jcr/JCRMailRepository.java | 9 +-
.../jmap/crypto/JamesSignatureHandlerTest.java | 2 -
.../netty/ImapRequestFrameDecoder.java | 13 +-
.../apache/james/queue/file/FileMailQueue.java | 94 ++++----
.../jms/MimeMessageObjectMessageSource.java | 7 +-
.../apache/james/utils/IMAPMessageReader.java | 7 +-
.../java/org/apache/james/utils/MockSpamd.java | 5 +-
27 files changed, 445 insertions(+), 641 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
index 06a382f..4982726 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
@@ -25,9 +25,7 @@ import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
-import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
@@ -41,7 +39,6 @@ import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxPathLocker.LockAwareExecution;
@@ -221,14 +218,13 @@ public class MaildirFolder {
locker.executeWithLock(session, path,
(LockAwareExecution<Void>) () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- if (!uidList.exists()) {
- createUidFile();
- }
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+
+ if (!uidList.exists()) {
+ createUidFile();
+ }
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
if (line != null) {
readUidListHeader(line);
@@ -236,9 +232,6 @@ public class MaildirFolder {
return null;
} catch (IOException e) {
throw new MailboxException("Unable to read last uid", e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
@@ -279,17 +272,11 @@ public class MaildirFolder {
if (!validityFile.exists()) {
return resetUidValidity();
}
- FileInputStream fis = null;
- InputStreamReader isr = null;
- try {
- fis = new FileInputStream(validityFile);
- isr = new InputStreamReader(fis);
+ try (FileInputStream fis = new FileInputStream(validityFile);
+ InputStreamReader isr = new InputStreamReader(fis)) {
char[] uidValidity = new char[20];
int len = isr.read(uidValidity);
return Long.parseLong(String.valueOf(uidValidity, 0, len).trim());
- } finally {
- IOUtils.closeQuietly(isr);
- IOUtils.closeQuietly(fis);
}
}
@@ -303,11 +290,8 @@ public class MaildirFolder {
if (!validityFile.createNewFile()) {
throw new IOException("Could not create file " + validityFile);
}
- FileOutputStream fos = new FileOutputStream(validityFile);
- try {
+ try (FileOutputStream fos = new FileOutputStream(validityFile)) {
fos.write(String.valueOf(uidValidity).getBytes());
- } finally {
- IOUtils.closeQuietly(fos);
}
}
@@ -334,12 +318,10 @@ public class MaildirFolder {
public MaildirMessageName getMessageNameByUid(final MailboxSession session, final MessageUid uid) throws MailboxException {
return locker.executeWithLock(session, path, () -> {
- FileReader fileReader = null;
- BufferedReader reader = null;
File uidList = uidFile;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String uidString = String.valueOf(uid.asLong());
String line = reader.readLine(); // the header
int lineNumber = 1; // already read the first line
@@ -363,9 +345,6 @@ public class MaildirFolder {
return null;
} catch (IOException e) {
throw new MailboxException("Unable to read messagename for uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
}
@@ -482,30 +461,24 @@ public class MaildirFolder {
for (String file : allFiles) {
lines.add(String.valueOf(getNextUid().asLong()) + " " + file);
}
- PrintWriter pw = new PrintWriter(uidList);
- try {
+
+ try (PrintWriter pw = new PrintWriter(uidList)) {
pw.println(createUidListHeader());
for (String line : lines) {
pw.println(line);
}
- } finally {
- IOUtils.closeQuietly(pw);
}
} else {
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
- String line = reader.readLine();
- // the first line in the file contains the next uid and message count
- while ((line = reader.readLine()) != null) {
- lines.add(line);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
+ reader.readLine();
+ // the first line in the file contains the next uid and message count
+ String line;
+ while ((line = reader.readLine()) != null) {
+ lines.add(line);
+ }
}
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
- }
}
int counter = 0;
String line;
@@ -551,7 +524,6 @@ public class MaildirFolder {
private Map<MessageUid, MaildirMessageName> createUidFile() throws MailboxException {
final Map<MessageUid, MaildirMessageName> uidMap = new TreeMap<>();
File uidList = uidFile;
- PrintWriter pw = null;
try {
if (!uidList.createNewFile()) {
throw new IOException("Could not create file " + uidList);
@@ -564,16 +536,15 @@ public class MaildirFolder {
for (String file : allFiles) {
uidMap.put(getNextUid(), newMaildirMessageName(MaildirFolder.this, file));
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
- pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
+ pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to create uid file", e);
- } finally {
- IOUtils.closeQuietly(pw);
- }
+ }
return uidMap;
}
@@ -585,12 +556,8 @@ public class MaildirFolder {
String[] newFiles = newFolder.list();
messageCount = curFiles.length + newFiles.length;
HashMap<String, MessageUid> reverseUidMap = new HashMap<>(messageCount);
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter pw = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
String line = reader.readLine();
// the first line in the file contains the next uid and message count
if (line != null) {
@@ -619,18 +586,15 @@ public class MaildirFolder {
}
uidMap.put(uid, messageName);
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
- pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (Entry<MessageUid, MaildirMessageName> entry : uidMap.entrySet()) {
+ pw.println(String.valueOf(entry.getKey().asLong()) + " " + entry.getValue().getFullName());
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to update uid file", e);
- } finally {
- IOUtils.closeQuietly(pw);
- IOUtils.closeQuietly(fileReader);
- IOUtils.closeQuietly(reader);
- }
+ }
return uidMap;
}
@@ -638,11 +602,9 @@ public class MaildirFolder {
final Map<MessageUid, MaildirMessageName> uidMap = new HashMap<>();
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
// the first line in the file contains the next uid and message
// count
@@ -673,9 +635,6 @@ public class MaildirFolder {
}
} catch (IOException e) {
throw new MailboxException("Unable to read uid file", e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
messageCount = uidMap.size();
@@ -762,29 +721,28 @@ public class MaildirFolder {
return locker.executeWithLock(session, path, () -> {
File uidList = uidFile;
MessageUid uid = null;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter pw = null;
try {
if (uidList.isFile()) {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
- String line = reader.readLine();
- // the first line in the file contains the next uid and message count
- if (line != null) {
- readUidListHeader(line);
- }
- ArrayList<String> lines = new ArrayList<>();
- while ((line = reader.readLine()) != null) {
- lines.add(line);
- }
- uid = getNextUid();
- lines.add(String.valueOf(uid.asLong()) + " " + name);
- messageCount++;
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (String entry : lines) {
- pw.println(entry);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+ String line = reader.readLine();
+ // the first line in the file contains the next uid and message count
+ if (line != null) {
+ readUidListHeader(line);
+ }
+ ArrayList<String> lines = new ArrayList<>();
+ while ((line = reader.readLine()) != null) {
+ lines.add(line);
+ }
+ uid = getNextUid();
+ lines.add(String.valueOf(uid.asLong()) + " " + name);
+ messageCount++;
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (String entry : lines) {
+ pw.println(entry);
+ }
+ }
}
} else {
// create the file
@@ -804,18 +762,15 @@ public class MaildirFolder {
uid = theUid;
}
}
- pw = new PrintWriter(uidList);
- pw.println(createUidListHeader());
- for (String line : lines) {
- pw.println(line);
+ try (PrintWriter pw = new PrintWriter(uidList)) {
+ pw.println(createUidListHeader());
+ for (String line : lines) {
+ pw.println(line);
+ }
}
}
} catch (IOException e) {
throw new MailboxException("Unable to append msg", e);
- } finally {
- IOUtils.closeQuietly(pw);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
if (uid == null) {
throw new MailboxException("Unable to append msg");
@@ -836,12 +791,9 @@ public class MaildirFolder {
public void update(MailboxSession session, final MessageUid uid, final String messageName) throws MailboxException {
locker.executeWithLock(session, path, (LockAwareExecution<Void>) () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter writer = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
String line = reader.readLine();
readUidListHeader(line);
ArrayList<String> lines = new ArrayList<>();
@@ -851,17 +803,14 @@ public class MaildirFolder {
}
lines.add(line);
}
- writer = new PrintWriter(uidList);
- writer.println(createUidListHeader());
- for (String entry : lines) {
- writer.println(entry);
+ try (PrintWriter writer = new PrintWriter(uidList)) {
+ writer.println(createUidListHeader());
+ for (String entry : lines) {
+ writer.println(entry);
+ }
}
} catch (IOException e) {
throw new MailboxException("Unable to update msg with uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
return null;
}, true);
@@ -878,13 +827,10 @@ public class MaildirFolder {
public MaildirMessageName delete(final MailboxSession session, final MessageUid uid) throws MailboxException {
return locker.executeWithLock(session, path, () -> {
File uidList = uidFile;
- FileReader fileReader = null;
- BufferedReader reader = null;
- PrintWriter writer = null;
MaildirMessageName deletedMessage = null;
- try {
- fileReader = new FileReader(uidList);
- reader = new BufferedReader(fileReader);
+ try (FileReader fileReader = new FileReader(uidList);
+ BufferedReader reader = new BufferedReader(fileReader)) {
+
readUidListHeader(reader.readLine());
// It may be possible that message count is 0 so we should better not try to calculate the size of the ArrayList
@@ -909,20 +855,17 @@ public class MaildirFolder {
}
if (deletedMessage != null) {
FileUtils.forceDelete(deletedMessage.getFile());
- writer = new PrintWriter(uidList);
- writer.println(createUidListHeader());
- for (String entry : lines) {
- writer.println(entry);
+ try (PrintWriter writer = new PrintWriter(uidList)) {
+ writer.println(createUidListHeader());
+ for (String entry : lines) {
+ writer.println(entry);
+ }
}
}
return deletedMessage;
} catch (IOException e) {
throw new MailboxException("Unable to delete msg with uid " + uid, e);
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(fileReader);
}
}, true);
@@ -954,16 +897,12 @@ public class MaildirFolder {
// FIXME Do we need this locking?
return locker.executeWithLock(session, path, (LockAwareExecution<MailboxACL>) () -> {
File f = aclFile;
- InputStream in = null;
Properties props = new Properties();
if (f.exists()) {
- try {
- in = new FileInputStream(f);
+ try (FileInputStream in = new FileInputStream(f)) {
props.load(in);
} catch (IOException e) {
throw new MailboxException("Unable to read last ACL from " + f.getAbsolutePath(), e);
- } finally {
- IOUtils.closeQuietly(in);
}
}
@@ -990,7 +929,7 @@ public class MaildirFolder {
@Override
public Void execute() throws MailboxException {
File f = aclFile;
- OutputStream out = null;
+
Properties props = new Properties();
Map<EntryKey, Rfc4314Rights> entries = acl.getEntries();
if (entries != null) {
@@ -999,13 +938,10 @@ public class MaildirFolder {
}
}
if (f.exists()) {
- try {
- out = new FileOutputStream(f);
+ try (FileOutputStream out = new FileOutputStream(f)) {
props.store(out, "written by " + getClass().getName());
} catch (IOException e) {
throw new MailboxException("Unable to read last ACL from " + f.getAbsolutePath(), e);
- } finally {
- IOUtils.closeQuietly(out);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
index dd4697d..2bd14db 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
@@ -35,7 +35,6 @@ import javax.mail.Flags;
import javax.mail.Flags.Flag;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
@@ -277,24 +276,20 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
// billion years...
MaildirMessageName messageName = MaildirMessageName.createUniqueName(folder, message.getFullContentOctets());
File messageFile = new File(tmpFolder, messageName.getFullName());
- FileOutputStream fos = null;
- InputStream input = null;
try {
if (!messageFile.createNewFile()) {
throw new IOException("Could not create file " + messageFile);
}
- fos = new FileOutputStream(messageFile);
- input = message.getFullContent();
- byte[] b = new byte[BUF_SIZE];
- int len = 0;
- while ((len = input.read(b)) != -1) {
- fos.write(b, 0, len);
+ try (FileOutputStream fos = new FileOutputStream(messageFile);
+ InputStream input = message.getFullContent()) {
+ byte[] b = new byte[BUF_SIZE];
+ int len = 0;
+ while ((len = input.read(b)) != -1) {
+ fos.write(b, 0, len);
+ }
}
} catch (IOException ioe) {
throw new MailboxException("Failure while save MailboxMessage " + message + " in Mailbox " + mailbox, ioe);
- } finally {
- IOUtils.closeQuietly(fos);
- IOUtils.closeQuietly(input);
}
File newMessageFile = null;
// delivered via SMTP, goes to ./new without flags
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index b1f669d..2e2e7f2 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -120,22 +120,16 @@ public class MaildirMessage implements Message {
}
if ("text".equalsIgnoreCase(mediaType)) {
long lines = -1;
- final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
- try {
+ try (CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream())) {
bodyStream.readAll();
lines = bodyStream.getLineCount();
- } finally {
- IOUtils.closeQuietly(bodyStream);
}
next = parser.next();
if (next == EntityState.T_EPILOGUE) {
- final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
- try {
+ try (CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream())) {
epilogueStream.readAll();
lines += epilogueStream.getLineCount();
- } finally {
- IOUtils.closeQuietly(epilogueStream);
}
}
propertyBuilder.setTextualLineCount(lines);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index c3bf699..0c6c156 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -37,7 +37,6 @@ import javax.mail.Flags.Flag;
import javax.mail.internet.SharedInputStream;
import javax.mail.util.SharedFileInputStream;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
@@ -295,10 +294,6 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
public ComposedMessageId appendMessage(InputStream msgIn, Date internalDate, final MailboxSession mailboxSession, boolean isRecent, Flags flagsToBeSet) throws MailboxException {
File file = null;
- TeeInputStream tmpMsgIn = null;
- BodyOffsetInputStream bIn = null;
- FileOutputStream out = null;
- SharedFileInputStream contentIn = null;
if (!isWriteable(mailboxSession)) {
throw new ReadOnlyException(getMailboxPath(), mailboxSession.getPathDelimiter());
@@ -309,134 +304,128 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
// with the file as
// source for the InputStream
file = File.createTempFile("imap", ".msg");
- out = new FileOutputStream(file);
-
- tmpMsgIn = new TeeInputStream(msgIn, out);
-
- bIn = new BodyOffsetInputStream(tmpMsgIn);
- // Disable line length... This should be handled by the smtp server
- // component and not the parser itself
- // https://issues.apache.org/jira/browse/IMAP-122
-
- final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
-
- parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
- parser.parse(bIn);
- final HeaderImpl header = new HeaderImpl();
-
- EntityState next = parser.next();
- while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) {
- if (next == EntityState.T_FIELD) {
- header.addField(parser.getField());
+ try (FileOutputStream out = new FileOutputStream(file);
+ TeeInputStream tmpMsgIn = new TeeInputStream(msgIn, out);
+ BodyOffsetInputStream bIn = new BodyOffsetInputStream(tmpMsgIn)) {
+ // Disable line length... This should be handled by the smtp server
+ // component and not the parser itself
+ // https://issues.apache.org/jira/browse/IMAP-122
+
+ final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
+
+ parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
+ parser.parse(bIn);
+ final HeaderImpl header = new HeaderImpl();
+
+ EntityState next = parser.next();
+ while (next != EntityState.T_BODY && next != EntityState.T_END_OF_STREAM && next != EntityState.T_START_MULTIPART) {
+ if (next == EntityState.T_FIELD) {
+ header.addField(parser.getField());
+ }
+ next = parser.next();
}
- next = parser.next();
- }
- final MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser.getBodyDescriptor();
- final PropertyBuilder propertyBuilder = new PropertyBuilder();
- final String mediaType;
- final String mediaTypeFromHeader = descriptor.getMediaType();
- final String subType;
- if (mediaTypeFromHeader == null) {
- mediaType = "text";
- subType = "plain";
- } else {
- mediaType = mediaTypeFromHeader;
- subType = descriptor.getSubType();
- }
- propertyBuilder.setMediaType(mediaType);
- propertyBuilder.setSubType(subType);
- propertyBuilder.setContentID(descriptor.getContentId());
- propertyBuilder.setContentDescription(descriptor.getContentDescription());
- propertyBuilder.setContentLocation(descriptor.getContentLocation());
- propertyBuilder.setContentMD5(descriptor.getContentMD5Raw());
- propertyBuilder.setContentTransferEncoding(descriptor.getTransferEncoding());
- propertyBuilder.setContentLanguage(descriptor.getContentLanguage());
- propertyBuilder.setContentDispositionType(descriptor.getContentDispositionType());
- propertyBuilder.setContentDispositionParameters(descriptor.getContentDispositionParameters());
- propertyBuilder.setContentTypeParameters(descriptor.getContentTypeParameters());
- // Add missing types
- final String codeset = descriptor.getCharset();
- if (codeset == null) {
- if ("TEXT".equalsIgnoreCase(mediaType)) {
- propertyBuilder.setCharset("us-ascii");
+ final MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser.getBodyDescriptor();
+ final PropertyBuilder propertyBuilder = new PropertyBuilder();
+ final String mediaType;
+ final String mediaTypeFromHeader = descriptor.getMediaType();
+ final String subType;
+ if (mediaTypeFromHeader == null) {
+ mediaType = "text";
+ subType = "plain";
+ } else {
+ mediaType = mediaTypeFromHeader;
+ subType = descriptor.getSubType();
+ }
+ propertyBuilder.setMediaType(mediaType);
+ propertyBuilder.setSubType(subType);
+ propertyBuilder.setContentID(descriptor.getContentId());
+ propertyBuilder.setContentDescription(descriptor.getContentDescription());
+ propertyBuilder.setContentLocation(descriptor.getContentLocation());
+ propertyBuilder.setContentMD5(descriptor.getContentMD5Raw());
+ propertyBuilder.setContentTransferEncoding(descriptor.getTransferEncoding());
+ propertyBuilder.setContentLanguage(descriptor.getContentLanguage());
+ propertyBuilder.setContentDispositionType(descriptor.getContentDispositionType());
+ propertyBuilder.setContentDispositionParameters(descriptor.getContentDispositionParameters());
+ propertyBuilder.setContentTypeParameters(descriptor.getContentTypeParameters());
+ // Add missing types
+ final String codeset = descriptor.getCharset();
+ if (codeset == null) {
+ if ("TEXT".equalsIgnoreCase(mediaType)) {
+ propertyBuilder.setCharset("us-ascii");
+ }
+ } else {
+ propertyBuilder.setCharset(codeset);
}
- } else {
- propertyBuilder.setCharset(codeset);
- }
-
- final String boundary = descriptor.getBoundary();
- if (boundary != null) {
- propertyBuilder.setBoundary(boundary);
- }
- if ("text".equalsIgnoreCase(mediaType)) {
- final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
- bodyStream.readAll();
- long lines = bodyStream.getLineCount();
- bodyStream.close();
- next = parser.next();
- if (next == EntityState.T_EPILOGUE) {
- final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
- epilogueStream.readAll();
- lines += epilogueStream.getLineCount();
- epilogueStream.close();
+ final String boundary = descriptor.getBoundary();
+ if (boundary != null) {
+ propertyBuilder.setBoundary(boundary);
+ }
+ if ("text".equalsIgnoreCase(mediaType)) {
+ final CountingInputStream bodyStream = new CountingInputStream(parser.getInputStream());
+ bodyStream.readAll();
+ long lines = bodyStream.getLineCount();
+ bodyStream.close();
+ next = parser.next();
+ if (next == EntityState.T_EPILOGUE) {
+ final CountingInputStream epilogueStream = new CountingInputStream(parser.getInputStream());
+ epilogueStream.readAll();
+ lines += epilogueStream.getLineCount();
+ epilogueStream.close();
+
+ }
+ propertyBuilder.setTextualLineCount(lines);
}
- propertyBuilder.setTextualLineCount(lines);
- }
- final Flags flags;
- if (flagsToBeSet == null) {
- flags = new Flags();
- } else {
- flags = flagsToBeSet;
+ final Flags flags;
+ if (flagsToBeSet == null) {
+ flags = new Flags();
+ } else {
+ flags = flagsToBeSet;
- // Check if we need to trim the flags
- trimFlags(flags, mailboxSession);
+ // Check if we need to trim the flags
+ trimFlags(flags, mailboxSession);
- }
- if (isRecent) {
- flags.add(Flags.Flag.RECENT);
- }
- if (internalDate == null) {
- internalDate = new Date();
- }
- byte[] discard = new byte[4096];
- while (tmpMsgIn.read(discard) != -1) {
- // consume the rest of the stream so everything get copied to
- // the file now
- // via the TeeInputStream
- }
- int bodyStartOctet = (int) bIn.getBodyStartOffset();
- if (bodyStartOctet == -1) {
- bodyStartOctet = 0;
- }
- contentIn = new SharedFileInputStream(file);
- final int size = (int) file.length();
-
- final List<MessageAttachment> attachments = extractAttachments(contentIn);
- propertyBuilder.setHasAttachment(hasNonInlinedAttachment(attachments));
+ }
+ if (isRecent) {
+ flags.add(Flags.Flag.RECENT);
+ }
+ if (internalDate == null) {
+ internalDate = new Date();
+ }
+ byte[] discard = new byte[4096];
+ while (tmpMsgIn.read(discard) != -1) {
+ // consume the rest of the stream so everything get copied to
+ // the file now
+ // via the TeeInputStream
+ }
+ int bodyStartOctet = (int) bIn.getBodyStartOffset();
+ if (bodyStartOctet == -1) {
+ bodyStartOctet = 0;
+ }
+ try (SharedFileInputStream contentIn = new SharedFileInputStream(file)) {
+ final int size = (int) file.length();
- final MailboxMessage message = createMessage(internalDate, size, bodyStartOctet, contentIn, flags, propertyBuilder, attachments);
+ final List<MessageAttachment> attachments = extractAttachments(contentIn);
+ propertyBuilder.setHasAttachment(hasNonInlinedAttachment(attachments));
- new QuotaChecker(quotaManager, quotaRootResolver, mailbox).tryAddition(1, size);
+ final MailboxMessage message = createMessage(internalDate, size, bodyStartOctet, contentIn, flags, propertyBuilder, attachments);
- return locker.executeWithLock(mailboxSession, getMailboxPath(), () -> {
- MessageMetaData data = appendMessageToStore(message, attachments, mailboxSession);
+ new QuotaChecker(quotaManager, quotaRootResolver, mailbox).tryAddition(1, size);
- Mailbox mailbox = getMailboxEntity();
- MailboxMessage copy = copyMessage(message);
- dispatcher.added(mailboxSession, mailbox, copy);
- return new ComposedMessageId(mailbox.getMailboxId(), data.getMessageId(), data.getUid());
- }, true);
+ return locker.executeWithLock(mailboxSession, getMailboxPath(), () -> {
+ MessageMetaData data = appendMessageToStore(message, attachments, mailboxSession);
+ Mailbox mailbox = getMailboxEntity();
+ MailboxMessage copy = copyMessage(message);
+ dispatcher.added(mailboxSession, mailbox, copy);
+ return new ComposedMessageId(mailbox.getMailboxId(), data.getMessageId(), data.getUid());
+ }, true);
+ }
+ }
} catch (IOException | MimeException e) {
throw new MailboxException("Unable to parse message", e);
} finally {
- IOUtils.closeQuietly(bIn);
- IOUtils.closeQuietly(tmpMsgIn);
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(contentIn);
-
// delete the temporary file if one was specified
if (file != null) {
if (!file.delete()) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
index a06495f..9233b21 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
@@ -39,7 +39,6 @@ import java.util.Set;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.james.core.MailAddress;
import org.apache.mailet.Experimental;
import org.apache.mailet.Mail;
@@ -603,18 +602,11 @@ public class ClamAVScan extends GenericMailet {
return;
}
- // get the socket
- Socket socket = getClamdSocket();
- BufferedReader reader = null;
- PrintWriter writer = null;
- Socket streamSocket = null;
- BufferedOutputStream bos = null;
+ Socket clamdSocket = getClamdSocket();
- try {
-
- // prepare the reader and writer for the commands
- reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ASCII"));
- writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
+ try (Socket socket = clamdSocket;
+ BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ASCII"));
+ PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true)) {
// write a request for a port to use for streaming out the data to scan
writer.println("STREAM");
@@ -624,86 +616,80 @@ public class ClamAVScan extends GenericMailet {
int streamPort = getStreamPortFromAnswer(reader.readLine());
// get the "stream" socket and the related (buffered) output stream
- streamSocket = new Socket(socket.getInetAddress(), streamPort);
- bos = new BufferedOutputStream(streamSocket.getOutputStream(), getStreamBufferSize());
-
- // stream out the message to the scanner
- mimeMessage.writeTo(bos);
- bos.flush();
- bos.close();
- streamSocket.close();
-
- String answer;
- boolean virusFound = false;
- String logMessage = "";
- for (; ; ) {
- answer = reader.readLine();
- if (answer != null) {
- answer = answer.trim();
-
- // if a virus is found the answer will be '... FOUND'
- if (answer.substring(answer.length() - FOUND_STRING.length()).equals(FOUND_STRING)) {
- virusFound = true;
- logMessage = answer + " (by CLAMD on " + socket.getInetAddress() + ")";
- LOGGER.debug(logMessage);
+ try (Socket streamSocket = new Socket(socket.getInetAddress(), streamPort);
+ BufferedOutputStream bos = new BufferedOutputStream(streamSocket.getOutputStream(), getStreamBufferSize())) {
+
+ // stream out the message to the scanner
+ mimeMessage.writeTo(bos);
+ bos.flush();
+ bos.close();
+ streamSocket.close();
+
+ String answer;
+ boolean virusFound = false;
+ String logMessage = "";
+ for (; ; ) {
+ answer = reader.readLine();
+ if (answer != null) {
+ answer = answer.trim();
+
+ // if a virus is found the answer will be '... FOUND'
+ if (answer.substring(answer.length() - FOUND_STRING.length()).equals(FOUND_STRING)) {
+ virusFound = true;
+ logMessage = answer + " (by CLAMD on " + socket.getInetAddress() + ")";
+ LOGGER.debug(logMessage);
+ }
+ } else {
+ break;
}
- } else {
- break;
}
- }
- reader.close();
- writer.close();
+ reader.close();
+ writer.close();
- if (virusFound) {
- String errorMessage = mail.getErrorMessage();
- if (errorMessage == null) {
- errorMessage = "";
- } else {
- errorMessage += "\r\n";
- }
- StringBuilder sb = new StringBuilder(errorMessage);
- sb.append(logMessage).append("\r\n");
+ if (virusFound) {
+ String errorMessage = mail.getErrorMessage();
+ if (errorMessage == null) {
+ errorMessage = "";
+ } else {
+ errorMessage += "\r\n";
+ }
+ StringBuilder sb = new StringBuilder(errorMessage);
+ sb.append(logMessage).append("\r\n");
- // write mail and message info to log
- logMailInfo(mail);
- logMessageInfo(mimeMessage);
+ // write mail and message info to log
+ logMailInfo(mail);
+ logMessageInfo(mimeMessage);
- // mark the mail with a mail attribute to check later on by other matchers/mailets
- mail.setAttribute(MAIL_ATTRIBUTE_NAME, "true");
+ // mark the mail with a mail attribute to check later on by other matchers/mailets
+ mail.setAttribute(MAIL_ATTRIBUTE_NAME, "true");
- // sets the error message to be shown in any "notifyXxx" message
- mail.setErrorMessage(sb.toString());
+ // sets the error message to be shown in any "notifyXxx" message
+ mail.setErrorMessage(sb.toString());
- // mark the message with a header string
- mimeMessage.setHeader(HEADER_NAME, "true");
+ // mark the message with a header string
+ mimeMessage.setHeader(HEADER_NAME, "true");
- } else {
- if (isDebug()) {
- LOGGER.debug("OK (by CLAMD on {})", socket.getInetAddress());
- }
- mail.setAttribute(MAIL_ATTRIBUTE_NAME, "false");
+ } else {
+ if (isDebug()) {
+ LOGGER.debug("OK (by CLAMD on {})", socket.getInetAddress());
+ }
+ mail.setAttribute(MAIL_ATTRIBUTE_NAME, "false");
- // mark the message with a header string
- mimeMessage.setHeader(HEADER_NAME, "false");
+ // mark the message with a header string
+ mimeMessage.setHeader(HEADER_NAME, "false");
- }
+ }
- try {
- saveChanges(mimeMessage);
- } catch (Exception ex) {
- LOGGER.error("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
+ try {
+ saveChanges(mimeMessage);
+ } catch (Exception ex) {
+ LOGGER.error("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
+ }
}
-
} catch (Exception ex) {
- LOGGER.error("Exception caught calling CLAMD on {}: {}", socket.getInetAddress(), ex.getMessage(), ex);
+ LOGGER.error("Exception caught calling CLAMD on {}: {}", clamdSocket.getInetAddress(), ex.getMessage(), ex);
throw new MessagingException("Exception caught", ex);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(bos);
- IOUtils.closeQuietly(streamSocket);
- IOUtils.closeQuietly(socket);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index 02ec697..abb1d74 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -28,7 +28,6 @@ import java.util.HashSet;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
@@ -141,18 +140,13 @@ public class HeadersToHTTP extends GenericMailet {
private String httpPost(HashSet<NameValuePair> pairs) throws IOException {
- CloseableHttpClient client = null;
- CloseableHttpResponse clientResponse = null;
- try {
- client = HttpClientBuilder.create().build();
+ try (CloseableHttpClient client = HttpClientBuilder.create().build()) {
HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(new NameValuePair[0])).build();
- clientResponse = client.execute(request);
- String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
- LOGGER.debug("HeadersToHTTP: {}", result);
- return result;
- } finally {
- IOUtils.closeQuietly(clientResponse);
- IOUtils.closeQuietly(client);
+ try (CloseableHttpResponse clientResponse = client.execute(request)) {
+ String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
+ LOGGER.debug("HeadersToHTTP: {}", result);
+ return result;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
index 3dde0d1..713e4d7 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
@@ -27,7 +27,6 @@ import java.net.URL;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-import org.apache.commons.io.IOUtils;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
@@ -163,10 +162,9 @@ public class SerialiseToHTTP extends GenericMailet {
LOGGER.debug("{}::{}", data[1].getName(), data[1].getValue());
}
- CloseableHttpClient client = HttpClientBuilder.create().build();
- CloseableHttpResponse clientResponse = null;
- try {
- clientResponse = client.execute(requestBuilder.build());
+
+ try (CloseableHttpClient client = HttpClientBuilder.create().build();
+ CloseableHttpResponse clientResponse = client.execute(requestBuilder.build())) {
if (clientResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
LOGGER.debug("POST failed: {}", clientResponse.getStatusLine());
@@ -179,9 +177,6 @@ public class SerialiseToHTTP extends GenericMailet {
} catch (IOException e) {
LOGGER.debug("Fatal transport error: ", e);
return "Fatal transport error: " + e.getMessage();
- } finally {
- IOUtils.closeQuietly(clientResponse);
- IOUtils.closeQuietly(client);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java b/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
index 6788e09..09effae 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
@@ -25,7 +25,6 @@ import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mpt.protocol.ProtocolSession.TimerCommand;
/**
@@ -71,15 +70,11 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
*/
public void addTestFile(String fileName, ProtocolSession session) throws Exception {
// Need to find local resource.
- InputStream is = this.getClass().getResourceAsStream(fileName);
- if (is == null) {
- throw new Exception("Test Resource '" + fileName + "' not found.");
- }
-
- try {
+ try (InputStream is = this.getClass().getResourceAsStream(fileName)) {
+ if (is == null) {
+ throw new Exception("Test Resource '" + fileName + "' not found.");
+ }
addProtocolLinesFromStream(is, session, fileName);
- } finally {
- IOUtils.closeQuietly(is);
}
}
@@ -96,8 +91,8 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
*/
public void addProtocolLinesFromStream(InputStream is, ProtocolSession session, String fileName) throws Exception {
int sessionNumber = -1;
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- try {
+
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(is))) {
String next;
int lineNumber = -1;
String lastClientMsg = "";
@@ -187,8 +182,6 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
}
lineNumber++;
}
- } finally {
- IOUtils.closeQuietly(reader);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
index 93dc6bb..6fcf292 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mpt.api.Continuation;
import org.apache.james.mpt.api.HostSystem;
import org.apache.james.mpt.api.Session;
@@ -198,16 +197,11 @@ public class GenericSimpleScriptedTestProtocol<T extends HostSystem, SelfT exten
fileName = scriptDirectory + fileName;
// Need to find local resource.
- InputStream is = this.getClass().getResourceAsStream(fileName);
-
- if (is == null) {
- throw new Exception("Test Resource '" + fileName + "' not found.");
- }
-
- try {
+ try (InputStream is = this.getClass().getResourceAsStream(fileName)) {
+ if (is == null) {
+ throw new Exception("Test Resource '" + fileName + "' not found.");
+ }
builder.addProtocolLinesFromStream(is, session, fileName);
- } finally {
- IOUtils.closeQuietly(is);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
----------------------------------------------------------------------
diff --git a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
index aa802ff..949014e 100644
--- a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
+++ b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
@@ -20,6 +20,7 @@
package org.apache.james.mpt.host;
import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.apache.james.managesieve.api.SessionTerminatedException;
@@ -54,7 +55,7 @@ public class ManageSieveSession implements Session {
if (!isReadLast) {
String response;
StringWriter stringWriter = new StringWriter();
- IOUtils.copy(in, stringWriter);
+ IOUtils.copy(in, stringWriter, StandardCharsets.UTF_8);
String request = stringWriter.toString();
try {
response = manageSieveProcessor.handleRequest(settableSession, request);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/mpt/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/pom.xml b/mpt/pom.xml
index 4380d50..7231b2c 100644
--- a/mpt/pom.xml
+++ b/mpt/pom.xml
@@ -52,7 +52,6 @@
</issueManagement>
<properties>
- <commons-io.version>2.4</commons-io.version>
<commons-lang.version>2.6</commons-lang.version>
<derby.version>10.9.1.0</derby.version>
<guice.version>4.0</guice.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4743e1b..7e3e378 100644
--- a/pom.xml
+++ b/pom.xml
@@ -611,7 +611,7 @@
<commons-dbcp.version>1.4</commons-dbcp.version>
<commons-net.version>3.6</commons-net.version>
<commons-beanutils-core.version>1.8.3</commons-beanutils-core.version>
- <commons-io.version>2.5</commons-io.version>
+ <commons-io.version>2.6</commons-io.version>
<commons-logging.version>1.1.1</commons-logging.version>
<dnsjava.version>2.1.1</dnsjava.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
index 38036a7..e6cfe38 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
@@ -159,11 +159,19 @@ public class MimeMessageInputStreamSource extends MimeMessageSource implements D
public void dispose() {
// explicit close all streams
for (InputStream stream : streams) {
- IOUtils.closeQuietly(stream);
+ try {
+ stream.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
}
if (out != null) {
- IOUtils.closeQuietly(out);
+ try {
+ out.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
File file = out.getFile();
if (file != null) {
FileUtils.deleteQuietly(file);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
index c017c63..a30cf93 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
@@ -161,10 +161,8 @@ public class MimeMessageUtil {
}
}
- try {
- IOUtils.copy(bis, bos);
- } finally {
- IOUtils.closeQuietly(bis);
+ try (InputStream input = bis) {
+ IOUtils.copy(input, bos);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
index 7adf805..b90f84d 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
@@ -27,6 +27,7 @@ import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStream;
import java.io.SequenceInputStream;
+import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.UUID;
@@ -192,14 +193,8 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
if (headers != null) {
// Another thread has already loaded these headers
} else if (source != null) {
- try {
- InputStream in = source.getInputStream();
- try {
- headers = createInternetHeaders(in);
-
- } finally {
- IOUtils.closeQuietly(in);
- }
+ try (InputStream in = source.getInputStream()) {
+ headers = createInternetHeaders(in);
} catch (IOException ioe) {
throw new MessagingException("Unable to parse headers from stream: " + ioe.getMessage(), ioe);
}
@@ -227,7 +222,11 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
saved = true;
} catch (IOException ioe) {
- IOUtils.closeQuietly(sourceIn);
+ try {
+ sourceIn.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
sourceIn = null;
throw new MessagingException("Unable to parse stream: " + ioe.getMessage(), ioe);
}
@@ -299,8 +298,7 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
// and write to this outputstream
// First handle the headers
- InputStream in = source.getInputStream();
- try {
+ try (InputStream in = source.getInputStream()) {
InternetHeaders myHeaders;
MailHeaders parsedHeaders = new MailHeaders(in);
@@ -318,8 +316,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
Enumeration<String> filteredHeaders = myHeaders.getNonMatchingHeaderLines(ignoreList);
IOUtils.copy(new InternetHeadersInputStream(filteredHeaders), headerOs);
IOUtils.copy(in, bodyOs);
- } finally {
- IOUtils.closeQuietly(in);
}
} else {
// save the changes as the message was modified
@@ -389,31 +385,28 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
}
// Wrap input stream in LineNumberReader
// Not sure what encoding to use really...
- InputStreamReader isr = null;
- LineNumberReader counter = null;
- try {
- if (getEncoding() != null) {
- isr = new InputStreamReader(in, getEncoding());
- counter = new LineNumberReader(isr);
- } else {
- isr = new InputStreamReader(in);
- counter = new LineNumberReader(isr);
- }
+ try (InputStream input = in;
+ InputStreamReader isr = builderReader(input)) {
// Read through all the data
char[] block = new char[4096];
- while (counter.read(block) > -1) {
- // Just keep reading
+ try (LineNumberReader counter = new LineNumberReader(isr)) {
+ while (counter.read(block) > -1) {
+ // Just keep reading
+ }
+ return counter.getLineNumber();
}
- return counter.getLineNumber();
} catch (IOException ioe) {
return -1;
- } finally {
- IOUtils.closeQuietly(counter);
- IOUtils.closeQuietly(isr);
- IOUtils.closeQuietly(in);
}
}
+ private InputStreamReader builderReader(InputStream in) throws MessagingException, UnsupportedEncodingException {
+ if (getEncoding() != null) {
+ return new InputStreamReader(in, getEncoding());
+ }
+ return new InputStreamReader(in);
+ }
+
/**
* Returns size of message, ie headers and content
*/
@@ -552,7 +545,11 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
@Override
public void dispose() {
if (sourceIn != null) {
- IOUtils.closeQuietly(sourceIn);
+ try {
+ sourceIn.close();
+ } catch (IOException e) {
+ //ignore exception during close
+ }
}
if (source != null) {
LifecycleUtil.dispose(source);
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
----------------------------------------------------------------------
diff --git a/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java b/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
index 0d8890d..cc9f420 100644
--- a/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
+++ b/server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
@@ -185,11 +185,8 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = AvailableStreamsProvider.class)
public final void availableInputStreamShouldReturnANonEmptyStream(String url) throws Exception {
url = replacePort(url);
- InputStream inputStream = fileSystem.getResource(url);
- try {
+ try (InputStream inputStream = fileSystem.getResource(url)) {
assertThat(IOUtils.toByteArray(inputStream).length).isGreaterThan(0);
- } finally {
- IOUtils.closeQuietly(inputStream);
}
}
@@ -234,12 +231,9 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = FileToCreateProvider.class)
public final void createdFilesAsInputStreamShouldBeAvailable(String name, String extension) throws Exception {
File temp = createTempFile(name, extension);
- InputStream inputStream = null;
- try {
- inputStream = fileSystem.getResource("file:" + temp.getAbsolutePath());
+ try (InputStream inputStream = fileSystem.getResource("file:" + temp.getAbsolutePath())) {
assertThat(IOUtils.toString(inputStream, StandardCharsets.UTF_8)).isEqualTo("content");
} finally {
- IOUtils.closeQuietly(inputStream);
temp.delete();
}
}
@@ -248,12 +242,9 @@ public abstract class AbstractFileSystemTest {
@Parameters(source = FileToCreateProvider.class)
public final void createdFilesAsInputStreamShouldBeAvailableWhenAccessedWithTwoSlashes(String name, String extension) throws Exception {
File temp = createTempFile(name, extension);
- InputStream inputStream = null;
- try {
- inputStream = fileSystem.getResource("file://" + temp.getAbsolutePath());
+ try (InputStream inputStream = fileSystem.getResource("file://" + temp.getAbsolutePath())) {
assertThat(IOUtils.toString(inputStream, StandardCharsets.UTF_8)).isEqualTo("content");
} finally {
- IOUtils.closeQuietly(inputStream);
temp.delete();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
index a651ceb..b544ef5 100644
--- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
@@ -38,7 +38,6 @@ import java.util.Scanner;
import javax.inject.Inject;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.james.core.User;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.filesystem.api.FileSystem;
@@ -100,17 +99,16 @@ public class SieveFileRepository implements SieveRepository {
// Create a temporary file
int bufferSize = content.length() > MAX_BUFF_SIZE ? MAX_BUFF_SIZE : content.length();
File tmpFile = null;
- Writer out = null;
+
try {
tmpFile = File.createTempFile(file.getName(), ".tmp", file.getParentFile());
- out = new OutputStreamWriter(new BufferedOutputStream(
- new FileOutputStream(tmpFile), bufferSize), UTF_8);
- out.write(content);
+ try (Writer out = new OutputStreamWriter(new BufferedOutputStream(
+ new FileOutputStream(tmpFile), bufferSize), UTF_8)) {
+ out.write(content);
+ }
} catch (IOException ex) {
FileUtils.deleteQuietly(tmpFile);
throw new StorageException(ex);
- } finally {
- IOUtils.closeQuietly(out);
}
// Does the file exist?
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
index 6aff34a..7713320 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
@@ -24,7 +24,6 @@ import java.util.List;
import javax.inject.Inject;
-import org.apache.commons.io.IOUtils;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTableInterface;
@@ -59,9 +58,7 @@ public class HBaseDomainList extends AbstractDomainList {
@Override
protected boolean containsDomainInternal(Domain domain) throws DomainListException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Get get = new Get(Bytes.toBytes(domain.asString()));
Result result = table.get(get);
if (!result.isEmpty()) {
@@ -70,8 +67,6 @@ public class HBaseDomainList extends AbstractDomainList {
} catch (IOException e) {
log.error("Error while counting domains from HBase", e);
throw new DomainListException("Error while counting domains from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
return false;
}
@@ -81,9 +76,7 @@ public class HBaseDomainList extends AbstractDomainList {
if (containsDomain(domain)) {
throw new DomainListException(domain.name() + " already exists.");
}
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Put put = new Put(Bytes.toBytes(domain.asString()));
put.add(HDomainList.COLUMN_FAMILY_NAME, HDomainList.COLUMN.DOMAIN, null);
table.put(put);
@@ -91,48 +84,37 @@ public class HBaseDomainList extends AbstractDomainList {
} catch (IOException e) {
log.error("Error while adding domain in HBase", e);
throw new DomainListException("Error while adding domain in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@Override
public void removeDomain(Domain domain) throws DomainListException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Delete delete = new Delete(Bytes.toBytes(domain.asString()));
table.delete(delete);
table.flushCommits();
} catch (IOException e) {
log.error("Error while deleting user from HBase", e);
throw new DomainListException("Error while deleting domain from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@Override
protected List<Domain> getDomainListInternal() throws DomainListException {
List<Domain> list = new ArrayList<>();
- HTableInterface table = null;
- ResultScanner resultScanner = null;
- try {
- table = TablePool.getInstance().getDomainlistTable();
+ try (HTableInterface table = TablePool.getInstance().getDomainlistTable()) {
Scan scan = new Scan();
scan.addFamily(HDomainList.COLUMN_FAMILY_NAME);
scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
- resultScanner = table.getScanner(scan);
- Result result;
- while ((result = resultScanner.next()) != null) {
- list.add(Domain.of(Bytes.toString(result.getRow())));
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ Result result;
+ while ((result = resultScanner.next()) != null) {
+ list.add(Domain.of(Bytes.toString(result.getRow())));
+ }
}
} catch (IOException e) {
log.error("Error while counting domains from HBase", e);
throw new DomainListException("Error while counting domains from HBase", e);
- } finally {
- IOUtils.closeQuietly(resultScanner);
- IOUtils.closeQuietly(table);
}
return list;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/8b94fa51/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
index e4dc88a..6b1a1ce 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
-import org.apache.commons.io.IOUtils;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
@@ -73,17 +72,13 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Mappings getUserDomainMappings(MappingSource source) throws
RecipientRewriteTableException {
- HTableInterface table = null;
Mappings list = MappingsImpl.empty();
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
// Optimize this to only make one call.
return feedUserDomainMappingsList(table, source, list);
} catch (IOException e) {
log.error("Error while getting user domain mapping in HBase", e);
throw new RecipientRewriteTableException("Error while getting user domain mapping in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -102,40 +97,33 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Map<MappingSource, Mappings> getAllMappings() throws RecipientRewriteTableException {
- HTableInterface table = null;
- ResultScanner resultScanner = null;
Map<MappingSource, Mappings> map = new HashMap<>();
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Scan scan = new Scan();
scan.addFamily(HRecipientRewriteTable.COLUMN_FAMILY_NAME);
scan.setCaching(table.getConfiguration().getInt("hbase.client.scanner.caching", 1) * 2);
- resultScanner = table.getScanner(scan);
- Result result;
- while ((result = resultScanner.next()) != null) {
- List<KeyValue> keyValues = result.list();
- if (keyValues != null) {
- for (KeyValue keyValue : keyValues) {
- MappingSource email = MappingSource.parse(Bytes.toString(keyValue.getRow()));
- Mappings mappings =
+ try (ResultScanner resultScanner = table.getScanner(scan)) {
+ Result result;
+ while ((result = resultScanner.next()) != null) {
+ List<KeyValue> keyValues = result.list();
+ if (keyValues != null) {
+ for (KeyValue keyValue : keyValues) {
+ MappingSource email = MappingSource.parse(Bytes.toString(keyValue.getRow()));
+ Mappings mappings =
MappingsImpl.from(
Optional.ofNullable(
map.get(email))
.orElse(MappingsImpl.empty()))
- .addAll(Splitter.on(COLUMN_SEPARATOR).split(Bytes.toString(keyValue.getValue())))
- .build();
- map.put(email, mappings);
+ .addAll(Splitter.on(COLUMN_SEPARATOR).split(Bytes.toString(keyValue.getValue())))
+ .build();
+ map.put(email, mappings);
+ }
}
}
}
} catch (IOException e) {
log.error("Error while getting all mapping from HBase", e);
throw new RecipientRewriteTableException("Error while getting all mappings from HBase", e);
- } finally {
- if (resultScanner != null) {
- resultScanner.close();
- }
- IOUtils.closeQuietly(table);
}
return map;
}
@@ -148,9 +136,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
}
private Optional<String> getApplicableMappingRow(String user, Domain domain) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
HTableInterface tableCopy = table;
return OptionalUtils.orSuppliers(
Throwing.supplier(() -> Optional.ofNullable(getMapping(tableCopy, MappingSource.fromUser(user, domain)))).sneakyThrow(),
@@ -159,8 +145,6 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
} catch (IOException e) {
log.error("Error while mapping address in HBase", e);
throw new RecipientRewriteTableException("Error while mapping address in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -209,17 +193,13 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
* @throws RecipientRewriteTableException
*/
private void doRemoveMapping(MappingSource source) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Delete delete = new Delete(Bytes.toBytes(getRowKey(source)));
table.delete(delete);
table.flushCommits();
} catch (IOException e) {
log.error("Error while removing mapping from HBase", e);
throw new RecipientRewriteTableException("Error while removing mapping from HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
@@ -232,9 +212,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
* @throws RecipientRewriteTableException
*/
private void doAddMapping(MappingSource source, String mapping) throws RecipientRewriteTableException {
- HTableInterface table = null;
- try {
- table = TablePool.getInstance().getRecipientRewriteTable();
+ try (HTableInterface table = TablePool.getInstance().getRecipientRewriteTable()) {
Put put = new Put(Bytes.toBytes(getRowKey(source)));
put.add(HRecipientRewriteTable.COLUMN_FAMILY_NAME, HRecipientRewriteTable.COLUMN.MAPPING, Bytes.toBytes(
mapping));
@@ -243,8 +221,6 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
} catch (IOException e) {
log.error("Error while adding mapping in HBase", e);
throw new RecipientRewriteTableException("Error while adding mapping in HBase", e);
- } finally {
- IOUtils.closeQuietly(table);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[02/19] james-project git commit: JAMES-2472 remove uses of
commons-codec
Posted by ma...@apache.org.
JAMES-2472 remove uses of commons-codec
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/325cb7a7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/325cb7a7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/325cb7a7
Branch: refs/heads/master
Commit: 325cb7a75572bf12abe813153c5dfcafe197c903
Parents: 1834083
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jul 17 17:35:59 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
mailbox/api/pom.xml | 4 --
.../transport/mailets/ICalendarParser.java | 14 +-----
pom.xml | 6 ---
protocols/imap/pom.xml | 4 --
.../imap/processor/AuthenticateProcessor.java | 5 +-
protocols/smtp/pom.xml | 48 --------------------
.../smtp/core/esmtp/AuthCmdHandler.java | 21 ++++++---
server/blob/blob-api/pom.xml | 4 --
server/blob/blob-cassandra/pom.xml | 4 --
server/data/data-cassandra/pom.xml | 4 --
server/data/data-hbase/pom.xml | 4 --
server/data/data-jpa/pom.xml | 4 --
server/protocols/jmap/pom.xml | 4 --
.../jmap/crypto/JamesSignatureHandler.java | 6 +--
.../jmap/crypto/JamesSignatureHandlerTest.java | 4 +-
server/protocols/protocols-smtp/pom.xml | 5 --
server/queue/queue-jms/pom.xml | 4 --
.../james/queue/jms/JMSSerializationUtils.java | 8 ++--
server/queue/queue-rabbitmq/pom.xml | 5 --
19 files changed, 27 insertions(+), 131 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/mailbox/api/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/api/pom.xml b/mailbox/api/pom.xml
index d92acaa..8d76a45 100644
--- a/mailbox/api/pom.xml
+++ b/mailbox/api/pom.xml
@@ -66,10 +66,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
index 68da345..5755f55 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
@@ -27,7 +27,6 @@ import java.util.stream.Stream;
import javax.mail.MessagingException;
-import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.mailet.Mail;
import org.apache.mailet.base.GenericMailet;
@@ -37,7 +36,6 @@ import org.slf4j.LoggerFactory;
import com.github.steveash.guavate.Guavate;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
-
import net.fortuna.ical4j.data.CalendarBuilder;
import net.fortuna.ical4j.data.ParserException;
import net.fortuna.ical4j.model.Calendar;
@@ -137,23 +135,15 @@ public class ICalendarParser extends GenericMailet {
return Stream.of(Pair.of(key, builder.build(inputStream)));
} catch (IOException e) {
if (LOGGER.isErrorEnabled()) {
- LOGGER.error("Error while reading input: " + icsContentToString(icsContent), e);
+ LOGGER.error("Error while reading input: " + new String(icsContent, StandardCharsets.UTF_8), e);
}
return Stream.of();
} catch (ParserException e) {
if (LOGGER.isErrorEnabled()) {
- LOGGER.error("Error while parsing ICal object: " + icsContentToString(icsContent), e);
+ LOGGER.error("Error while parsing ICal object: " + new String(icsContent, StandardCharsets.UTF_8), e);
}
return Stream.of();
}
}
- private static String icsContentToString(byte[] icsContent) {
- try {
- return new String(icsContent, StandardCharsets.UTF_8);
- } catch (Exception e) {
- LOGGER.error("Error while decoding ics content", e);
- }
- return new String(Hex.encodeHex(icsContent));
- }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8a0997d..3bc991a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -606,7 +606,6 @@
<commons-daemon.version>1.0.10</commons-daemon.version>
<commons-collections.version>3.2.2</commons-collections.version>
<commons-lang.version>2.6</commons-lang.version>
- <commons-codec.version>1.7</commons-codec.version>
<commons-cli.version>1.4</commons-cli.version>
<commons-pool.version>1.6</commons-pool.version>
<commons-configuration.version>1.9</commons-configuration.version>
@@ -1749,11 +1748,6 @@
<version>${commons-cli.version}</version>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>${commons-codec.version}</version>
- </dependency>
- <dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons-collections.version}</version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/protocols/imap/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index 41bae24..79f2e31 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -56,10 +56,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
index 0c6a302..3660f68 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
@@ -22,10 +22,10 @@ package org.apache.james.imap.processor;
import java.io.Closeable;
import java.nio.charset.Charset;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.List;
import java.util.StringTokenizer;
-import org.apache.commons.codec.binary.Base64;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
@@ -107,8 +107,7 @@ public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateReq
private AuthenticationAttempt parseDelegationAttempt(String initialClientResponse) {
String token2;
try {
-
- String userpass = new String(Base64.decodeBase64(initialClientResponse));
+ String userpass = new String(Base64.getDecoder().decode(initialClientResponse));
StringTokenizer authTokenizer = new StringTokenizer(userpass, "\0");
String token1 = authTokenizer.nextToken(); // Authorization Identity
token2 = authTokenizer.nextToken(); // Authentication Identity
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/protocols/smtp/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/smtp/pom.xml b/protocols/smtp/pom.xml
index 334dd97..f11b127 100644
--- a/protocols/smtp/pom.xml
+++ b/protocols/smtp/pom.xml
@@ -65,11 +65,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<scope>test</scope>
@@ -107,47 +102,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>shade</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <artifactSet>
- <includes>
- <include>commons-codec:commons-codec</include>
- </includes>
- </artifactSet>
- <filters>
- <filter>
- <artifact>commons-codec:commons-codec</artifact>
- <excludes>
- <exclude>org/apache/commons/codec/*</exclude>
- </excludes>
- <includes>
- <include>org/apache/commons/codec/binary/*</include>
- </includes>
- </filter>
- </filters>
- <relocations>
- <relocation>
- <pattern>org.apache.commons.codec.binary</pattern>
- <shadedPattern>${project.groupId}.smtp.util</shadedPattern>
- </relocation>
- </relocations>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer" />
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index e24796e..97f8ced 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -23,7 +23,9 @@ package org.apache.james.protocols.smtp.core.esmtp;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -31,7 +33,6 @@ import java.util.Locale;
import java.util.Optional;
import java.util.StringTokenizer;
-import org.apache.commons.codec.binary.Base64;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.james.protocols.api.Request;
@@ -246,13 +247,11 @@ public class AuthCmdHandler
* @param session SMTP session object
* @param initialResponse the initial response line passed in with the AUTH command
*/
- private Response doPlainAuthPass(SMTPSession session, String userpass) {
+ private Response doPlainAuthPass(SMTPSession session, String line) {
String user = null;
String pass = null;
try {
- if (userpass != null) {
- userpass = new String(Base64.decodeBase64(userpass));
- }
+ String userpass = decodeBase64(line);
if (userpass != null) {
/* See: RFC 2595, Section 6
The mechanism consists of a single message from the client to the
@@ -307,6 +306,14 @@ public class AuthCmdHandler
return response;
}
+ private String decodeBase64(String line) {
+ if (line != null) {
+ String lineWithoutTrailingCrLf = line.replace("\r\n", "");
+ return new String(Base64.getDecoder().decode(lineWithoutTrailingCrLf), StandardCharsets.UTF_8);
+ }
+ return null;
+ }
+
/**
* Carries out the Login AUTH SASL exchange.
*
@@ -316,7 +323,7 @@ public class AuthCmdHandler
private Response doLoginAuthPass(SMTPSession session, String user) {
if (user != null) {
try {
- user = new String(Base64.decodeBase64(user));
+ user = new String(Base64.getDecoder().decode(user), StandardCharsets.UTF_8);
} catch (Exception e) {
// Ignored - this parse error will be
// addressed in the if clause below
@@ -356,7 +363,7 @@ public class AuthCmdHandler
private Response doLoginAuthPassCheck(SMTPSession session, String user, String pass) {
if (pass != null) {
try {
- pass = new String(Base64.decodeBase64(pass));
+ pass = new String(Base64.getDecoder().decode(pass), StandardCharsets.UTF_8);
} catch (Exception e) {
// Ignored - this parse error will be
// addressed in the if clause below
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/blob/blob-api/pom.xml
----------------------------------------------------------------------
diff --git a/server/blob/blob-api/pom.xml b/server/blob/blob-api/pom.xml
index 4afcd92..0289a00 100644
--- a/server/blob/blob-api/pom.xml
+++ b/server/blob/blob-api/pom.xml
@@ -42,10 +42,6 @@
<artifactId>guava</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/blob/blob-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/server/blob/blob-cassandra/pom.xml b/server/blob/blob-cassandra/pom.xml
index 407064c..f64dfea 100644
--- a/server/blob/blob-cassandra/pom.xml
+++ b/server/blob/blob-cassandra/pom.xml
@@ -62,10 +62,6 @@
<artifactId>guava</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/data/data-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/pom.xml b/server/data/data-cassandra/pom.xml
index ef04a08..2b9cafc 100644
--- a/server/data/data-cassandra/pom.xml
+++ b/server/data/data-cassandra/pom.xml
@@ -90,10 +90,6 @@
<artifactId>guava</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/data/data-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/pom.xml b/server/data/data-hbase/pom.xml
index 46e3ff7..f904d75 100644
--- a/server/data/data-hbase/pom.xml
+++ b/server/data/data-hbase/pom.xml
@@ -71,10 +71,6 @@
<version>13.0</version><!--$NO-MVN-MAN-VER$-->
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/data/data-jpa/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/pom.xml b/server/data/data-jpa/pom.xml
index 8a30b41..b0bdcc5 100644
--- a/server/data/data-jpa/pom.xml
+++ b/server/data/data-jpa/pom.xml
@@ -87,10 +87,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/protocols/jmap/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index 5249585..7921b13 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -213,10 +213,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
index 5d3dd4f..37d3456 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/crypto/JamesSignatureHandler.java
@@ -30,11 +30,11 @@ import java.security.PublicKey;
import java.security.Signature;
import java.security.SignatureException;
import java.security.cert.Certificate;
+import java.util.Base64;
import java.util.Optional;
import javax.inject.Inject;
-import org.apache.commons.codec.binary.Base64;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.jmap.JMAPConfiguration;
import org.slf4j.Logger;
@@ -89,7 +89,7 @@ public class JamesSignatureHandler implements SignatureHandler {
Signature javaSignature = Signature.getInstance(ALGORITHM);
javaSignature.initSign(privateKey);
javaSignature.update(source.getBytes());
- return new Base64().encodeAsString(javaSignature.sign());
+ return Base64.getEncoder().encodeToString(javaSignature.sign());
} catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
throw new RuntimeException(e);
}
@@ -103,7 +103,7 @@ public class JamesSignatureHandler implements SignatureHandler {
Signature javaSignature = Signature.getInstance(ALGORITHM);
javaSignature.initVerify(publicKey);
javaSignature.update(source.getBytes());
- return javaSignature.verify(new Base64().decode(signature));
+ return javaSignature.verify(Base64.getDecoder().decode(signature));
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
throw new RuntimeException(e);
} catch (SignatureException e) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
index e885f41..9c2723e 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerTest.java
@@ -21,7 +21,9 @@ package org.apache.james.jmap.crypto;
import static org.assertj.core.api.Assertions.assertThat;
+import java.nio.charset.StandardCharsets;
import java.security.KeyStoreException;
+import java.util.Base64;
import org.apache.james.jmap.JMAPConfiguration;
import org.junit.Before;
@@ -64,7 +66,7 @@ public class JamesSignatureHandlerTest {
@Test
public void incorrectLengthSignatureShouldReturnFalse() throws Exception {
- assertThat(signatureHandler.verify(SOURCE, "signature")).isFalse();
+ assertThat(signatureHandler.verify(SOURCE, "c2lnbmF0dXJl")).isFalse();
}
@Test(expected = NullPointerException.class)
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/protocols/protocols-smtp/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/pom.xml b/server/protocols/protocols-smtp/pom.xml
index 7e1e70b..5e20bd2 100644
--- a/server/protocols/protocols-smtp/pom.xml
+++ b/server/protocols/protocols-smtp/pom.xml
@@ -148,11 +148,6 @@
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/queue/queue-jms/pom.xml
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/pom.xml b/server/queue/queue-jms/pom.xml
index f208939..cff1b06 100644
--- a/server/queue/queue-jms/pom.xml
+++ b/server/queue/queue-jms/pom.xml
@@ -86,10 +86,6 @@
<artifactId>guava</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
- <dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSerializationUtils.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSerializationUtils.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSerializationUtils.java
index 98a0ac7..1e14c3e 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSerializationUtils.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSerializationUtils.java
@@ -19,13 +19,11 @@
package org.apache.james.queue.jms;
import java.io.Serializable;
+import java.util.Base64;
import java.util.Optional;
-import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.SerializationUtils;
-import com.github.fge.lambdas.Throwing;
-
/**
* This class is similar to {@link SerializationUtils}. Unlike {@link SerializationUtils} this class operates with
* {@code String}s and not byte arrays.
@@ -45,7 +43,7 @@ public class JMSSerializationUtils {
public static String serialize(Serializable obj) {
return Optional.ofNullable(obj)
.map(SerializationUtils::serialize)
- .map(Base64::encodeBase64String)
+ .map(Base64.getEncoder()::encodeToString)
.orElse(null);
}
@@ -59,7 +57,7 @@ public class JMSSerializationUtils {
*/
public static <T extends Serializable> T deserialize(String object) {
return Optional.ofNullable(object)
- .map(Throwing.function(Base64::decodeBase64))
+ .map(Base64.getDecoder()::decode)
.<T>map(SerializationUtils::deserialize)
.orElse(null);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/325cb7a7/server/queue/queue-rabbitmq/pom.xml
----------------------------------------------------------------------
diff --git a/server/queue/queue-rabbitmq/pom.xml b/server/queue/queue-rabbitmq/pom.xml
index 8fec592..032d40d 100644
--- a/server/queue/queue-rabbitmq/pom.xml
+++ b/server/queue/queue-rabbitmq/pom.xml
@@ -65,11 +65,6 @@
<artifactId>amqp-client</artifactId>
</dependency>
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[11/19] james-project git commit: JAMES-2472 Upgrade commons-math3
Posted by ma...@apache.org.
JAMES-2472 Upgrade commons-math3
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1c9b5b45
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1c9b5b45
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1c9b5b45
Branch: refs/heads/master
Commit: 1c9b5b45cec3265b370638e6c98ac5a1c29cab05
Parents: 03ee14c
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:45:32 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
server/testing/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1c9b5b45/server/testing/pom.xml
----------------------------------------------------------------------
diff --git a/server/testing/pom.xml b/server/testing/pom.xml
index 45b9b66..c3434d5 100644
--- a/server/testing/pom.xml
+++ b/server/testing/pom.xml
@@ -60,7 +60,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
- <version>3.4.1</version>
+ <version>3.6.1</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[07/19] james-project git commit: JAMES-2461 checkstyle fixes
Posted by ma...@apache.org.
JAMES-2461 checkstyle fixes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/86debb66
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/86debb66
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/86debb66
Branch: refs/heads/master
Commit: 86debb669154f202b3d31e5d3993cbf32aab5c2c
Parents: e8ae446
Author: Matthieu Baechler <ma...@apache.org>
Authored: Thu Jul 19 15:53:53 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
.../org/apache/james/mailbox/backup/MailboxMessageFixture.java | 4 ++--
.../src/test/java/org/apache/james/mailbox/backup/ZipAssert.java | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/86debb66/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
index 697c2b5..3688cc7 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
@@ -28,10 +28,10 @@ import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.mock.MockMailboxSession;
-import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.mock.MockMailboxSession;
import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.model.TestMessageId;
http://git-wip-us.apache.org/repos/asf/james-project/blob/86debb66/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java
index 911a809..cf1c41e 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java
@@ -95,7 +95,7 @@ public class ZipAssert extends AbstractAssert<ZipAssert, ZipFile> {
public ZipAssert containsOnlyEntriesMatching(EntryChecks... entryChecks) throws Exception {
isNotNull();
- List<EntryChecks> sortedEntryChecks= Arrays.stream(entryChecks)
+ List<EntryChecks> sortedEntryChecks = Arrays.stream(entryChecks)
.sorted(Comparator.comparing(checks -> checks.name))
.collect(Guavate.toImmutableList());
List<ZipArchiveEntry> entries = Collections.list(zipFile.getEntries())
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[06/19] james-project git commit: JAMES-2472 upgrade commons-cli
Posted by ma...@apache.org.
JAMES-2472 upgrade commons-cli
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3a800d2f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3a800d2f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3a800d2f
Branch: refs/heads/master
Commit: 3a800d2f3d95ec1eb0fab1ee6e754b889dcf82e4
Parents: 9c3aa9f
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jul 17 15:27:19 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:52 2018 +0200
----------------------------------------------------------------------
.../java/org/apache/james/mpt/app/Main.java | 74 ++++++++++----------
pom.xml | 2 +-
.../java/org/apache/james/cli/ServerCmd.java | 4 +-
3 files changed, 40 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3a800d2f/mpt/app/src/main/java/org/apache/james/mpt/app/Main.java
----------------------------------------------------------------------
diff --git a/mpt/app/src/main/java/org/apache/james/mpt/app/Main.java b/mpt/app/src/main/java/org/apache/james/mpt/app/Main.java
index 4e3f3ea..ef7cbaa 100644
--- a/mpt/app/src/main/java/org/apache/james/mpt/app/Main.java
+++ b/mpt/app/src/main/java/org/apache/james/mpt/app/Main.java
@@ -23,9 +23,9 @@ import java.io.File;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
+import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.OptionBuilder;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.james.util.Port;
@@ -46,18 +46,18 @@ public class Main {
private static final int FILE_NOT_FOUND = 1;
private static final int PORT_NOT_A_NUMBER = 2;
- private static final char FILE_OPTION = 'f';
- private static final char PORT_OPTION = 'p';
- private static final char HOST_OPTION = 'h';
- private static final char SHABANG_OPTION = 's';
- private static final char VERBOSE_OPTION = 'v';
+ private static final String FILE_OPTION = "f";
+ private static final String PORT_OPTION = "p";
+ private static final String HOST_OPTION = "h";
+ private static final String SHABANG_OPTION = "s";
+ private static final String VERBOSE_OPTION = "v";
public static final void main(String[] args) throws Exception {
Options options = buildOptions();
try {
- CommandLineParser parser = new GnuParser();
+ CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args);
runCommand(cmd);
@@ -101,44 +101,44 @@ public class Main {
@SuppressWarnings("static-access")
private static void addRunScriptOptions(Options options) {
// -f <file> runs this script
- options.addOption(OptionBuilder
- .withArgName("file")
+ options.addOption(Option.builder(FILE_OPTION)
+ .argName("file")
.hasArg()
- .withDescription("run this script")
- .withLongOpt("file")
- .isRequired()
- .create(FILE_OPTION));
+ .desc("run this script")
+ .longOpt("file")
+ .required()
+ .build());
// -p <port> runs against this port
- options.addOption(OptionBuilder
- .withArgName("port")
+ options.addOption(Option.builder(PORT_OPTION)
+ .argName("port")
.hasArg()
- .withDescription("runs against this port")
- .withLongOpt("port")
- .isRequired()
- .create(PORT_OPTION));
+ .desc("runs against this port")
+ .longOpt("port")
+ .required()
+ .build());
// -h <host> runs against this host
- options.addOption(OptionBuilder
- .withArgName("host")
+ options.addOption(Option.builder(HOST_OPTION)
+ .argName("host")
.hasArg()
- .withDescription("runs against this host (defaults to localhost)")
- .withLongOpt("host")
- .isRequired(false)
- .create(HOST_OPTION));
+ .desc("runs against this host (defaults to localhost)")
+ .longOpt("host")
+ .required(false)
+ .build());
// -s <shabang> sets shabang
- options.addOption(OptionBuilder
- .withArgName("shabang")
+ options.addOption(Option.builder(SHABANG_OPTION)
+ .argName("shabang")
.hasArg()
- .withDescription("sets shabang (defaults to empty)")
- .withLongOpt("shabang")
- .isRequired(false)
- .create(SHABANG_OPTION));
+ .desc("sets shabang (defaults to empty)")
+ .longOpt("shabang")
+ .required(false)
+ .build());
// -v sets logging to verbose
- options.addOption(OptionBuilder
- .withDescription("prints lots of logging")
- .withLongOpt("verbose")
- .isRequired(false)
- .create(VERBOSE_OPTION));
+ options.addOption(Option.builder(VERBOSE_OPTION)
+ .desc("prints lots of logging")
+ .longOpt("verbose")
+ .required(false)
+ .build());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3a800d2f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 807d99c..8a0997d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -607,7 +607,7 @@
<commons-collections.version>3.2.2</commons-collections.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-codec.version>1.7</commons-codec.version>
- <commons-cli.version>1.2</commons-cli.version>
+ <commons-cli.version>1.4</commons-cli.version>
<commons-pool.version>1.6</commons-pool.version>
<commons-configuration.version>1.9</commons-configuration.version>
<commons-dbcp.version>1.4</commons-dbcp.version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3a800d2f/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
index f705bc1..60e9c04 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
@@ -29,10 +29,10 @@ import java.util.function.Function;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.apache.commons.cli.PosixParser;
import org.apache.commons.lang.time.StopWatch;
import org.apache.james.cli.exceptions.InvalidArgumentNumberException;
import org.apache.james.cli.exceptions.JamesCliException;
@@ -142,7 +142,7 @@ public class ServerCmd {
@VisibleForTesting
static CommandLine parseCommandLine(String[] args) throws ParseException {
- CommandLineParser parser = new PosixParser();
+ CommandLineParser parser = new DefaultParser();
CommandLine commandLine = parser.parse(createOptions(), args);
if (commandLine.getArgs().length < 1) {
throw new MissingCommandException();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[09/19] james-project git commit: JAMES-2472 Remove commons-pool from
dependency management
Posted by ma...@apache.org.
JAMES-2472 Remove commons-pool from dependency management
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/88656adc
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/88656adc
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/88656adc
Branch: refs/heads/master
Commit: 88656adc482e7dbdcf7b1ec6d9721e22677c6b03
Parents: 1c9b5b4
Author: benwa <bt...@linagora.com>
Authored: Wed Jul 18 10:46:29 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Jul 20 10:03:53 2018 +0200
----------------------------------------------------------------------
pom.xml | 20 --------------------
1 file changed, 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/88656adc/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fbcd856..5f642c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -606,7 +606,6 @@
<commons-daemon.version>1.1.0</commons-daemon.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-cli.version>1.4</commons-cli.version>
- <commons-pool.version>1.6</commons-pool.version>
<commons-configuration.version>1.9</commons-configuration.version>
<commons-dbcp.version>1.4</commons-dbcp.version>
<commons-net.version>3.6</commons-net.version>
@@ -1827,25 +1826,6 @@
<version>${commons-net.version}</version>
</dependency>
<dependency>
- <groupId>commons-pool</groupId>
- <artifactId>commons-pool</artifactId>
- <version>${commons-pool.version}</version>
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xerces</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
<version>${concurrent.version}</version>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org