You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/02/27 13:20:10 UTC

[1/2] james-project git commit: MPT-36 Fix Eclipse warnings

Repository: james-project
Updated Branches:
  refs/heads/master 7ac76b489 -> 44728d3fc


MPT-36 Fix Eclipse warnings


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/02d415c3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/02d415c3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/02d415c3

Branch: refs/heads/master
Commit: 02d415c35f96e8b07607ff2a5b609fc7c0d8b7c6
Parents: 7ac76b4
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Feb 22 14:23:21 2017 +0100
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Feb 27 11:51:37 2017 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/james/mailbox/MessageManager.java  | 2 --
 .../james/mailbox/cassandra/mail/CassandraMessageMapper.java    | 5 +++--
 .../james/mailbox/cassandra/mail/AttachmentLoaderTest.java      | 1 -
 .../james/mailbox/store/search/SimpleMessageSearchIndex.java    | 1 -
 .../mailbox/store/search/AbstractMessageSearchIndexTest.java    | 2 +-
 .../test/java/org/apache/james/util/OptionalConverterTest.java  | 1 -
 .../jmap/DefaultMailboxesProvisioningFilterThreadTest.java      | 1 -
 7 files changed, 4 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
index 972b33c..596cb82 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
@@ -40,8 +40,6 @@ import org.apache.james.mailbox.model.MessageResult.FetchGroup;
 import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.mailbox.model.SearchQuery;
 
