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