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 2019/01/29 12:15:31 UTC

[1/3] james-project git commit: LOCAL ONLY max C* mem

Repository: james-project
Updated Branches:
  refs/heads/master bad5da43e -> 862f680fe


LOCAL ONLY max C* mem


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

Branch: refs/heads/master
Commit: b209b83eb7d505b429c89d40027b5cbfe1220047
Parents: bad5da4
Author: Matthieu Baechler <ma...@apache.org>
Authored: Mon Nov 19 17:07:31 2018 +0100
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue Jan 29 09:00:00 2019 +0100

----------------------------------------------------------------------
 .../james/backends/cassandra/DockerCassandra.java  | 17 ++++++++++++++++-
 .../src/test/resources/logback-test.xml            |  6 +++---
 2 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b209b83e/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
index f66d483..4739d51 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
 import org.testcontainers.DockerClientFactory;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.containers.output.OutputFrame;
+import org.testcontainers.images.builder.ImageFromDockerfile;
 
 import com.github.dockerjava.api.DockerClient;
 import com.google.common.collect.ImmutableMap;
@@ -35,13 +36,27 @@ public class DockerCassandra {
 
     private static final int CASSANDRA_PORT = 9042;
 
+    private static final String CASSANDRA_CONFIG_DIR = "$CASSANDRA_CONFIG";
+    private static final String JVM_OPTIONS = CASSANDRA_CONFIG_DIR + "/jvm.options";
+
     private final GenericContainer<?> cassandraContainer;
     private final DockerClient client;
 
     @SuppressWarnings("resource")
     public DockerCassandra() {
         client = DockerClientFactory.instance().client();
-        cassandraContainer = new GenericContainer<>("cassandra:3.11.3")
+        boolean deleteOnExit = false;
+        int cassandraMemory = 650;
+        long cassandraContainerMemory = Float.valueOf(cassandraMemory * 1.5f * 1024 * 1024L).longValue();
+        cassandraContainer = new GenericContainer<>(
+            new ImageFromDockerfile("cassandra_3_11_3", deleteOnExit)
+                .withDockerfileFromBuilder(builder ->
+                    builder
+                        .from("cassandra:3.11.3")
+                        .env("ENV CASSANDRA_CONFIG", "/etc/cassandra")
+                        .run("echo \"-Xms" + cassandraMemory + "M\" >> " + JVM_OPTIONS)
+                        .run("echo \"-Xmx" + cassandraMemory + "M\" >> " + JVM_OPTIONS)
+                        .build()))
             .withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withTmpFs(ImmutableMap.of("/var/lib/cassandra", "rw,noexec,nosuid,size=200m")))
             .withExposedPorts(CASSANDRA_PORT)
             .withLogConsumer(DockerCassandra::displayDockerLog);

http://git-wip-us.apache.org/repos/asf/james-project/blob/b209b83e/server/data/data-jmap-cassandra/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/test/resources/logback-test.xml b/server/data/data-jmap-cassandra/src/test/resources/logback-test.xml
index fe43bd9..dbdaa3c 100644
--- a/server/data/data-jmap-cassandra/src/test/resources/logback-test.xml
+++ b/server/data/data-jmap-cassandra/src/test/resources/logback-test.xml
@@ -16,13 +16,13 @@
                 <appender-ref ref="CONSOLE" />
         </root>
 
+        <logger name="com.github.dockerjava"  level="OFF"/>
 
         <logger name="org.apache.james" level="WARN" >
                 <appender-ref ref="CONSOLE" />
         </logger>
 
-        <logger name="org.apache.james.backends.cassandra.DockerCassandraRule" level="DEBUG" >
-                <appender-ref ref="CONSOLE" />
-        </logger>
+        <logger name="cassandra_3_11_3" level="DEBUG" />
 
+        <logger name="org.apache.james.backends.cassandra.DockerCassandraRule" level="DEBUG" />
 </configuration>


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


[2/3] james-project git commit: JAMES-2630 fix ordering of message attachment issue

Posted by ma...@apache.org.
JAMES-2630 fix ordering of message attachment issue


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

Branch: refs/heads/master
Commit: c617824dcdd84842b74c28668d6fc590987df1ea
Parents: bad5da4
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jan 29 10:12:23 2019 +0100
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue Jan 29 13:14:01 2019 +0100

----------------------------------------------------------------------
 .../mailbox/cassandra/mail/AttachmentLoader.java      | 14 +++++++++-----
 .../cassandra/mail/CassandraMessageMapper.java        |  6 ++----
 2 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c617824d/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
index d57e99a..b3eef40 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
@@ -27,6 +27,7 @@ import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 
+import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableList;
 import reactor.core.publisher.Flux;
@@ -41,22 +42,25 @@ public class AttachmentLoader {
     }
 
     public Mono<SimpleMailboxMessage> addAttachmentToMessage(Pair<MessageWithoutAttachment, Stream<MessageAttachmentRepresentation>> messageRepresentation, MessageMapper.FetchType fetchType) {
+        return loadAttachments(messageRepresentation.getRight(), fetchType)
+            .map(attachments -> messageRepresentation.getLeft().toMailboxMessage(attachments));
+    }
 
+    private Mono<List<MessageAttachment>> loadAttachments(Stream<MessageAttachmentRepresentation> messageAttachmentRepresentations, MessageMapper.FetchType fetchType) {
         if (fetchType == MessageMapper.FetchType.Body || fetchType == MessageMapper.FetchType.Full) {
-            return getAttachments(messageRepresentation.getRight().collect(ImmutableList.toImmutableList()))
-                        .map(attachments -> messageRepresentation.getLeft().toMailboxMessage(attachments));
+            return getAttachments(messageAttachmentRepresentations.collect(Guavate.toImmutableList()));
         } else {
-            return Mono.just(messageRepresentation.getLeft().toMailboxMessage(ImmutableList.of()));
+            return Mono.just(ImmutableList.of());
         }
     }
 
     @VisibleForTesting
     Mono<List<MessageAttachment>> getAttachments(List<MessageAttachmentRepresentation> attachmentRepresentations) {
         return Flux.fromIterable(attachmentRepresentations)
-                .flatMap(attachmentRepresentation ->
+                .flatMapSequential(attachmentRepresentation ->
                         attachmentMapper.getAttachmentsAsMono(attachmentRepresentation.getAttachmentId())
                             .map(attachment -> constructMessageAttachment(attachment, attachmentRepresentation)))
-                .collectList();
+                .collect(Guavate.toImmutableList());
     }
 
     private MessageAttachment constructMessageAttachment(Attachment attachment, MessageAttachmentRepresentation messageAttachmentRepresentation) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c617824d/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 d2c4006..af3d7dc 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
@@ -24,7 +24,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.function.Function;
 
 import javax.mail.Flags;
 import javax.mail.Flags.Flag;
@@ -163,9 +162,8 @@ public class CassandraMessageMapper implements MessageMapper {
     public Iterator<MailboxMessage> findInMailbox(Mailbox mailbox, MessageRange messageRange, FetchType ftype, int max) throws MailboxException {
         CassandraId mailboxId = (CassandraId) mailbox.getMailboxId();
         return retrieveMessages(retrieveMessageIds(mailboxId, messageRange), ftype, Limit.from(max))
-            .map(simpleMailboxMessage -> (MailboxMessage) simpleMailboxMessage)
-            .collectSortedList(Comparator.comparing(MailboxMessage::getUid))
-            .flatMapIterable(Function.identity())
+            .map(MailboxMessage.class::cast)
+            .sort(Comparator.comparing(MailboxMessage::getUid))
             .toIterable()
             .iterator();
     }


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


[3/3] james-project git commit: Merge branch 'fix-master-reactor'

Posted by ma...@apache.org.
Merge branch 'fix-master-reactor'


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

Branch: refs/heads/master
Commit: 862f680fefd533e87ff86d9ff664e0203f8d3d19
Parents: b209b83 c617824
Author: Matthieu Baechler <ma...@apache.org>
Authored: Tue Jan 29 13:14:24 2019 +0100
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue Jan 29 13:14:24 2019 +0100

----------------------------------------------------------------------
 .../mailbox/cassandra/mail/AttachmentLoader.java      | 14 +++++++++-----
 .../cassandra/mail/CassandraMessageMapper.java        |  6 ++----
 2 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------



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