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