-import com.google.common.base.Objects;
-
 /**
  * Interface which represent a Mailbox
  * 

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 47fb80d..1a93e26 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -167,8 +167,9 @@ public class CassandraMessageMapper implements MessageMapper {
             messageRepresentions = messageDAO.retrieveMessages(messageIds, fetchType, limit).join();
         if (fetchType == FetchType.Body || fetchType == FetchType.Full) {
             return CompletableFutureUtil.allOf(messageRepresentions
-                .map(pair -> attachmentLoader.getAttachments(pair.getRight().collect(Guavate.toImmutableList()))
-                    .thenApply(attachments -> Pair.of(pair.getLeft(), attachments))))
+                .map((Pair<CassandraMessageDAO.MessageWithoutAttachment, Stream<CassandraMessageDAO.MessageAttachmentRepresentation>> pair) -> 
+                    attachmentLoader.getAttachments(pair.getRight().collect(Guavate.toImmutableList()))
+                        .thenApply(attachments -> Pair.of(pair.getLeft(), attachments))))
                 .join()
                 .map(Throwing.function(pair -> pair.getLeft()
                     .toMailboxMessage(pair.getRight()

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
index 0474727..a5bb631 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
@@ -32,7 +32,6 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.Cid;
 import org.apache.james.mailbox.model.MessageAttachment;
-import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.util.OptionalConverter;
 import org.assertj.core.data.MapEntry;
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
index a3660f4..d95b22a 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
@@ -20,7 +20,6 @@ package org.apache.james.mailbox.store.search;
 
 import java.util.ArrayList;
 import java.util.EnumSet;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 4b1ef79..785e216 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -276,7 +276,7 @@ public abstract class AbstractMessageSearchIndexTest {
 
         SearchQuery searchQuery = new SearchQuery();
 
-        ComposedMessageId addedAfterDuplicatedMessage = myFolderMessageManager.appendMessage(
+        myFolderMessageManager.appendMessage(
                 ClassLoader.getSystemResourceAsStream("eml/mail.eml"),
                 new Date(1406930400000L),
                 session,

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
index 5356f63..baa3aa0 100644
--- a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
@@ -21,7 +21,6 @@ package org.apache.james.util;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Optional;
-import java.util.stream.Collectors;
 
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/02d415c3/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
index c486baa..162bdb2 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
@@ -22,7 +22,6 @@ import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[2/2] james-project git commit: MPT-36 Introduce TIMER mpt scripts command

Posted by ad...@apache.org.
MPT-36 Introduce TIMER mpt scripts command


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/44728d3f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/44728d3f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/44728d3f

Branch: refs/heads/master
Commit: 44728d3fcd1b6948caa30b6d0f2ad337bd1f218a
Parents: 02d415c
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Feb 22 15:36:04 2017 +0100
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Feb 27 11:51:44 2017 +0100

----------------------------------------------------------------------
 .../protocol/FileProtocolSessionBuilder.java    |  9 +++
 .../james/mpt/protocol/ProtocolSession.java     | 82 ++++++++++++++++++++
 .../mpt/protocol/ProtocolSessionBuilder.java    |  2 +
 .../james/imap/scripts/FetchEnvelope.test       | 13 +++-
 4 files changed, 105 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/44728d3f/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 3648a11..8488db5 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
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.james.mpt.protocol.ProtocolSession.TimerCommand;
 
 /**
  * A builder which generates a ProtocolSession from a test file.
@@ -41,6 +42,9 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
     public static final String WARN = "WARN";
     public static final String ERR = "ERR";
 
+    private static final int TIMER_COMMAND_START = TIMER.length() + 1;
+    private static final int TIMER_COMMAND_END = TIMER_COMMAND_START + 5;
+
     /**
      * Builds a ProtocolSession by reading lines from the test file with the
      * supplied name.
@@ -177,6 +181,11 @@ public class FileProtocolSessionBuilder extends ProtocolSessionBuilder {
                     }
                     sessionNumber = Integer.parseInt(number);
                 }
+                else if (next.startsWith(TIMER)) {
+                    TimerCommand timerCommand = TimerCommand.from(next.substring(TIMER_COMMAND_START, TIMER_COMMAND_END));
+                    String timerName = next.substring(TIMER_COMMAND_END + 1);
+                    session.TIMER(timerCommand, timerName);
+                }
                 else {
                     String prefix = next;
                     if (next.length() > 3) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/44728d3f/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java b/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
index 5045acb..bd26549 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
@@ -21,8 +21,11 @@ package org.apache.james.mpt.protocol;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
 import org.apache.james.mpt.api.ProtocolInteractor;
@@ -30,6 +33,8 @@ import org.apache.james.mpt.api.Session;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Stopwatch;
+
 /**
  * A protocol session which can be run against a reader and writer, which checks
  * the server response against the expected values. TODO make ProtocolSession
@@ -58,6 +63,8 @@ public class ProtocolSession implements ProtocolInteractor {
 
     private boolean continueAfterFailure = false;
 
+    private Map<String, Stopwatch> timers = new HashMap<String, Stopwatch>();
+
     public final boolean isContinueAfterFailure() {
         return continueAfterFailure;
     }
@@ -207,6 +214,10 @@ public class ProtocolSession implements ProtocolInteractor {
         testElements.add(new ReinitElement(sessionNumber));
     }
 
+    public void TIMER(TimerCommand timerCommand, String timerName) {
+        testElements.add(new TimerElement(timerCommand, timerName));
+    }
+
     /**
      * A client request, which write the specified message to a Writer.
      */
@@ -520,6 +531,77 @@ public class ProtocolSession implements ProtocolInteractor {
         }
     }
 
