[01/15] james-project git commit: JAMES-1785 Improve constants in SetMessagesMethodTest
Repository: james-project Updated Branches: refs/heads/master 8813d2e57 -> 339880196 JAMES-1785 Improve constants in SetMessagesMethodTest Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f96b6d2b Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f96b6d2b Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f96b6d2b Branch: refs/heads/master Commit: f96b6d2b5697d3ca862f5bc0c4cef34f11a105e0 Parents: 8813d2e Author: Benoit TellierAuthored: Tue Jan 17 14:07:23 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:41:40 2017 +0700 -- .../integration/SetMessagesMethodTest.java | 194 +-- 1 file changed, 97 insertions(+), 97 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/f96b6d2b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 1cbfa7a..4eec224 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -88,6 +88,8 @@ public abstract class SetMessagesMethodTest { private static final String SECOND_NAME = "[1][0]"; private static final String SECOND_ARGUMENTS = "[1][1]"; private static final String USERS_DOMAIN = "domain.tld"; +private static final String USERNAME = "username@" + USERS_DOMAIN; +public static final MailboxPath USER_MAILBOX = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox"); private static final String NOT_UPDATED = ARGUMENTS + ".notUpdated"; private ConditionFactory calmlyAwait; @@ -99,7 +101,6 @@ public abstract class SetMessagesMethodTest { protected abstract void await(); private AccessToken accessToken; -private String username; private JmapJamesServer jmapServer; @Before @@ -115,14 +116,13 @@ public abstract class SetMessagesMethodTest { .build(); RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); -username = "username@" + USERS_DOMAIN; String password = "password"; jmapServer.serverProbe().addDomain(USERS_DOMAIN); -jmapServer.serverProbe().addUser(username, password); -jmapServer.serverProbe().createMailbox("#private", username, "inbox"); -accessToken = JmapAuthentication.authenticateJamesUser(username, password); +jmapServer.serverProbe().addUser(USERNAME, password); +jmapServer.serverProbe().createMailbox("#private", USERNAME, "inbox"); +accessToken = JmapAuthentication.authenticateJamesUser(USERNAME, password); - jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, username, "outbox"); + jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "outbox"); await(); Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS; @@ -207,7 +207,7 @@ public abstract class SetMessagesMethodTest { @Test public void setMessagesShouldReturnNotDestroyedWhenNoMatchingMessage() throws Exception { - jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, username, "mailbox"); + jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox"); String messageId = randomMessageId().serialize(); given() @@ -230,9 +230,9 @@ public abstract class SetMessagesMethodTest { @Test public void setMessagesShouldReturnDestroyedWhenMatchingMessage() throws Exception { // Given - jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, username, "mailbox"); + jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox"); -ComposedMessageId message = jmapServer.serverProbe().appendMessage(username, new MailboxPath(MailboxConstants.USER_NAMESPACE, username, "mailbox"), +ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, USER_MAILBOX, new
[03/15] james-project git commit: JAMES-1785 Using SystemMailboxesProvider to look up role and remove the redundance code
JAMES-1785 Using SystemMailboxesProvider to look up role and remove the redundance code Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1acd459a Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1acd459a Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1acd459a Branch: refs/heads/master Commit: 1acd459ab233aa41a40cfd2985c5753b516cb452 Parents: c996365 Author: Quynh NguyenAuthored: Thu Jan 19 17:46:58 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:45:34 2017 +0700 -- .../james/jmap/send/PostDequeueDecorator.java | 38 +++- .../jmap/send/PostDequeueDecoratorFactory.java | 10 +++--- .../jmap/utils/SystemMailboxesProvider.java | 6 .../jmap/utils/SystemMailboxesProviderImpl.java | 3 +- .../SetMessagesCreationProcessorTest.java | 1 + .../jmap/send/PostDequeueDecoratorTest.java | 3 +- 6 files changed, 29 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/1acd459a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java -- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java index 9179b7e..8a122db 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java @@ -24,15 +24,13 @@ import java.util.List; import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException; import org.apache.james.jmap.model.mailbox.Role; import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException; +import org.apache.james.jmap.utils.SystemMailboxesProvider; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageIdManager; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.FetchGroupImpl; import org.apache.james.mailbox.model.MailboxId; -import org.apache.james.mailbox.model.MailboxMetaData; -import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.model.MailboxQuery; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageId.Factory; import org.apache.james.mailbox.model.MessageResult; @@ -51,15 +49,18 @@ public class PostDequeueDecorator extends MailQueueItemDecorator { private final MailboxManager mailboxManager; private final Factory messageIdFactory; private final MessageIdManager messageIdManager; +private final SystemMailboxesProvider systemMailboxesProvider; public PostDequeueDecorator(MailQueueItem mailQueueItem, -MailboxManager mailboxManager, -MessageId.Factory messageIdFactory, -MessageIdManager messageIdManager) { +MailboxManager mailboxManager, +Factory messageIdFactory, +MessageIdManager messageIdManager, +SystemMailboxesProvider systemMailboxesProvider) { super(mailQueueItem); this.mailboxManager = mailboxManager; this.messageIdFactory = messageIdFactory; this.messageIdManager = messageIdManager; +this.systemMailboxesProvider = systemMailboxesProvider; } @Override @@ -95,7 +96,7 @@ public class PostDequeueDecorator extends MailQueueItemDecorator { try { messageIdFactory.fromString((String) messageId); } catch (Exception e) { -LOG.error("Invalid messageId: " + (String) messageId); +LOG.error("Invalid messageId: " + messageId); return false; } return true; @@ -123,28 +124,13 @@ public class PostDequeueDecorator extends MailQueueItemDecorator { } private MailboxId getSentMailboxId(MailboxSession session) throws MailboxRoleNotFoundException, MailboxException { -return getMailboxIdForRole(Role.SENT, session); +return systemMailboxesProvider.findMailbox(Role.SENT, session) +.getId(); } private MailboxId getOutboxMailboxId(MailboxSession session) throws MailboxRoleNotFoundException, MailboxException { -return getMailboxIdForRole(Role.OUTBOX, session); +return systemMailboxesProvider.findMailbox(Role.OUTBOX, session) +.getId(); } -private MailboxId getMailboxIdForRole(Role role, MailboxSession session) throws
[08/15] james-project git commit: JAMES-1785 Adding integration tests for inMailboxes
JAMES-1785 Adding integration tests for inMailboxes Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/17a1cb86 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/17a1cb86 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/17a1cb86 Branch: refs/heads/master Commit: 17a1cb861427138defa47d2078141e6b5cbabcb4 Parents: b0e8e3e Author: Quynh NguyenAuthored: Thu Jan 19 12:02:41 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:14 2017 +0700 -- .../integration/SetMessagesMethodTest.java | 375 +-- .../methods/SetMessagesUpdateProcessor.java | 9 +- 2 files changed, 350 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/17a1cb86/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 93b7a50..587dec3 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -24,7 +24,9 @@ import static com.jayway.restassured.RestAssured.with; import static com.jayway.restassured.config.EncoderConfig.encoderConfig; import static com.jayway.restassured.config.RestAssuredConfig.newConfig; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.notIn; import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.endsWith; import static org.hamcrest.Matchers.equalTo; @@ -1641,7 +1643,37 @@ public abstract class SetMessagesMethodTest { } @Test -public void movingShouldBeSupported() throws Exception { +public void mailboxIdsShouldReturnUpdatedWhenNoChange() throws Exception { +ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z"); +ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, new MailboxPath("#private", USERNAME, "inbox"), +new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags()); + +String messageToMoveId = message.getMessageId().serialize(); +String mailboxId = message.getMailboxId().serialize(); +String requestBody = "[" + +" [" + +"\"setMessages\","+ +"{" + +" \"update\": { \"" + messageToMoveId + "\" : {" + +"\"mailboxIds\": [\"" + mailboxId + "\"]" + +" }}" + +"}," + +"\"#0\"" + +" ]" + +"]"; + +given() +.header("Authorization", accessToken.serialize()) +.body(requestBody) +.when() +.post("/jmap") +.then() +.log().ifValidationFails() +.spec(getSetMessagesUpdateOKResponseAssertions(messageToMoveId)); +} + +@Test +public void mailboxIdsShouldBeInDestinationWhenUsingForMove() throws Exception { String newMailboxName = "heartFolder"; jmapServer.serverProbe().createMailbox("#private", USERNAME, newMailboxName); Mailbox heartFolder = jmapServer.serverProbe().getMailbox("#private", USERNAME, newMailboxName); @@ -1649,54 +1681,105 @@ public abstract class SetMessagesMethodTest { ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z"); ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, new MailboxPath("#private", USERNAME, "inbox"), -new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags()); +new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags()); String messageToMoveId = message.getMessageId().serialize(); String requestBody = "[" + -
[10/15] james-project git commit: JAMES-1785 Improve UpdateMessagePatchValidator
JAMES-1785 Improve UpdateMessagePatchValidator Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d409d2b2 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d409d2b2 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d409d2b2 Branch: refs/heads/master Commit: d409d2b2c7285a0737a5c63e52f0c4da747ce1ed Parents: 17a1cb8 Author: Quynh NguyenAuthored: Thu Jan 19 10:42:29 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- .../james/jmap/methods/UpdateMessagePatchValidator.java | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/d409d2b2/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/UpdateMessagePatchValidator.java -- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/UpdateMessagePatchValidator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/UpdateMessagePatchValidator.java index 963c074..fc77821 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/UpdateMessagePatchValidator.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/UpdateMessagePatchValidator.java @@ -50,20 +50,19 @@ public class UpdateMessagePatchValidator implements Validator { @Override public Set validate(ObjectNode json) { -ImmutableSet compilation = ImmutableSet.of(); try { parser.readValue(json.toString(), UpdateMessagePatch.class); } catch (JsonMappingException e) { -compilation = ImmutableSet.of(ValidationResult.builder() +return ImmutableSet.of(ValidationResult.builder() .property(firstFieldFrom(e.getPath()).orElse(ValidationResult.UNDEFINED_PROPERTY)) .message(e.getMessage()) .build()); } catch (IOException e) { -compilation = ImmutableSet.of(ValidationResult.builder() +return ImmutableSet.of(ValidationResult.builder() .message(e.getMessage()) .build()); } -return compilation; +return ImmutableSet.of(); } private Optional firstFieldFrom(List references) { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[11/15] james-project git commit: JAMES-1785 Update message documentation
JAMES-1785 Update message documentation Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/33988019 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/33988019 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/33988019 Branch: refs/heads/master Commit: 3398801964cebc727eac423b5ed64df6f73a0951 Parents: 91e352e Author: Quynh NguyenAuthored: Thu Jan 19 12:56:11 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- server/protocols/jmap/doc/specs/spec/message.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/33988019/server/protocols/jmap/doc/specs/spec/message.mdwn -- diff --git a/server/protocols/jmap/doc/specs/spec/message.mdwn b/server/protocols/jmap/doc/specs/spec/message.mdwn index ab144cb..debcd8a 100644 --- a/server/protocols/jmap/doc/specs/spec/message.mdwn +++ b/server/protocols/jmap/doc/specs/spec/message.mdwn @@ -247,7 +247,6 @@ The *setMessages* method encompasses: - Changing the flags of a message (unread/flagged status) - Adding/removing a message to/from mailboxes (moving a message) -Not implemented - Deleting messages It takes the following arguments: @@ -328,6 +327,7 @@ If any of the properties in the update are invalid (immutable and different to t If the *id* given does not correspond to a Message in the given account, reject the update with a `notFound` error. To **delete a message** to trash, simply change the `mailboxIds` property so it is now in the mailbox with `role == "trash"`. If the mailbox has the property `mustBeOnlyMailbox == true`, it must be removed from all other mailboxes. Otherwise, leave it in those mailboxes so that it will be restored to its previous state if undeleted. +Not implemented Sending messages - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[15/15] james-project git commit: JAMES-1785 GetMessages with multiple mailboxes integration tests
JAMES-1785 GetMessages with multiple mailboxes integration tests Also includes builder enhancements Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9875a46b Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9875a46b Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9875a46b Branch: refs/heads/master Commit: 9875a46b7920371a9103eeb60306f3d54563d154 Parents: bd6bd22 Author: Benoit TellierAuthored: Wed Jan 18 10:25:04 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- .../org/apache/james/utils/JmapGuiceProbe.java | 23 ++- .../cucumber/GetMessagesMethodStepdefs.java | 31 .../test/resources/cucumber/GetMessages.feature | 9 ++ .../james/jmap/methods/GetMessagesMethod.java | 1 + .../org/apache/james/jmap/model/Message.java| 8 +++-- .../apache/james/jmap/model/MessageFactory.java | 11 +++ .../james/jmap/model/MessageFactoryTest.java| 2 +- .../apache/james/jmap/model/MessageTest.java| 24 +++ .../jmap/model/SetMessagesResponseTest.java | 4 +-- 9 files changed, 89 insertions(+), 24 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/9875a46b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/JmapGuiceProbe.java -- diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/JmapGuiceProbe.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/JmapGuiceProbe.java index cf6..05e1646 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/JmapGuiceProbe.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/JmapGuiceProbe.java @@ -19,6 +19,8 @@ package org.apache.james.utils; +import java.util.Arrays; + import javax.inject.Inject; import org.apache.james.jmap.JMAPServer; @@ -26,16 +28,30 @@ import org.apache.james.jmap.api.vacation.AccountId; import org.apache.james.jmap.api.vacation.Vacation; import org.apache.james.jmap.api.vacation.VacationPatch; import org.apache.james.jmap.api.vacation.VacationRepository; +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.MessageIdManager; +import org.apache.james.mailbox.exception.MailboxException; +import org.apache.james.mailbox.model.MailboxId; +import org.apache.james.mailbox.model.MessageId; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class JmapGuiceProbe implements GuiceProbe { +private static final Logger LOGGER = LoggerFactory.getLogger(JmapGuiceProbe.class); + private final VacationRepository vacationRepository; private final JMAPServer jmapServer; +private final MessageIdManager messageIdManager; +private final MailboxManager mailboxManager; @Inject -private JmapGuiceProbe(VacationRepository vacationRepository, JMAPServer jmapServer) { +private JmapGuiceProbe(VacationRepository vacationRepository, JMAPServer jmapServer, MessageIdManager messageIdManager, MailboxManager mailboxManager) { this.vacationRepository = vacationRepository; this.jmapServer = jmapServer; +this.messageIdManager = messageIdManager; +this.mailboxManager = mailboxManager; } public int getJmapPort() { @@ -49,4 +65,9 @@ public class JmapGuiceProbe implements GuiceProbe { public Vacation retrieveVacation(AccountId accountId) { return vacationRepository.retrieveVacation(accountId).join(); } + +public void setInMailboxes(MessageId messageId, String username, MailboxId... mailboxIds) throws MailboxException { +MailboxSession mailboxSession = mailboxManager.createSystemSession(username, LOGGER); +messageIdManager.setInMailboxes(messageId, Arrays.asList(mailboxIds), mailboxSession); +} } http://git-wip-us.apache.org/repos/asf/james-project/blob/9875a46b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java index 26b1e29..85c38d8 100644 ---
[12/15] james-project git commit: JAMES-1785 Improve SetMessagesMethodTest.java with indents
http://git-wip-us.apache.org/repos/asf/james-project/blob/91e352e4/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 587dec3..caf57a2 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -144,20 +144,20 @@ public abstract class SetMessagesMethodTest { private String getMailboxId(AccessToken accessToken, Role role) { return getAllMailboxesIds(accessToken).stream() -.filter(x -> x.get("role").equals(role.serialize())) -.map(x -> x.get("id")) -.findFirst().get(); +.filter(x -> x.get("role").equals(role.serialize())) +.map(x -> x.get("id")) +.findFirst().get(); } private List
[13/15] james-project git commit: JAMES-1785 Improve SetMessagesMethodTest.java with indents
JAMES-1785 Improve SetMessagesMethodTest.java with indents Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/91e352e4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/91e352e4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/91e352e4 Branch: refs/heads/master Commit: 91e352e41c0c325d1a3a624ba069c234253ae383 Parents: d30b24e Author: Quynh NguyenAuthored: Thu Jan 19 12:46:31 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- .../integration/SetMessagesMethodTest.java | 1404 +- 1 file changed, 702 insertions(+), 702 deletions(-) -- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[14/15] james-project git commit: JAMES-1785 Adding tests for GetMessages on message in multiple mailboxes
JAMES-1785 Adding tests for GetMessages on message in multiple mailboxes Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/bd6bd223 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/bd6bd223 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/bd6bd223 Branch: refs/heads/master Commit: bd6bd22379434ca494ea774fad9b70f68d607c37 Parents: d409d2b Author: Benoit TellierAuthored: Wed Jan 18 09:40:07 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- .../james/jmap/methods/GetMessagesMethod.java | 22 +++--- .../apache/james/jmap/methods/JmapResponse.java | 2 +- .../james/jmap/model/GetMessagesResponse.java | 7 .../org/apache/james/jmap/model/Message.java| 7 .../apache/james/jmap/model/MessageFactory.java | 26 +++- .../jmap/methods/GetMessagesMethodTest.java | 42 6 files changed, 90 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/bd6bd223/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java -- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java index 15fbceb..41f68ae 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java @@ -39,7 +39,9 @@ import org.apache.james.jmap.model.MessageProperties.HeaderProperty; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageIdManager; import org.apache.james.mailbox.model.FetchGroupImpl; +import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MessageId; +import org.apache.james.mailbox.model.MessageResult; import com.fasterxml.jackson.databind.ser.PropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; @@ -104,7 +106,7 @@ public class GetMessagesMethod implements Method { } private GetMessagesResponse getMessagesResponse(MailboxSession mailboxSession, GetMessagesRequest getMessagesRequest) { - getMessagesRequest.getAccountId().ifPresent(GetMessagesMethod::notImplemented); +getMessagesRequest.getAccountId().ifPresent((input) -> notImplemented()); Function loadMessages = loadMessage(mailboxSession); Function convertToJmapMessage = Throwing.function(messageFactory::fromMetaDataWithContent).sneakyThrow(); @@ -117,18 +119,28 @@ public class GetMessagesMethod implements Method { return GetMessagesResponse.builder().messages(result).expectedMessageIds(getMessagesRequest.getIds()).build(); } -private static void notImplemented(String input) { +private static void notImplemented() { throw new NotImplementedException(); } private Function loadMessage(MailboxSession mailboxSession) { -ThrowingFunction toMetaDataWithContentStream = (MessageId messageId) -> { -return messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.FULL_CONTENT, mailboxSession) +ThrowingFunction toMetaDataWithContentStream = +(MessageId messageId) -> { +ImmutableList messageResults = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.FULL_CONTENT, mailboxSession) .stream() +.collect(Guavate.toImmutableList()); +List mailboxIds = messageResults.stream() +.map(MessageResult::getMailboxId) +.collect(Guavate.toImmutableList()); +return messageResults.stream() +.findFirst() +.map(Stream::of) +.orElse(Stream.of()) .map(Throwing.function(MetaDataWithContent::builderFromMessageResult).sneakyThrow()) .map(builder -> builder.messageId(messageId)) +.map(builder -> builder.mailboxIds(mailboxIds)) .map(MetaDataWithContent.Builder::build); -}; +}; return Throwing.function(toMetaDataWithContentStream).sneakyThrow(); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/bd6bd223/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java
[02/15] james-project git commit: JAMES-1785 Add more binding for SystemMailboxesProvider
JAMES-1785 Add more binding for SystemMailboxesProvider Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c996365e Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c996365e Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c996365e Branch: refs/heads/master Commit: c996365e12637ab8c5d13669e8b86b34bc377e6d Parents: f96b6d2 Author: Quynh NguyenAuthored: Wed Jan 18 11:20:14 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:41:41 2017 +0700 -- .../src/main/java/org/apache/james/jmap/JMAPModule.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/c996365e/server/container/guice/guice-common/src/main/java/org/apache/james/jmap/JMAPModule.java -- diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/jmap/JMAPModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/jmap/JMAPModule.java index af78a3a..7269cb1 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/jmap/JMAPModule.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/jmap/JMAPModule.java @@ -65,6 +65,7 @@ public class JMAPModule extends AbstractModule { bind(RequestHandler.class).in(Scopes.SINGLETON); bind(UploadHandler.class).in(Scopes.SINGLETON); bind(MailboxBasedHtmlTextExtractor.class).in(Scopes.SINGLETON); +bind(SystemMailboxesProviderImpl.class).in(Scopes.SINGLETON); bind(HtmlTextExtractor.class).to(MailboxBasedHtmlTextExtractor.class); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(RequiredCapabilitiesPrecondition.class); - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[07/15] james-project git commit: JAMES-1785 Moving to trash is not yet supported
JAMES-1785 Moving to trash is not yet supported Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/52be7f03 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/52be7f03 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/52be7f03 Branch: refs/heads/master Commit: 52be7f0373ad321574b08985d5b91bafa43e148d Parents: 89994c3 Author: Benoit TellierAuthored: Tue Jan 17 14:41:16 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:46:06 2017 +0700 -- .../integration/SetMessagesMethodTest.java | 41 1 file changed, 41 insertions(+) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/52be7f03/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 4eec224..3fb43cd 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -123,6 +123,8 @@ public abstract class SetMessagesMethodTest { accessToken = JmapAuthentication.authenticateJamesUser(USERNAME, password); jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "outbox"); + jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "trash"); + jmapServer.serverProbe().createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "draft"); await(); Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS; @@ -1677,6 +1679,45 @@ public abstract class SetMessagesMethodTest { + "(through reference chain: org.apache.james.jmap.model.Builder[\"mailboxIds\"])")) .body(ARGUMENTS + ".updated", hasSize(0)); } + +@Test +public void moveToTrashIsNotYetSupported() throws Exception { +String newMailboxName = "heartFolder"; +jmapServer.serverProbe().createMailbox("#private", USERNAME, newMailboxName); +String trashId = jmapServer.serverProbe().getMailbox("#private", USERNAME, "trash").getMailboxId().serialize(); + +ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z"); +ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, new MailboxPath("#private", USERNAME, "inbox"), +new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags()); + +String messageToMoveId = message.getMessageId().serialize(); +String requestBody = "[" + +" [" + +"\"setMessages\","+ +"{" + +" \"update\": { \"" + messageToMoveId + "\" : {" + +"\"mailboxIds\": [\"" + trashId + "\"]" + +" }}" + +"}," + +"\"#0\"" + +" ]" + +"]"; + +given() +.header("Authorization", accessToken.serialize()) +.body(requestBody) +.when() +.post("/jmap") +.then() +.log().ifValidationFails() +.statusCode(200) +.body(NAME, equalTo("messagesSet")) +.body(NOT_UPDATED, hasKey(messageToMoveId)) +.body(NOT_UPDATED + "[\""+messageToMoveId+"\"].type", equalTo("invalidProperties")) +.body(NOT_UPDATED + "[\""+messageToMoveId+"\"].properties", hasSize(1)) +.body(NOT_UPDATED + "[\""+messageToMoveId+"\"].properties[0]", equalTo("inMailboxes")) +.body(ARGUMENTS + ".updated", hasSize(0)); +} @Test public void setMessagesShouldReturnAttachmentsNotFoundWhenBlobIdDoesntExist() throws Exception { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[06/15] james-project git commit: JAMES-1785 Copying a message to trash is allowed
JAMES-1785 Copying a message to trash is allowed Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b0e8e3ed Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b0e8e3ed Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b0e8e3ed Branch: refs/heads/master Commit: b0e8e3ed38e2069acecc6fdf81e10e21ea5f87fa Parents: 52be7f0 Author: Benoit TellierAuthored: Tue Jan 17 15:09:33 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:46:06 2017 +0700 -- .../integration/SetMessagesMethodTest.java | 44 1 file changed, 44 insertions(+) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/b0e8e3ed/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java -- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java index 3fb43cd..93b7a50 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java @@ -1718,6 +1718,50 @@ public abstract class SetMessagesMethodTest { .body(NOT_UPDATED + "[\""+messageToMoveId+"\"].properties[0]", equalTo("inMailboxes")) .body(ARGUMENTS + ".updated", hasSize(0)); } + +@Test +public void copyToTrashShouldWork() throws Exception { +String newMailboxName = "heartFolder"; +jmapServer.serverProbe().createMailbox("#private", USERNAME, newMailboxName); +String trashId = jmapServer.serverProbe().getMailbox("#private", USERNAME, "trash").getMailboxId().serialize(); + +ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z"); +ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, new MailboxPath("#private", USERNAME, "inbox"), +new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags()); + +String messageToMoveId = message.getMessageId().serialize(); +String mailboxId = message.getMailboxId().serialize(); +String requestBody = "[" + +" [" + +"\"setMessages\","+ +"{" + +" \"update\": { \"" + messageToMoveId + "\" : {" + +"\"mailboxIds\": [\"" + trashId + "," + mailboxId + "\"]" + +" }}" + +"}," + +"\"#0\"" + +" ]" + +"]"; + +given() +.header("Authorization", accessToken.serialize()) +.body(requestBody) +.when() +.post("/jmap"); + +String firstMessage = ARGUMENTS + ".list[0]"; +given() +.header("Authorization", accessToken.serialize()) +.body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]") +.when() +.post("/jmap") +.then() +.statusCode(200) +.log().ifValidationFails() +.body(NAME, equalTo("messages")) +.body(ARGUMENTS + ".list", hasSize(1)) +.body(firstMessage + ".mailboxIds", contains(trashId, mailboxId)); +} @Test public void setMessagesShouldReturnAttachmentsNotFoundWhenBlobIdDoesntExist() throws Exception { - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[04/15] james-project git commit: JAMES-1785 Testing for SystemMailboxesProviderImpl
JAMES-1785 Testing for SystemMailboxesProviderImpl Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/54fe9a4b Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/54fe9a4b Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/54fe9a4b Branch: refs/heads/master Commit: 54fe9a4bd00b69cc048d554464ee987f3c302343 Parents: 1acd459 Author: Quynh NguyenAuthored: Wed Jan 18 16:29:53 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:46:01 2017 +0700 -- .../utils/SystemMailboxesProviderImplTest.java | 137 ++- 1 file changed, 132 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/54fe9a4b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java -- diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java index 3ee868d..1d40c41 100644 --- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java +++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/SystemMailboxesProviderImplTest.java @@ -19,15 +19,142 @@ package org.apache.james.jmap.utils; -import org.junit.Ignore; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.stream.Stream; + +import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException; +import org.apache.james.jmap.model.mailbox.Role; +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.MessageManager; +import org.apache.james.mailbox.exception.MailboxException; +import org.apache.james.mailbox.manager.MailboxManagerFixture; +import org.apache.james.mailbox.mock.MockMailboxSession; +import org.apache.james.mailbox.model.MailboxId; +import org.apache.james.mailbox.model.MailboxMetaData; +import org.apache.james.mailbox.model.MailboxPath; +import org.apache.james.mailbox.model.MailboxQuery; +import org.apache.james.mailbox.model.TestId; +import org.apache.james.mailbox.store.SimpleMailboxMetaData; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; + +import com.google.common.collect.ImmutableList; public class SystemMailboxesProviderImplTest { -@Ignore("1716 this class needs a test suite") +private static final MailboxPath INBOX = MailboxManagerFixture.MAILBOX_PATH1; +private static final MailboxPath OUTBOX = MailboxManagerFixture.MAILBOX_PATH2; +private static final char DELIMITER = '.'; + +private static final MailboxId inboxId = TestId.of(1); +private static final MailboxId outboxId = TestId.of(2); + +private static final MailboxMetaData inboxMetadata = new SimpleMailboxMetaData(INBOX, inboxId, DELIMITER); +private static final MailboxMetaData outboxMetadata = new SimpleMailboxMetaData(OUTBOX, outboxId, DELIMITER); + +private MailboxSession mailboxSession = new MockMailboxSession("user"); +private SystemMailboxesProviderImpl systemMailboxProvider; + +private MailboxManager mailboxManager; + +private MessageManager inboxMessageManager; +private MessageManager outboxMessageManager; + +@Rule +public ExpectedException expectedException = ExpectedException.none(); + +@Before +public void setUp() throws Exception { +mailboxManager = mock(MailboxManager.class); +inboxMessageManager = mock(MessageManager.class); +outboxMessageManager = mock(MessageManager.class); + +systemMailboxProvider = new SystemMailboxesProviderImpl(mailboxManager); +} + +@Test +public void findMailboxesShouldReturnEmptyWhenEmptySearchResult() throws Exception { +when(mailboxManager.search(any(MailboxQuery.class), eq(mailboxSession))).thenReturn(ImmutableList.of()); + +assertThat(systemMailboxProvider.listMailboxes(Role.INBOX, mailboxSession)).isEmpty(); +} + +@Test +public void findMailboxesShouldFilterTheMailboxByItsRole() throws Exception { +when(mailboxManager.search(any(MailboxQuery.class), eq(mailboxSession))).thenReturn(ImmutableList.of(inboxMetadata, outboxMetadata)); +when(mailboxManager.getMailbox(eq(INBOX), eq(mailboxSession))).thenReturn(inboxMessageManager); + +Stream result = systemMailboxProvider.listMailboxes(Role.INBOX,
[09/15] james-project git commit: JAMES-1785 Improve MailboxNotFoundException with an error message
JAMES-1785 Improve MailboxNotFoundException with an error message Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d30b24e4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d30b24e4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d30b24e4 Branch: refs/heads/master Commit: d30b24e42cd902688fc4be4a6c9d623626e63f94 Parents: 9875a46 Author: Benoit TellierAuthored: Wed Jan 18 10:26:02 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:58:20 2017 +0700 -- .../apache/james/mailbox/exception/MailboxNotFoundException.java| 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/d30b24e4/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java -- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java index 8301d76..2e538cb 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java @@ -44,6 +44,7 @@ public class MailboxNotFoundException extends MailboxException { *name of the mailbox, not null */ public MailboxNotFoundException(MailboxPath mailboxPath) { +super(mailboxPath + " can not be found"); this.mailboxName = mailboxPath.toString(); } - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[05/15] james-project git commit: JAMES-1785 Implement move feature on JMAP using setInMailboxes
JAMES-1785 Implement move feature on JMAP using setInMailboxes Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/89994c30 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/89994c30 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/89994c30 Branch: refs/heads/master Commit: 89994c30809c7a963938a7a6eebe9b62baa62774 Parents: 54fe9a4 Author: Quynh NguyenAuthored: Wed Jan 18 11:29:33 2017 +0700 Committer: Quynh Nguyen Committed: Tue Jan 24 09:46:05 2017 +0700 -- .../methods/SetMessagesUpdateProcessor.java | 49 ++-- .../james/jmap/model/UpdateMessagePatch.java| 32 +++-- .../methods/SetMessagesUpdateProcessorTest.java | 4 +- 3 files changed, 64 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/89994c30/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java -- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java index ba55a8d..f04e180 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java @@ -28,21 +28,28 @@ import java.util.stream.Stream; import javax.inject.Inject; import javax.mail.Flags; +import org.apache.commons.lang.NotImplementedException; import org.apache.james.jmap.model.MessageProperties; import org.apache.james.jmap.model.SetError; import org.apache.james.jmap.model.SetMessagesRequest; import org.apache.james.jmap.model.SetMessagesResponse; import org.apache.james.jmap.model.UpdateMessagePatch; +import org.apache.james.jmap.model.mailbox.Role; +import org.apache.james.jmap.utils.SystemMailboxesProvider; +import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageIdManager; import org.apache.james.mailbox.MessageManager; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.FetchGroupImpl; +import org.apache.james.mailbox.model.MailboxId; +import org.apache.james.mailbox.model.MailboxId.Factory; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.github.steveash.guavate.Guavate; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -54,13 +61,21 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor { private final UpdateMessagePatchConverter updatePatchConverter; private final MessageIdManager messageIdManager; +private final Factory mailboxIdFactory; +private final MailboxManager mailboxManager; +private final SystemMailboxesProvider systemMailboxesProvider; @Inject @VisibleForTesting SetMessagesUpdateProcessor( -UpdateMessagePatchConverter updatePatchConverter, -MessageIdManager messageIdManager) { +UpdateMessagePatchConverter updatePatchConverter, +MessageIdManager messageIdManager, +Factory mailboxIdFactory, +MailboxManager mailboxManager, SystemMailboxesProvider systemMailboxesProvider) { this.updatePatchConverter = updatePatchConverter; this.messageIdManager = messageIdManager; +this.mailboxIdFactory = mailboxIdFactory; +this.mailboxManager = mailboxManager; +this.systemMailboxesProvider = systemMailboxesProvider; } public SetMessagesResponse process(SetMessagesRequest request, MailboxSession mailboxSession) { @@ -78,14 +93,16 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor { SetMessagesResponse.Builder builder) { try { List messages = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, mailboxSession); + if (messages.isEmpty()) { addMessageIdNotFoundToResponse(messageId, builder); } else { +setInMailboxes(messageId, updateMessagePatch, mailboxSession); Optional updateError = messages.stream() .flatMap(message -> updateFlags(messageId, updateMessagePatch, mailboxSession, message)) .findAny(); if (updateError.isPresent()) { -
james-project git commit: JAMES-1915 Using concurrent safe collection for ConcurrentTestRunnerTest
Repository: james-project Updated Branches: refs/heads/master 84ed5a28a -> 8813d2e57 JAMES-1915 Using concurrent safe collection for ConcurrentTestRunnerTest Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8813d2e5 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8813d2e5 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8813d2e5 Branch: refs/heads/master Commit: 8813d2e57195ef60dc2403fedc341e7018059de4 Parents: 84ed5a2 Author: Benoit TellierAuthored: Mon Jan 23 09:47:31 2017 +0700 Committer: Benoit Tellier Committed: Tue Jan 24 08:33:14 2017 +0700 -- .../mail/model/concurrency/ConcurrentTestRunnerTest.java | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/8813d2e5/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/concurrency/ConcurrentTestRunnerTest.java -- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/concurrency/ConcurrentTestRunnerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/concurrency/ConcurrentTestRunnerTest.java index 60fa367..302ed9e 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/concurrency/ConcurrentTestRunnerTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/concurrency/ConcurrentTestRunnerTest.java @@ -21,15 +21,13 @@ package org.apache.james.mailbox.store.mail.model.concurrency; import static org.assertj.core.api.Assertions.assertThat; -import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.TimeUnit; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import com.google.common.collect.Lists; - public class ConcurrentTestRunnerTest { public static final ConcurrentTestRunner.BiConsumer EMPTY_BI_CONSUMER = new ConcurrentTestRunner.BiConsumer() { @@ -120,18 +118,18 @@ public class ConcurrentTestRunnerTest { public void runShouldPerformAllOperations() throws Exception { int operationCount = 2; int threadCount = 2; -final List list = Lists.newArrayList(); +final ConcurrentLinkedQueue queue = new ConcurrentLinkedQueue(); ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, new ConcurrentTestRunner.BiConsumer() { @Override public void consume(int threadNumber, int step) throws Exception { -list.add(threadNumber + ":" + step); +queue.add(threadNumber + ":" + step); } }) .run(); assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, TimeUnit.MILLISECONDS)).isTrue(); -assertThat(list).containsOnly("0:0", "0:1", "1:0", "1:1"); +assertThat(queue).containsOnly("0:0", "0:1", "1:0", "1:1"); } } - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[01/10] james-project git commit: Fix Eclipse Neon.2 compilation error in lambdas
Repository: james-project Updated Branches: refs/heads/master fabccf51c -> 84ed5a28a Fix Eclipse Neon.2 compilation error in lambdas Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/35b7fe34 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/35b7fe34 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/35b7fe34 Branch: refs/heads/master Commit: 35b7fe34173f417a96acaaf377ce34d6e686b5fc Parents: fabccf5 Author: Antoine DupratAuthored: Thu Jan 19 10:23:49 2017 +0100 Committer: Antoine Duprat Committed: Mon Jan 23 09:58:23 2017 +0100 -- .../james/mailbox/cassandra/mail/CassandraMessageIdMapper.java | 2 +- .../james/mailbox/cassandra/mail/CassandraMessageMapper.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/35b7fe34/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java -- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java index 31fc26a..b4e0474 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java @@ -289,7 +289,7 @@ public class CassandraMessageIdMapper implements MessageIdMapper { return imapUidDAO.updateMetadata(newComposedId, oldComposedId.getModSeq()) .thenCompose(updateSuccess -> Optional.of(updateSuccess) .filter(b -> b) -.map(any -> messageIdDAO.updateMetadata(newComposedId).thenApply(v -> updateSuccess)) +.map((Boolean any) -> messageIdDAO.updateMetadata(newComposedId).thenApply(v -> updateSuccess)) .orElse(CompletableFuture.completedFuture(updateSuccess))) .thenApply(success -> Optional.of(success) .filter(b -> b) http://git-wip-us.apache.org/repos/asf/james-project/blob/35b7fe34/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 339f9ab..79763ee 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 @@ -325,7 +325,7 @@ public class CassandraMessageMapper implements MessageMapper { return imapUidDAO.updateMetadata(composedMessageIdWithMetaData, oldModSeq) .thenCompose(success -> Optional.of(success) .filter(b -> b) -.map(any -> messageIdDAO.updateMetadata(composedMessageIdWithMetaData) +.map((Boolean any) -> messageIdDAO.updateMetadata(composedMessageIdWithMetaData) .thenApply(v -> success)) .orElse(CompletableFuture.completedFuture(success))) .join(); - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[02/10] james-project git commit: Fix Eclipse warnings
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/4a59c1b2 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4a59c1b2 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4a59c1b2 Branch: refs/heads/master Commit: 4a59c1b216bd8cd7c284cb6c472cf5cadaa97e32 Parents: 35b7fe3 Author: Antoine DupratAuthored: Thu Jan 19 10:27:45 2017 +0100 Committer: Antoine Duprat Committed: Mon Jan 23 10:05:14 2017 +0100 -- .../cassandra/mail/CassandraMessageIdDAO.java | 1 - .../CassandraCombinationManagerTestSystem.java| 6 ++ .../store/AbstractCombinationManagerTest.java | 1 + mailet/icalendar/pom.xml | 5 + .../james/transport/mailets/ICalendarParser.java | 2 ++ .../mailets/ICALToJsonAttributeTest.java | 3 +-- .../transport/mailets/ICalendarParserTest.java| 18 -- mailet/standard/pom.xml | 1 - 8 files changed, 11 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/4a59c1b2/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java -- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java index 9a6acc7..e7d5a34 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java @@ -69,7 +69,6 @@ import com.google.common.collect.ImmutableSet; public class CassandraMessageIdDAO { -private static final String MOD_SEQ_CONDITION = "modSeqCondition"; private static final String IMAP_UID_GTE = IMAP_UID + "_GTE"; private static final String IMAP_UID_LTE = IMAP_UID + "_LTE"; http://git-wip-us.apache.org/repos/asf/james-project/blob/4a59c1b2/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java -- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java index d3387fd..42ef8e5 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java @@ -31,7 +31,7 @@ import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; public class CassandraCombinationManagerTestSystem extends CombinationManagerTestSystem { -private final CassandraMessageId.Factory messageIdFactory; + private final CassandraMailboxSessionMapperFactory mapperFactory; private final CassandraMailboxManager cassandraMailboxManager; @@ -39,14 +39,12 @@ public class CassandraCombinationManagerTestSystem extends CombinationManagerTes CassandraMailboxSessionMapperFactory mapperFactory = CassandraTestSystemFixture.createMapperFactory(); return new CassandraCombinationManagerTestSystem(CassandraTestSystemFixture.createMessageIdManager(mapperFactory, quotaManager, dispatcher), -new CassandraMessageId.Factory(), mapperFactory, CassandraTestSystemFixture.createMailboxManager(mapperFactory)); } -private CassandraCombinationManagerTestSystem(MessageIdManager messageIdManager, CassandraMessageId.Factory messageIdFactory, CassandraMailboxSessionMapperFactory mapperFactory, MailboxManager cassandraMailboxManager) { +private CassandraCombinationManagerTestSystem(MessageIdManager messageIdManager, CassandraMailboxSessionMapperFactory mapperFactory, MailboxManager cassandraMailboxManager) { super(cassandraMailboxManager, messageIdManager); -this.messageIdFactory = messageIdFactory; this.mapperFactory = mapperFactory; this.cassandraMailboxManager = (CassandraMailboxManager)cassandraMailboxManager; } http://git-wip-us.apache.org/repos/asf/james-project/blob/4a59c1b2/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java -- diff --git
[06/10] james-project git commit: MAILET-149 Adding integration tests for Base64 ICS attachments
MAILET-149 Adding integration tests for Base64 ICS attachments Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f1955243 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f1955243 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f1955243 Branch: refs/heads/master Commit: f19552431b9c751f3c1342f79cefd51d53d4ae6c Parents: 03c8f69 Author: Benoit TellierAuthored: Fri Jan 20 11:05:15 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:24 2017 +0100 -- .../mailet/base/test/MimeMessageBuilder.java| 16 ++-- .../mailets/ICSAttachmentWorkflowTest.java | 89 2 files changed, 99 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/f1955243/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java -- diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java index 1246bf7..40a7e18 100644 --- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java +++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java @@ -21,6 +21,7 @@ package org.apache.mailet.base.test; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.util.Arrays; import java.util.List; import java.util.Properties; @@ -136,21 +137,20 @@ public class MimeMessageBuilder { } public BodyPart build() throws IOException, MessagingException { -Preconditions.checkState(dataAsString.isPresent() ^ dataAsBytes.isPresent(), "one and only one of data as string or data as bytes should be specified"); +Preconditions.checkState(!(dataAsString.isPresent() && dataAsBytes.isPresent()), "Can not specify data as bytes and data as string at the same time"); MimeBodyPart bodyPart = new MimeBodyPart(); -if (dataAsString.isPresent()) { +if (dataAsBytes.isPresent()) { bodyPart.setDataHandler( new DataHandler( new ByteArrayDataSource( -dataAsString.or(DEFAULT_VALUE), +dataAsBytes.get(), type.or(DEFAULT_TEXT_PLAIN_UTF8_TYPE)) )); -} -if (dataAsBytes.isPresent()) { +} else { bodyPart.setDataHandler( new DataHandler( new ByteArrayDataSource( -dataAsBytes.get(), +dataAsString.or(DEFAULT_VALUE), type.or(DEFAULT_TEXT_PLAIN_UTF8_TYPE)) )); } @@ -198,6 +198,10 @@ public class MimeMessageBuilder { return new BodyPartBuilder(); } +public static BodyPart bodyPartFromBytes(byte[] bytes) throws MessagingException { +return new MimeBodyPart(new ByteArrayInputStream(bytes)); +} + private Optional text = Optional.absent(); private Optional subject = Optional.absent(); private Optional sender = Optional.absent(); http://git-wip-us.apache.org/repos/asf/james-project/blob/f1955243/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java index 2a6ffe1..376f5fe 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java @@ -201,6 +201,35 @@ public class ICSAttachmentWorkflowTest { "END:VEVENT\n" + "END:VCALENDAR\n"; +private static final String ICS_BASE64 = "Content-Type: application/ics;\n" + +" name=\"invite.ics\"\n" + +"Content-Transfer-Encoding: base64\n" + +"Content-Disposition: attachment;\n" + +" filename=\"invite.ics\"\n" + +"\n" + + "QkVHSU46VkNBTEVOREFSDQpQUk9ESUQ6LS8vR29vZ2xlIEluYy8vR29vZ2xlIENhbGVuZGFy\n" + + "IDcwLjkwNTQvL0VODQpWRVJTSU9OOjIuMA0KQ0FMU0NBTEU6R1JFR09SSUFODQpNRVRIT0Q6\n" + +
[09/10] james-project git commit: MAILET-149 Integration test for multiple out of order ICS publish when several attachments
MAILET-149 Integration test for multiple out of order ICS publish when several attachments Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d0b61696 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d0b61696 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d0b61696 Branch: refs/heads/master Commit: d0b6169635417f66c7495e12f6e857955288edb5 Parents: 229c4d3 Author: Benoit TellierAuthored: Fri Jan 20 15:03:33 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:25 2017 +0100 -- .../mailets/ICSAttachmentWorkflowTest.java | 86 ++-- 1 file changed, 63 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/d0b61696/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java index 376f5fe..9302fe7 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java @@ -47,6 +47,7 @@ import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableList; import com.jayway.awaitility.Awaitility; import com.jayway.awaitility.Duration; import com.jayway.awaitility.core.ConditionFactory; @@ -243,6 +244,7 @@ public class ICSAttachmentWorkflowTest { private MimeMessage messageWithoutICSAttached; private MimeMessage messageWithICSAttached; private MimeMessage messageWithICSBase64Attached; +private MimeMessage messageWithThreeICSAttached; @Before public void setup() throws Exception { @@ -349,6 +351,29 @@ public class ICSAttachmentWorkflowTest { MimeMessageBuilder.bodyPartFromBytes(ICS_BASE64.getBytes(Charsets.UTF_8))) .setSubject("test") .build(); + +messageWithThreeICSAttached = MimeMessageBuilder.mimeMessageBuilder() +.setMultipartWithBodyParts( +MimeMessageBuilder.bodyPartBuilder() +.data("simple text") +.build(), +MimeMessageBuilder.bodyPartBuilder() +.data(ICS_1.getBytes(Charsets.UTF_8)) +.filename("test1.txt") +.disposition("attachment") +.build(), +MimeMessageBuilder.bodyPartBuilder() +.data(ICS_2.getBytes(Charsets.UTF_8)) +.filename("test2.txt") +.disposition("attachment") +.build(), +MimeMessageBuilder.bodyPartBuilder() +.data(ICS_3.getBytes(Charsets.UTF_8)) +.filename("test3.txt") +.disposition("attachment") +.build()) +.setSubject("test") +.build(); } @After @@ -507,29 +532,6 @@ public class ICSAttachmentWorkflowTest { @Test public void headersShouldBeFilledOnlyWithOneICalAttachmentWhenMailHasSeveral() throws Exception { -MimeMessage messageWithThreeICSAttached = MimeMessageBuilder.mimeMessageBuilder() -.setMultipartWithBodyParts( -MimeMessageBuilder.bodyPartBuilder() -.data("simple text") -.build(), -MimeMessageBuilder.bodyPartBuilder() -.data(ICS_1.getBytes(Charsets.UTF_8)) -.filename("test1.txt") -.disposition("attachment") -.build(), -MimeMessageBuilder.bodyPartBuilder() -.data(ICS_2.getBytes(Charsets.UTF_8)) -.filename("test2.txt") -.disposition("attachment") -.build(), -MimeMessageBuilder.bodyPartBuilder() -.data(ICS_3.getBytes(Charsets.UTF_8)) -.filename("test3.txt") -.disposition("attachment") -.build()) -.setSubject("test") -.build(); - Mail mail = FakeMail.builder() .mimeMessage(messageWithThreeICSAttached) .sender(new MailAddress(FROM)) @@ -551,4 +553,42 @@ public class
[07/10] james-project git commit: MAILET-149 Solving ICS ordering issue
MAILET-149 Solving ICS ordering 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/03c8f69b Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/03c8f69b Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/03c8f69b Branch: refs/heads/master Commit: 03c8f69b209b2a0267bf390cb2ecd3e70c13c1d9 Parents: b1b4631 Author: Benoit TellierAuthored: Fri Jan 20 10:33:23 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:24 2017 +0100 -- .../transport/mailets/ICSAttachmentWorkflowTest.java | 11 --- 1 file changed, 4 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/03c8f69b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java index a6b03e5..2a6ffe1 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java @@ -41,7 +41,6 @@ import org.apache.mailet.base.test.FakeMail; import org.apache.mailet.base.test.MimeMessageBuilder; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; @@ -417,7 +416,6 @@ public class ICSAttachmentWorkflowTest { } } -@Ignore("See JIRA issue MAILET-151") @Test public void headersShouldBeFilledOnlyWithOneICalAttachmentWhenMailHasSeveral() throws Exception { MimeMessage messageWithThreeICSAttached = MimeMessageBuilder.mimeMessageBuilder() @@ -427,17 +425,17 @@ public class ICSAttachmentWorkflowTest { .build(), MimeMessageBuilder.bodyPartBuilder() .data(ICS_1.getBytes(Charsets.UTF_8)) -.filename("test.txt") +.filename("test1.txt") .disposition("attachment") .build(), MimeMessageBuilder.bodyPartBuilder() .data(ICS_2.getBytes(Charsets.UTF_8)) -.filename("test.txt") +.filename("test2.txt") .disposition("attachment") .build(), MimeMessageBuilder.bodyPartBuilder() .data(ICS_3.getBytes(Charsets.UTF_8)) -.filename("test.txt") +.filename("test3.txt") .disposition("attachment") .build()) .setSubject("test") @@ -456,8 +454,7 @@ public class ICSAttachmentWorkflowTest { calmlyAwait.atMost(Duration.ONE_MINUTE).until(() -> imapMessageReader.userReceivedMessage(RECIPIENT, PASSWORD)); String receivedHeaders = imapMessageReader.readFirstMessageHeadersInInbox(RECIPIENT, PASSWORD); - -//Here only the third ICal attachment is used to fill headers + assertThat(receivedHeaders).contains("X-MEETING-UID: " + ICS_UID); assertThat(receivedHeaders).contains("X-MEETING-METHOD: " + ICS_METHOD); assertThat(receivedHeaders).contains("X-MEETING-SEQUENCE: " + ICS_SEQUENCE); - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[10/10] james-project git commit: MAILET-149 Filename should be generated when none
MAILET-149 Filename should be generated when none Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/84ed5a28 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/84ed5a28 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/84ed5a28 Branch: refs/heads/master Commit: 84ed5a28a266ec9102fc90896c52f62f10abf0db Parents: d0b6169 Author: Antoine DupratAuthored: Mon Jan 23 10:09:37 2017 +0100 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:26 2017 +0100 -- .../transport/mailets/StripAttachment.java | 6 +-- .../transport/mailets/StripAttachmentTest.java | 52 ++-- .../mailets/AmqpForwardAttachmentTest.java | 2 +- 3 files changed, 51 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/84ed5a28/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java -- diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java index 4bf7a5c..58b7304 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java @@ -31,6 +31,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.UUID; import java.util.regex.Pattern; import javax.mail.BodyPart; @@ -310,9 +311,6 @@ public class StripAttachment extends GenericMailet { private boolean shouldBeRemoved(BodyPart bodyPart, Mail mail) throws MessagingException, Exception { String fileName = getFilename(bodyPart); -if (fileName == null) { -return false; -} boolean shouldRemove = removeAttachments.equals(REMOVE_ALL); String decodedName = DecoderUtil.decodeEncodedWords(fileName, DecodeMonitor.SILENT); @@ -379,7 +377,7 @@ public class StripAttachment extends GenericMailet { if (fileName != null) { return renameWithConfigurationPattern(decodeFilename(fileName)); } -return fileName; +return UUID.randomUUID().toString(); } private String renameWithConfigurationPattern(String fileName) { http://git-wip-us.apache.org/repos/asf/james-project/blob/84ed5a28/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java -- diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java index 0c481c9..5995f98 100644 --- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java +++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java @@ -55,6 +55,8 @@ import org.junit.rules.TemporaryFolder; import com.google.common.base.Charsets; import com.google.common.base.Optional; +import com.google.common.base.Predicate; +import com.google.common.collect.FluentIterable; public class StripAttachmentTest { @@ -217,7 +219,7 @@ public class StripAttachmentTest { MimeMessageBuilder.bodyPartBuilder() .data("simple text") .build(), -createAttachmentBodyPart(expectedAttachmentContent, "temp.tmp", TEXT_HEADERS), +createAttachmentBodyPart(expectedAttachmentContent, "temp_filname.tmp", TEXT_HEADERS), createAttachmentBodyPart("\u0014\u00A3\u00E1\u00E2\u00E4", "winmail.dat", TEXT_HEADERS)) .build(); @@ -230,13 +232,26 @@ public class StripAttachmentTest { @SuppressWarnings("unchecked") Collection savedAttachments = (Collection) mail.getAttribute(StripAttachment.SAVED_ATTACHMENTS_ATTRIBUTE_KEY); assertThat(savedAttachments).isNotNull(); -assertThat(savedAttachments).hasSize(1); - -String attachmentFilename = savedAttachments.iterator().next(); +assertThat(savedAttachments).hasSize(2); +String attachmentFilename = retrieveFilenameStartingWith(savedAttachments, "temp_filname"); +assertThat(attachmentFilename).isNotNull(); assertThat(new File(folderPath + attachmentFilename)).hasContent(expectedAttachmentContent); } +private String retrieveFilenameStartingWith(Collection savedAttachments, final String filename) { +return FluentIterable.from(savedAttachments) +.filter(new
[08/10] james-project git commit: MAILET-149 Decode file names in StripAttachment
MAILET-149 Decode file names in StripAttachment Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/229c4d38 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/229c4d38 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/229c4d38 Branch: refs/heads/master Commit: 229c4d382db5f6884d1f2c136ab6feb5a3071dd7 Parents: f195524 Author: Benoit TellierAuthored: Fri Jan 20 14:36:48 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:25 2017 +0100 -- .../mailet/base/test/MimeMessageBuilder.java| 4 + .../transport/mailets/StripAttachment.java | 9 +- .../transport/mailets/StripAttachmentTest.java | 36 + .../standard/src/test/resources/mime/gmail.mime | 153 +++ 4 files changed, 199 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/229c4d38/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java -- diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java index 40a7e18..c75136d 100644 --- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java +++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java @@ -186,6 +186,10 @@ public class MimeMessageBuilder { return new MimeMessage(Session.getDefaultInstance(new Properties())); } +public static MimeMessage mimeMessageFromStream(InputStream inputStream) throws MessagingException { +return new MimeMessage(Session.getDefaultInstance(new Properties()), inputStream); +} + public static MimeMessageBuilder mimeMessageBuilder() { return new MimeMessageBuilder(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/229c4d38/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java -- diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java index 20ff946..4bf7a5c 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java @@ -43,6 +43,8 @@ import javax.mail.internet.MimeUtility; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.apache.james.mime4j.codec.DecodeMonitor; +import org.apache.james.mime4j.codec.DecoderUtil; import org.apache.mailet.Mail; import org.apache.mailet.MailetException; import org.apache.mailet.base.GenericMailet; @@ -313,9 +315,10 @@ public class StripAttachment extends GenericMailet { } boolean shouldRemove = removeAttachments.equals(REMOVE_ALL); -if (isMatching(bodyPart, fileName)) { -storeBodyPartAsFile(bodyPart, mail, fileName); -storeBodyPartAsMailAttribute(bodyPart, mail, fileName); +String decodedName = DecoderUtil.decodeEncodedWords(fileName, DecodeMonitor.SILENT); +if (isMatching(bodyPart, decodedName)) { +storeBodyPartAsFile(bodyPart, mail, decodedName); +storeBodyPartAsMailAttribute(bodyPart, mail, decodedName); if (removeAttachments.equals(REMOVE_MATCHED)) { shouldRemove = true; } http://git-wip-us.apache.org/repos/asf/james-project/blob/229c4d38/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java -- diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java index d888c44..0c481c9 100644 --- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java +++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java @@ -310,6 +310,42 @@ public class StripAttachmentTest { } @Test +public void serviceShouldDecodeHeaderFilenames() throws MessagingException, IOException { +StripAttachment mailet = new StripAttachment(); + +String customAttribute = "my.custom.attribute"; +FakeMailetConfig mci = FakeMailetConfig.builder() +.mailetName("Test") +.setProperty("pattern", ".*\\.tmp") +.setProperty("attribute", customAttribute) +.build(); +
[04/10] james-project git commit: MAILET-149 Use a test rule for AMQP queue
MAILET-149 Use a test rule for AMQP queue Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/6d1f913e Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/6d1f913e Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/6d1f913e Branch: refs/heads/master Commit: 6d1f913e9865c0f26f73bfff9f5c9cf8b37fad40 Parents: 28eedd5 Author: Benoit TellierAuthored: Fri Jan 20 10:03:30 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:24 2017 +0100 -- server/mailet/integration-testing/pom.xml | 2 +- .../mailets/AmqpForwardAttachmentTest.java | 66 ++- .../mailets/ICSAttachmentWorkflowTest.java | 76 +++- .../james/transport/mailets/amqp/AmqpRule.java | 115 +++ 4 files changed, 142 insertions(+), 117 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/6d1f913e/server/mailet/integration-testing/pom.xml -- diff --git a/server/mailet/integration-testing/pom.xml b/server/mailet/integration-testing/pom.xml index 31eb20c..be3cd62 100644 --- a/server/mailet/integration-testing/pom.xml +++ b/server/mailet/integration-testing/pom.xml @@ -220,7 +220,7 @@ org.assertj assertj-core - ${assertj-1.version} + ${assertj-3.version} test http://git-wip-us.apache.org/repos/asf/james-project/blob/6d1f913e/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java index 67f63cd..400f965 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java @@ -22,12 +22,8 @@ package org.apache.james.transport.mailets; import static org.assertj.core.api.Assertions.assertThat; import java.io.ByteArrayInputStream; -import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.net.InetAddress; import java.util.Properties; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import javax.mail.MessagingException; import javax.mail.Session; @@ -43,6 +39,7 @@ import org.apache.james.mailets.configuration.MailetContainer; import org.apache.james.mailets.configuration.ProcessorConfiguration; import org.apache.james.mailets.utils.IMAPMessageReader; import org.apache.james.mailets.utils.SMTPMessageSender; +import org.apache.james.transport.mailets.amqp.AmqpRule; import org.apache.james.util.streams.SwarmGenericContainer; import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; @@ -55,16 +52,10 @@ import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; import com.google.common.base.Charsets; -import com.google.common.net.InetAddresses; import com.google.common.primitives.Bytes; import com.jayway.awaitility.Awaitility; import com.jayway.awaitility.Duration; import com.jayway.awaitility.core.ConditionFactory; -import com.rabbitmq.client.BuiltinExchangeType; -import com.rabbitmq.client.Channel; -import com.rabbitmq.client.Connection; -import com.rabbitmq.client.ConnectionFactory; -import com.rabbitmq.client.GetResponse; public class AmqpForwardAttachmentTest { @@ -88,22 +79,16 @@ public class AmqpForwardAttachmentTest { .withAffinityToContainer(); public TemporaryFolder temporaryFolder = new TemporaryFolder(); +public AmqpRule amqpRule = new AmqpRule(rabbitMqContainer, EXCHANGE_NAME, ROUTING_KEY); @Rule -public final RuleChain chain = RuleChain.outerRule(temporaryFolder).around(rabbitMqContainer); +public final RuleChain chain = RuleChain.outerRule(temporaryFolder).around(rabbitMqContainer).around(amqpRule); private TemporaryJamesServer jamesServer; private ConditionFactory calmlyAwait; -private Channel channel; -private String queueName; -private Connection connection; @Before public void setup() throws Exception { -@SuppressWarnings("deprecation") -InetAddress containerIp = InetAddresses.forString(rabbitMqContainer.getContainerInfo().getNetworkSettings().getIpAddress()); -String amqpUri = "amqp://" +
[03/10] james-project git commit: MAILET-149 Use MimeMessageBuilder for mailet integration tests
MAILET-149 Use MimeMessageBuilder for mailet integration tests Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b1b46312 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b1b46312 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b1b46312 Branch: refs/heads/master Commit: b1b4631251096146492554f6063a2e5906366ea7 Parents: 6d1f913 Author: Benoit TellierAuthored: Fri Jan 20 10:29:55 2017 +0700 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:24 2017 +0100 -- .../mailet/base/test/MimeMessageBuilder.java| 34 +++-- .../mailets/AmqpForwardAttachmentTest.java | 49 ++- .../mailets/ICSAttachmentWorkflowTest.java | 146 +++ .../transport/mailets/StripAttachmentTest.java | 54 +++ 4 files changed, 114 insertions(+), 169 deletions(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/b1b46312/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java -- diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java index 42a2339..1246bf7 100644 --- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java +++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java @@ -91,7 +91,8 @@ public class MimeMessageBuilder { private Optional filename = Optional.absent(); private ImmutableList.Builder headers = ImmutableList.builder(); private Optional disposition = Optional.absent(); -private Optional data = Optional.absent(); +private Optional dataAsString = Optional.absent(); +private Optional dataAsBytes = Optional.absent(); private Optional type = Optional.absent(); public BodyPartBuilder cid(String cid) { @@ -110,7 +111,12 @@ public class MimeMessageBuilder { } public BodyPartBuilder data(String data) { -this.data = Optional.of(data); +this.dataAsString = Optional.of(data); +return this; +} + +public BodyPartBuilder data(byte[] data) { +this.dataAsBytes = Optional.of(data); return this; } @@ -130,14 +136,24 @@ public class MimeMessageBuilder { } public BodyPart build() throws IOException, MessagingException { -Preconditions.checkNotNull(data); +Preconditions.checkState(dataAsString.isPresent() ^ dataAsBytes.isPresent(), "one and only one of data as string or data as bytes should be specified"); MimeBodyPart bodyPart = new MimeBodyPart(); -bodyPart.setDataHandler( -new DataHandler( -new ByteArrayDataSource( -data.or(DEFAULT_VALUE), -type.or(DEFAULT_TEXT_PLAIN_UTF8_TYPE)) -)); +if (dataAsString.isPresent()) { +bodyPart.setDataHandler( +new DataHandler( +new ByteArrayDataSource( +dataAsString.or(DEFAULT_VALUE), +type.or(DEFAULT_TEXT_PLAIN_UTF8_TYPE)) +)); +} +if (dataAsBytes.isPresent()) { +bodyPart.setDataHandler( +new DataHandler( +new ByteArrayDataSource( +dataAsBytes.get(), +type.or(DEFAULT_TEXT_PLAIN_UTF8_TYPE)) +)); +} if (filename.isPresent()) { bodyPart.setFileName(filename.get()); } http://git-wip-us.apache.org/repos/asf/james-project/blob/b1b46312/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java index 400f965..2ebc972 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java @@ -21,15 +21,7 @@ package org.apache.james.transport.mailets; import static org.assertj.core.api.Assertions.assertThat; -import java.io.ByteArrayInputStream; -import
[05/10] james-project git commit: MAILET-149 Introduce ICS mailets workflow tests
MAILET-149 Introduce ICS mailets workflow tests Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/28eedd5d Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/28eedd5d Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/28eedd5d Branch: refs/heads/master Commit: 28eedd5d7f48f5b2b9c721349c7f8e90e42c5c9e Parents: 4a59c1b Author: Antoine DupratAuthored: Tue Jan 17 10:14:50 2017 +0100 Committer: Antoine Duprat Committed: Mon Jan 23 16:19:24 2017 +0100 -- server/mailet/integration-testing/pom.xml | 10 + .../james/mailets/utils/IMAPMessageReader.java | 10 +- .../mailets/ICSAttachmentWorkflowTest.java | 550 +++ 3 files changed, 569 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/james-project/blob/28eedd5d/server/mailet/integration-testing/pom.xml -- diff --git a/server/mailet/integration-testing/pom.xml b/server/mailet/integration-testing/pom.xml index 7395aa7..31eb20c 100644 --- a/server/mailet/integration-testing/pom.xml +++ b/server/mailet/integration-testing/pom.xml @@ -161,6 +161,11 @@ org.apache.james + apache-mailet-icalendar + ${project.version} + + + org.apache.james james-server-data-memory @@ -194,6 +199,11 @@ test + com.jayway.jsonpath + json-path + test + + com.rabbitmq amqp-client test http://git-wip-us.apache.org/repos/asf/james-project/blob/28eedd5d/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/utils/IMAPMessageReader.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/utils/IMAPMessageReader.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/utils/IMAPMessageReader.java index 17c7afd..931df1a 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/utils/IMAPMessageReader.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/utils/IMAPMessageReader.java @@ -54,9 +54,17 @@ public class IMAPMessageReader implements Closeable { } public String readFirstMessageInInbox(String user, String password) throws IOException { +return readFirstMessageInInbox(user, password, "(BODY[])"); +} + +public String readFirstMessageHeadersInInbox(String user, String password) throws IOException { +return readFirstMessageInInbox(user, password, "(RFC822.HEADER)"); +} + +private String readFirstMessageInInbox(String user, String password, String parameters) throws IOException { imapClient.login(user, password); imapClient.select("INBOX"); -imapClient.fetch("1:1", "(BODY[])"); +imapClient.fetch("1:1", parameters); return imapClient.getReplyString(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/28eedd5d/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java -- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java new file mode 100644 index 000..51a23e2 --- /dev/null +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java @@ -0,0 +1,550 @@ +/ + * 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, *
[jira] [Commented] (JAMES-1916) No HTML body returned in JMAP
[ https://issues.apache.org/jira/browse/JAMES-1916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15834539#comment-15834539 ] Laura Royet commented on JAMES-1916: https://github.com/linagora/james-project/issues/545 > No HTML body returned in JMAP > - > > Key: JAMES-1916 > URL: https://issues.apache.org/jira/browse/JAMES-1916 > Project: James Server > Issue Type: Bug > Components: JMAP >Reporter: Laura Royet >Assignee: Antoine Duprat > > No HTML body returned in JMAP -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-1916) No HTML body returned in JMAP
Laura Royet created JAMES-1916: -- Summary: No HTML body returned in JMAP Key: JAMES-1916 URL: https://issues.apache.org/jira/browse/JAMES-1916 Project: James Server Issue Type: Bug Components: JMAP Reporter: Laura Royet Assignee: Antoine Duprat No HTML body returned in JMAP -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org