+    protected enum TimerCommand {
+        START, PRINT, RESET;
+
+        public static TimerCommand from(String value) throws InvalidServerResponseException {
+            if (value.equalsIgnoreCase("start")) {
+                return START;
+            }
+            if (value.equalsIgnoreCase("print")) {
+                return PRINT;
+            }
+            if (value.equalsIgnoreCase("reset")) {
+                return RESET;
+            }
+            throw new InvalidServerResponseException("Invalid TIMER command '" + value + "'");
+        }
+    }
+
+    private class TimerElement implements ProtocolElement {
+
+        private TimerCommand timerCommand;
+        private String timerName;
+
+        public TimerElement(TimerCommand timerCommand, String timerName) {
+            this.timerCommand = timerCommand;
+            this.timerName = timerName;
+        }
+
+        @Override
+        public void testProtocol(Session[] sessions, boolean continueAfterFailure) throws Exception {
+            switch(timerCommand) {
+            case START:
+                start();
+                break;
+            case PRINT:
+                print();
+                break;
+            case RESET:
+                reset();
+                break;
+            default:
+                throw new InvalidServerResponseException("Invalid TIMER command '" + timerCommand + "' for timer name: '" + timerName + "'");
+            }
+        }
+
+        private void start() {
+            timers.put(timerName, Stopwatch.createStarted());
+        }
+
+        private void print() throws InvalidServerResponseException {
+            Stopwatch stopwatch = timers.get(timerName);
+            if (stopwatch == null) {
+                throw new InvalidServerResponseException("TIMER '" + timerName + "' undefined");
+            }
+            LOGGER.info("Time spent in '" + timerName + "': " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
+        }
+
+        private void reset() throws InvalidServerResponseException {
+            Stopwatch stopwatch = timers.get(timerName);
+            if (stopwatch == null) {
+                throw new InvalidServerResponseException("TIMER '" + timerName + "' undefined");
+            }
+            stopwatch.reset();
+            stopwatch.start();
+        }
+
+        @Override
+        public boolean isClient() {
+            return false;
+        }
+    }
+
     /**
      * Allow you to wait a given time at a given point of the test script
      */

http://git-wip-us.apache.org/repos/asf/james-project/blob/44728d3f/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java b/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
index 657c64a..ccf50ed 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
@@ -59,6 +59,8 @@ public class ProtocolSessionBuilder {
 
     public static final String REINIT = "REINIT";
 
+    public static final String TIMER = "TIMER";
+
     private final Properties variables;
     
     public ProtocolSessionBuilder() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/44728d3f/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test
index 481f157..8f7067b 100644
--- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test
+++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test
@@ -17,6 +17,8 @@
 # under the License.                                           #
 ################################################################
 
+TIMER start append
+
 C: A007 APPEND selected {596+}
 C: Date: Mon, 10 Feb 1994 21:52:25 -0800 (PST)
 C: From: mooch@owatagu.siam.edu
@@ -37,10 +39,19 @@ S: \* 5 EXISTS
 S: \* 5 RECENT
 S: A007 OK (\[.+\] )?APPEND completed.
 
+TIMER print append
+
+TIMER start fetch
+
 C: f1 FETCH 1 (ENVELOPE)
 S: \* 1 FETCH \(ENVELOPE \(\"Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu.siam.edu\"\)\) NIL NIL NIL \"<B2...@Blurdybloop.COM>\"\)\)
 S: f1 OK FETCH completed.
 
+TIMER print fetch
+TIMER reset fetch
+
 C: f2 FETCH 5 (ENVELOPE)
 S: \* 5 FETCH \(ENVELOPE \(\"Mon, 10 Feb 1994 21:52:25 -0800 \(PST\)\" \"Re: Test 05\" \(\(NIL NIL \"mooch\" \"owatagu.siam.edu\"\)\) \(\(NIL NIL \"mooch\" \"owatagu.siam.edu\"\)\(\"Boss\" NIL \"boss\" \"owatagu.siam.edu\"\)\) \(\(\"Bin\" NIL \"dev.null\" \"owatagu.siam.edu\"\)\(\"Thin Air\" NIL \"air\" \"owatagu.siam.edu\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop.COM\"\)\(\"Sue\" NIL \"sue.foo\" \"Blurdybloop.COM\"\)\) \(\(\"Moo\" NIL \"moo\" \"example.COM\"\)\(\"Hugh\" NIL \"hugh\" \"example.COM\"\)\) \(\(\"Secret\" NIL \"spy\" \"owatagu.siam.ed\"\)\(\"Audit\" NIL \"audit\" \"owatagu.siam.ed\"\)\) \"<B2...@Blurdybloop.COM>\" \"<12...@owatagu.siam.edu>\"\)\)
-S: f2 OK FETCH completed.
\ No newline at end of file
+S: f2 OK FETCH completed.
+
+TIMER print fetch
\ 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