[GitHub] james-project pull request: James 1653 Solving Java 6 compilation
GitHub user chibenwa opened a pull request: https://github.com/apache/james-project/pull/28 James 1653 Solving Java 6 compilation You can merge this pull request into a Git repository by running: $ git pull https://github.com/chibenwa/james-project JAMES-1653 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/james-project/pull/28.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #28 commit 6e1bf398616b4c857486de36a49015e785dc8428 Author: Benoit TellierDate: 2016-01-11T15:48:17Z JAMES-1653 Code is not java-6 compliant - contributed by Raphael Rouazana commit bc955ba170bad7805fc9e1601da490ba54cc9e26 Author: Benoit Tellier Date: 2016-01-11T16:12:47Z JAMES-1653 We should not depend on cassandra jars if the cassandra profile is not used commit 0f68903edff941313671c872629c2facf8d59dc6 Author: Benoit Tellier Date: 2016-01-11T16:21:46Z JAMES-1653 Solves docker compilation image creation issue commit 314f401560ae572605ad1910c1105b10c542f69e Author: Benoit Tellier Date: 2016-01-11T16:56:42Z JAMES-1653 Fixes ClassNotFound errors when using assertj-guava with Java 6 commit 6702f2ed610784c29b6460d8f5f712ddc6d3fe53 Author: Benoit Tellier Date: 2016-01-11T17:07:30Z JAMES-1653 Sieve announced capability string is not deterministic --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-1640) Cant recive emails
[ https://issues.apache.org/jira/browse/JAMES-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15095877#comment-15095877 ] Gaurav Talwar commented on JAMES-1640: -- Thanks Matthieu, Will try with the latest version of mailbox store. I used the zip from the location - https://repository.apache.org/content/repositories/snapshots/org/apache/james/james-server-app/3.0.0-beta5-SNAPSHOT/james-server-app-3.0.0-beta5-20150626.101708-1075-app.zip > Cant recive emails > -- > > Key: JAMES-1640 > URL: https://issues.apache.org/jira/browse/JAMES-1640 > Project: James Server > Issue Type: Bug > Components: MailStore & MailRepository >Affects Versions: 3.0.0-beta5 > Environment: Debian 8, Java 1.8.0_65 >Reporter: Lukas A > > When send a message from an other emailaccount like gmail. I'll get the > following error: > ERROR 22:46:13,893 | james.mailspooler | Exception processing mail while > spooling Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.camel.CamelExecutionException: Exception occurred > during execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba] > at > org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1287) > at > org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:618) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:454) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:450) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:131) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:62) > ... 5 more > Caused by: javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailetContext.sendMail(JamesMailetContext.java:409) > at > org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.toProcessor(AbstractStateMailetProcessor.java:160) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.access$1000(CamelMailetProcessor.java:48) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder$StateChangedProcessor.process(CamelMailetProcessor.java:207) > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at >
[jira] [Created] (JAMES-1655) JWT implementation
Antoine Duprat created JAMES-1655: - Summary: JWT implementation Key: JAMES-1655 URL: https://issues.apache.org/jira/browse/JAMES-1655 Project: James Server Issue Type: Sub-task Reporter: Antoine Duprat Add JWT implementation 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-1654) Public key configuration
Antoine Duprat created JAMES-1654: - Summary: Public key configuration Key: JAMES-1654 URL: https://issues.apache.org/jira/browse/JAMES-1654 Project: James Server Issue Type: Sub-task Reporter: Antoine Duprat Add public key in JMAP configuration -- 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] [Resolved] (JAMES-1654) Public key configuration
[ https://issues.apache.org/jira/browse/JAMES-1654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Antoine Duprat resolved JAMES-1654. --- Resolution: Fixed > Public key configuration > > > Key: JAMES-1654 > URL: https://issues.apache.org/jira/browse/JAMES-1654 > Project: James Server > Issue Type: Sub-task >Reporter: Antoine Duprat > > Add public key in JMAP configuration -- 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
svn commit: r1724385 - in /james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods: GetMailboxesMethodTest.java GetMessageListMethodTest.java GetMessa
Author: aduprat Date: Wed Jan 13 10:12:01 2016 New Revision: 1724385 URL: http://svn.apache.org/viewvc?rev=1724385=rev Log: JAMES-1648 Make json assertion more robust. Contributed by BaechlerModified: james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessageListMethodTest.java james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Modified: james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java?rev=1724385=1724384=1724385=diff == --- james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java (original) +++ james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java Wed Jan 13 10:12:01 2016 @@ -23,7 +23,6 @@ import static com.jayway.restassured.Res 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.hamcrest.Matchers.endsWith; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.startsWith; @@ -34,8 +33,6 @@ import java.util.Map; import javax.mail.Flags; -import com.google.common.collect.ImmutableMap; -import com.jayway.jsonpath.JsonPath; import org.apache.james.backends.cassandra.EmbeddedCassandra; import org.apache.james.jmap.JmapAuthentication; import org.apache.james.jmap.JmapServer; @@ -50,6 +47,8 @@ import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.jayway.jsonpath.JsonPath; import com.jayway.restassured.RestAssured; import com.jayway.restassured.http.ContentType; @@ -142,7 +141,7 @@ public abstract class GetMailboxesMethod @Test public void getMailboxesShouldReturnEmptyListWhenNoMailboxes() throws Exception { -given() +String response = given() .accept(ContentType.JSON) .contentType(ContentType.JSON) .header("Authorization", accessToken.serialize()) @@ -151,7 +150,12 @@ public abstract class GetMailboxesMethod .post("/jmap") .then() .statusCode(200) - .content(equalTo("[[\"mailboxes\",{\"accountId\":null,\"state\":null,\"list\":[],\"notFound\":null},\"#0\"]]")); +.content(startsWith("[[\"mailboxes\",")) +.extract() +.asString(); + +String firstResponsePath = "$.[0].[1]"; +assertThat(JsonPath.parse(response).read(firstResponsePath + ".list.length()")).isEqualTo(0); } @Test @@ -162,7 +166,7 @@ public abstract class GetMailboxesMethod jmapServer.serverProbe().appendMessage(user, new MailboxPath(MailboxConstants.USER_NAMESPACE, user, "name"), new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), false, new Flags()); -given() +String response = given() .accept(ContentType.JSON) .contentType(ContentType.JSON) .header("Authorization", accessToken.serialize()) @@ -171,8 +175,25 @@ public abstract class GetMailboxesMethod .post("/jmap") .then() .statusCode(200) - .content(startsWith("[[\"mailboxes\",{\"accountId\":null,\"state\":null,\"list\":[{\"id\":\""), - endsWith("\",\"name\":\"name\",\"parentId\":null,\"role\":null,\"sortOrder\":1000,\"mustBeOnlyMailbox\":false,\"mayReadItems\":false,\"mayAddItems\":false,\"mayRemoveItems\":false,\"mayCreateChild\":false,\"mayRename\":false,\"mayDelete\":false,\"totalMessages\":1,\"unreadMessages\":1,\"totalThreads\":0,\"unreadThreads\":0}],\"notFound\":null},\"#0\"]]")); +.content(startsWith("[[\"mailboxes\",")) +.extract() +.asString(); + +String firstMailboxPath = "$.[0].[1].list.[0]"; +assertThat(JsonPath.parse(response).read(firstMailboxPath + ".name")).isEqualTo("name"); +assertThat(JsonPath.parse(response).read(firstMailboxPath + ".parentId")).isNull(); +assertThat(JsonPath.parse(response).read(firstMailboxPath + ".role")).isNull(); +assertThat(JsonPath.parse(response).read(firstMailboxPath
svn commit: r1724384 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/ main/java/org/apache/james/jmap/methods/ test/java/org/apache/james/jmap/ test/java/org/apach
Author: aduprat Date: Wed Jan 13 10:11:53 2016 New Revision: 1724384 URL: http://svn.apache.org/viewvc?rev=1724384=rev Log: JAMES-1648 Method can return a response Stream. Contributed by BaechlerModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriter.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/Method.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java?rev=1724384=1724383=1724384=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java Wed Jan 13 10:11:53 2016 @@ -63,7 +63,7 @@ public class JMAPServlet extends HttpSer requestAsJsonStream(req) .map(ProtocolRequest::deserialize) .map(x -> AuthenticatedProtocolRequest.decorate(x, req)) -.map(requestHandler::handle) +.flatMap(requestHandler::handle) .map(ProtocolResponse::asProtocolSpecification) .collect(Collectors.toList()); Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java?rev=1724384=1724383=1724384=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java Wed Jan 13 10:11:53 2016 @@ -20,9 +20,11 @@ package org.apache.james.jmap.methods; import java.util.Optional; +import java.util.stream.Stream; import javax.inject.Inject; +import org.apache.james.jmap.model.ClientId; import org.apache.james.jmap.model.GetMailboxesRequest; import org.apache.james.jmap.model.GetMailboxesResponse; import org.apache.james.jmap.model.mailbox.Mailbox; @@ -65,35 +67,31 @@ public class GetMailboxesMethod requestType() { return GetMailboxesRequest.class; } - -@Override -public GetMailboxesResponse process(JmapRequest request, MailboxSession mailboxSession) { + +public Stream process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkArgument(request instanceof GetMailboxesRequest); +return Stream.of( +JmapResponse.builder().clientId(clientId) +.response(getMailboxesResponse(mailboxSession)) +.responseName(RESPONSE_NAME) +.build()); +} + +private GetMailboxesResponse getMailboxesResponse(MailboxSession mailboxSession) { +GetMailboxesResponse.Builder builder = GetMailboxesResponse.builder(); try { -return getMailboxesResponse(mailboxSession); +mailboxManager.list(mailboxSession) +.stream() +.map(mailboxPath -> mailboxFromMailboxPath(mailboxPath, mailboxSession)) +.forEach(mailbox -> builder.add(mailbox.get())); +return builder.build(); } catch (MailboxException e) { throw Throwables.propagate(e);
svn commit: r1724387 - in /james/project/trunk/server/container/util-java8/src: main/java/org/apache/james/util/streams/Collectors.java test/java/org/apache/james/util/streams/CollectorsTest.java
Author: aduprat Date: Wed Jan 13 10:12:16 2016 New Revision: 1724387 URL: http://svn.apache.org/viewvc?rev=1724387=rev Log: JAMES-1648 Implement Collectors.toImmutableSet. Contributed by BaechlerModified: james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java james/project/trunk/server/container/util-java8/src/test/java/org/apache/james/util/streams/CollectorsTest.java Modified: james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java?rev=1724387=1724386=1724387=diff == --- james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java (original) +++ james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java Wed Jan 13 10:12:16 2016 @@ -21,11 +21,13 @@ package org.apache.james.util.streams; import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collector; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; public class Collectors { @@ -35,7 +37,14 @@ public class Collectors { return left; }, ImmutableList::copyOf); } - + +public static Collector toImmutableSet() { +return Collector.of(ImmutableSet::builder, ImmutableSet.Builder::add, (left, right) -> { +left.addAll(right.build()); +return left; +}, ImmutableSet.Builder::build); +} + public static Collector , ImmutableMap > toImmutableMap( Function keyMapper, Function valueMapper) { Modified: james/project/trunk/server/container/util-java8/src/test/java/org/apache/james/util/streams/CollectorsTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/util-java8/src/test/java/org/apache/james/util/streams/CollectorsTest.java?rev=1724387=1724386=1724387=diff == --- james/project/trunk/server/container/util-java8/src/test/java/org/apache/james/util/streams/CollectorsTest.java (original) +++ james/project/trunk/server/container/util-java8/src/test/java/org/apache/james/util/streams/CollectorsTest.java Wed Jan 13 10:12:16 2016 @@ -25,13 +25,16 @@ import static org.assertj.core.data.MapE import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Set; +import com.google.common.collect.ImmutableSet; import org.junit.Test; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; public class CollectorsTest { + @Test public void immutableListCollectorShouldReturnEmptyImmutableListWhenEmptyStream() { String[] data = {}; @@ -58,7 +61,35 @@ public class CollectorsTest { assertThat(actual).isInstanceOf(ImmutableList.class); assertThat(actual).containsExactly("a", "b", "c"); } - + +@Test +public void immutableSetCollectorShouldReturnEmptyImmutableSetWhenEmptyStream() { +String[] data = {}; +Set actual = Arrays.stream(data) +.collect(Collectors.toImmutableSet()); +assertThat(actual).isInstanceOf(ImmutableSet.class); +assertThat(actual).isEmpty(); +} + +@Test +public void immutableSetCollectorShouldReturnImmutableSetWhenOneElementStream() { +String[] data = {"a"}; +Set actual = Arrays.stream(data) +.collect(Collectors.toImmutableSet()); +assertThat(actual).isInstanceOf(ImmutableSet.class); +assertThat(actual).containsExactly("a"); +} + +@Test +public void immutableSetCollectorShouldReturnImmutableSetWhen3ElementsStream() { +String[] data = {"a", "b", "c"}; +Set actual = Arrays.stream(data) +.collect(Collectors.toImmutableSet()); +assertThat(actual).isInstanceOf(ImmutableSet.class); +assertThat(actual).containsExactly("a", "b", "c"); +} + + @Test public void immutableMapCollectorShouldReturnEmptyImmutableMapWhenEmptyStream() { String[] data = {}; - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1724388 - /james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java
Author: aduprat Date: Wed Jan 13 10:12:22 2016 New Revision: 1724388 URL: http://svn.apache.org/viewvc?rev=1724388=rev Log: JAMES-1648 Refactor toFieldNames lambda. Contributed by BaechlerModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java?rev=1724388=1724387=1724388=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java Wed Jan 13 10:12:22 2016 @@ -27,6 +27,7 @@ import javax.inject.Inject; import org.apache.james.jmap.model.Property; import org.apache.james.jmap.model.ProtocolResponse; +import org.apache.james.util.streams.Collectors; import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.databind.ObjectMapper; @@ -57,16 +58,6 @@ public class JmapResponseWriterImpl impl }); } -private FilterProvider buildPropertiesFilter(Optional> properties) { -PropertyFilter filter = properties -.map(x -> x.stream() -.map(Property::asFieldName) -.collect(java.util.stream.Collectors.toSet())) -.map(SimpleBeanPropertyFilter::filterOutAllExcept) -.orElse(SimpleBeanPropertyFilter.serializeAll()); -return new SimpleFilterProvider().addFilter("propertiesFilter", filter); -} - private ObjectMapper newConfiguredObjectMapper(JmapResponse jmapResponse) { ObjectMapper objectMapper = new ObjectMapper().registerModules(jacksonModules) .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); @@ -75,4 +66,18 @@ public class JmapResponseWriterImpl impl return objectMapper; } + +private FilterProvider buildPropertiesFilter(Optional> properties) { +PropertyFilter filter = properties +.map(this::toFieldNames) +.map(SimpleBeanPropertyFilter::filterOutAllExcept) +.orElse(SimpleBeanPropertyFilter.serializeAll()); +return new SimpleFilterProvider().addFilter("propertiesFilter", filter); +} + +private Set toFieldNames(Set properties) { +return properties.stream() +.map(Property::asFieldName) +.collect(Collectors.toImmutableSet()); +} } - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1724386 - in /james/project/trunk/server/protocols: jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/ jmap/src/main/java/org/apache/james/jmap/methods/ jmap/src/main/j
Author: aduprat Date: Wed Jan 13 10:12:10 2016 New Revision: 1724386 URL: http://svn.apache.org/viewvc?rev=1724386=rev Log: JAMES-1648 Finally implement filters on json output. Contributed by BaechlerAdded: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java Modified: james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/GetMessagesRequest.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Property.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/GetMessagesRequestTest.java Modified: james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java?rev=1724386=1724385=1724386=diff == --- james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java (original) +++ james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Wed Jan 13 10:12:10 2016 @@ -204,5 +204,4 @@ public abstract class GetMessagesMethodT assertThat(JsonPath.parse(response).
svn commit: r1724382 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/methods/ test/java/org/apache/james/jmap/methods/
Author: aduprat Date: Wed Jan 13 10:11:33 2016 New Revision: 1724382 URL: http://svn.apache.org/viewvc?rev=1724382=rev Log: JAMES-1648 Implement generic JSON properties filtering. Contributed by OuazanaModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java?rev=1724382=1724381=1724382=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java Wed Jan 13 10:11:33 2016 @@ -19,6 +19,9 @@ package org.apache.james.jmap.methods; +import java.util.Optional; +import java.util.Set; + import org.apache.james.jmap.model.ClientId; import com.google.common.annotations.VisibleForTesting; @@ -34,6 +37,7 @@ public class JmapResponse { private Method.Response.Name responseName; private ClientId id; private Method.Response response; +private Set properties; private Builder() { } @@ -53,6 +57,11 @@ public class JmapResponse { return this; } +public Builder properties(Set properties) { +this.properties = properties; +return this; +} + public Builder error() { return error(DEFAULT_ERROR_MESSAGE); } @@ -65,7 +74,7 @@ public class JmapResponse { public JmapResponse build() { -return new JmapResponse(responseName, id, response); +return new JmapResponse(responseName, id, response, Optional.ofNullable(properties)); } } @@ -89,11 +98,13 @@ public class JmapResponse { private final Method.Response.Name method; private final ClientId clientId; private final Method.Response response; +private Optional properties; -private JmapResponse(Method.Response.Name method, ClientId clientId, Method.Response response) { +private JmapResponse(Method.Response.Name method, ClientId clientId, Method.Response response, Optional properties) { this.method = method; this.clientId = clientId; this.response = response; +this.properties = properties; } public Method.Response.Name getResponseName() { @@ -107,4 +118,8 @@ public class JmapResponse { public ClientId getClientId() { return clientId; } + +public Optional getProperties() { +return properties; +} } Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java?rev=1724382=1724381=1724382=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java Wed Jan 13 10:11:33 2016 @@ -19,15 +19,18 @@ package org.apache.james.jmap.methods; +import java.util.Optional; import java.util.Set; import javax.inject.Inject; -import com.fasterxml.jackson.databind.SerializationFeature; import org.apache.james.jmap.model.ProtocolResponse; import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; +import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; public class JmapResponseWriterImpl implements JmapResponseWriter { @@ -41,9 +44,18 @@ public class JmapResponseWriterImpl impl @Override public ProtocolResponse formatMethodResponse(JmapResponse jmapResponse) { +buildPropertiesFilter(jmapResponse.getProperties()) +.ifPresent(x -> objectMapper.setFilterProvider(x)); + return new ProtocolResponse( jmapResponse.getResponseName(), objectMapper.valueToTree(jmapResponse.getResponse()), jmapResponse.getClientId()); } + +private Optional
svn commit: r1724383 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java test/java/org/apache/james/jmap/methods/JmapResponseWriter
Author: aduprat Date: Wed Jan 13 10:11:40 2016 New Revision: 1724383 URL: http://svn.apache.org/viewvc?rev=1724383=rev Log: JAMES-1648 Instanciate Object Mapper at each request to avoid side-effects. Contributed by OuazanaModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java?rev=1724383=1724382=1724383=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponseWriterImpl.java Wed Jan 13 10:11:40 2016 @@ -29,23 +29,23 @@ import org.apache.james.jmap.model.Proto import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.ser.FilterProvider; +import com.fasterxml.jackson.databind.ser.PropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; public class JmapResponseWriterImpl implements JmapResponseWriter { -private final ObjectMapper objectMapper; +private final Set jacksonModules; @Inject public JmapResponseWriterImpl(Set jacksonModules) { -this.objectMapper = new ObjectMapper().registerModules(jacksonModules) -.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); +this.jacksonModules = jacksonModules; } @Override public ProtocolResponse formatMethodResponse(JmapResponse jmapResponse) { -buildPropertiesFilter(jmapResponse.getProperties()) -.ifPresent(x -> objectMapper.setFilterProvider(x)); +ObjectMapper objectMapper = newConfiguredObjectMapper(jmapResponse); return new ProtocolResponse( jmapResponse.getResponseName(), @@ -53,9 +53,19 @@ public class JmapResponseWriterImpl impl jmapResponse.getClientId()); } -private Optional buildPropertiesFilter(Optional properties) { -return properties -.map(x -> SimpleBeanPropertyFilter.filterOutAllExcept(x)) -.map(x -> new SimpleFilterProvider().addFilter("propertiesFilter", x)); +private FilterProvider buildPropertiesFilter(Optional properties) { +PropertyFilter filter = properties +.map(SimpleBeanPropertyFilter::filterOutAllExcept) +.orElse(SimpleBeanPropertyFilter.serializeAll()); +return new SimpleFilterProvider().addFilter("propertiesFilter", filter); +} + +private ObjectMapper newConfiguredObjectMapper(JmapResponse jmapResponse) { +ObjectMapper objectMapper = new ObjectMapper().registerModules(jacksonModules) +.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + + objectMapper.setFilterProvider(buildPropertiesFilter(jmapResponse.getProperties())); + +return objectMapper; } } Modified: james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java?rev=1724383=1724382=1724383=diff == --- james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java (original) +++ james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java Wed Jan 13 10:11:40 2016 @@ -107,6 +107,35 @@ public class JmapResponseWriterImplTest assertThat(firstObject.get("name")).isNull(); } + +@Test +public void formatMethodResponseShouldNotFilterFieldsWhenSecondCallWithoutProperties() { +ObjectResponseClass responseClass = new ObjectResponseClass(); +responseClass.list = ImmutableList.of(new ObjectResponseClass.Foo("id", "name")); + +JmapResponseWriterImpl jmapResponseWriterImpl = new JmapResponseWriterImpl(ImmutableSet.of(new Jdk8Module())); +jmapResponseWriterImpl.formatMethodResponse( +JmapResponse +.builder() +
svn commit: r1724389 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/methods/GetMessagesMethod.java test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.j
Author: aduprat Date: Wed Jan 13 10:12:28 2016 New Revision: 1724389 URL: http://svn.apache.org/viewvc?rev=1724389=rev Log: JAMES-1648 Handle id case. Contributed by OuazanaModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java?rev=1724389=1724388=1724389=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java Wed Jan 13 10:12:28 2016 @@ -21,6 +21,7 @@ package org.apache.james.jmap.methods; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -34,6 +35,7 @@ import org.apache.james.jmap.model.GetMe import org.apache.james.jmap.model.GetMessagesResponse; import org.apache.james.jmap.model.Message; import org.apache.james.jmap.model.MessageId; +import org.apache.james.jmap.model.MessageProperty; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageRange; @@ -48,6 +50,8 @@ import org.javatuples.Pair; import com.github.fge.lambdas.Throwing; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; public class GetMessagesMethod implements Method { @@ -84,10 +88,22 @@ public class GetMessagesMethod handleSpecificProperties(Set input) { +return ensureContainsId(input); +} + +private Set ensureContainsId(Set input) { +if (!input.contains(MessageProperty.id)) { +return Sets.union(input, ImmutableSet.of(MessageProperty.id)) +.immutableCopy(); +} +return input; +} + private GetMessagesResponse getMessagesResponse(MailboxSession mailboxSession, GetMessagesRequest getMessagesRequest) { getMessagesRequest.getAccountId().ifPresent(GetMessagesMethod::notImplemented); Modified: james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java?rev=1724389=1724388=1724389=diff == --- james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java (original) +++ james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Wed Jan 13 10:12:28 2016 @@ -26,6 +26,7 @@ import java.io.ByteArrayInputStream; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.lang.NotImplementedException; @@ -185,13 +186,10 @@ public class GetMessagesMethodTest { List result = testee.process(request, clientId, session).collect(Collectors.toList()); assertThat(result).hasSize(1) -.extracting(JmapResponse::getResponse) -.hasOnlyElementsOfType(GetMessagesResponse.class) -.extracting(GetMessagesResponse.class::cast) -.flatExtracting(GetMessagesResponse::list) -.extracting(message -> message.getId().getUid(), Message::getSubject) -.containsOnly( -Tuple.tuple(message1Uid, "message 1 subject")); +.extracting(JmapResponse::getProperties) +.flatExtracting(Optional::get) +.asList() +.containsOnly(MessageProperty.id); } @Test @@ -210,37 +208,9 @@ public class GetMessagesMethodTest { List result = testee.process(request, clientId, session).collect(Collectors.toList()); assertThat(result).hasSize(1) -.extracting(JmapResponse::getResponse) -.hasOnlyElementsOfType(GetMessagesResponse.class) -.extracting(GetMessagesResponse.class::cast) -.flatExtracting(GetMessagesResponse::list) -.extracting(message -> message.getId().getUid(), Message::getSubject) -.containsOnly( -Tuple.tuple(message1Uid,
svn commit: r1724381 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/methods/JmapResponse.java test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.j
Author: aduprat Date: Wed Jan 13 10:11:27 2016 New Revision: 1724381 URL: http://svn.apache.org/viewvc?rev=1724381=rev Log: JAMES-1648 Stronger typing for Response in JmapResponse. Contributed by OuazanaModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java?rev=1724381=1724380=1724381=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/JmapResponse.java Wed Jan 13 10:11:27 2016 @@ -33,7 +33,7 @@ public class JmapResponse { private Method.Response.Name responseName; private ClientId id; -private Object response; +private Method.Response response; private Builder() { } @@ -48,7 +48,7 @@ public class JmapResponse { return this; } -public Builder response(Object response) { +public Builder response(Method.Response response) { this.response = response; return this; } @@ -69,7 +69,7 @@ public class JmapResponse { } } -public static class ErrorResponse { +public static class ErrorResponse implements Method.Response { private final String type; @@ -88,9 +88,9 @@ public class JmapResponse { private final Method.Response.Name method; private final ClientId clientId; -private final Object response; +private final Method.Response response; -private JmapResponse(Method.Response.Name method, ClientId clientId, Object response) { +private JmapResponse(Method.Response.Name method, ClientId clientId, Method.Response response) { this.method = method; this.clientId = clientId; this.response = response; Modified: james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java?rev=1724381=1724380=1724381=diff == --- james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java (original) +++ james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/JmapResponseWriterImplTest.java Wed Jan 13 10:11:27 2016 @@ -89,7 +89,7 @@ public class JmapResponseWriterImplTest assertThat(response.getClientId()).isEqualTo(ClientId.of(expectedClientId)); } -private static class ResponseClass { +private static class ResponseClass implements Method.Response { @SuppressWarnings("unused") public String id; - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-1640) Cant recive emails
[ https://issues.apache.org/jira/browse/JAMES-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15095814#comment-15095814 ] Matthieu Baechler commented on JAMES-1640: -- Hi, You are using an old mailbox-store {code}./lib/apache-james-mailbox-store-0.6-20150508.041003-704.jar{code} with a not so old mime4j {code}./lib/apache-mime4j-core-0.8.0-20150617.024907-738.jar{code} How did you build your james server ? > Cant recive emails > -- > > Key: JAMES-1640 > URL: https://issues.apache.org/jira/browse/JAMES-1640 > Project: James Server > Issue Type: Bug > Components: MailStore & MailRepository >Affects Versions: 3.0.0-beta5 > Environment: Debian 8, Java 1.8.0_65 >Reporter: Lukas A > > When send a message from an other emailaccount like gmail. I'll get the > following error: > ERROR 22:46:13,893 | james.mailspooler | Exception processing mail while > spooling Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.camel.CamelExecutionException: Exception occurred > during execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba] > at > org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1287) > at > org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:618) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:454) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:450) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:131) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:62) > ... 5 more > Caused by: javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailetContext.sendMail(JamesMailetContext.java:409) > at > org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.toProcessor(AbstractStateMailetProcessor.java:160) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.access$1000(CamelMailetProcessor.java:48) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder$StateChangedProcessor.process(CamelMailetProcessor.java:207) > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at >
[GitHub] james-project pull request: James 1653 Solving Java 6 compilation
Github user rouazana commented on the pull request: https://github.com/apache/james-project/pull/28#issuecomment-171224873 test this please --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1724377 - in /james/project/trunk: dockerfiles/run/guice/destination/conf/ server/ server/container/cassandra-guice/sample-configuration/ server/container/cassandra-guice/src/main/java/or
Author: aduprat Date: Wed Jan 13 09:38:41 2016 New Revision: 1724377 URL: http://svn.apache.org/viewvc?rev=1724377=rev Log: JAMES-1654 Add JWT PublicKey in JMAP configuration. Contributed by DupratAdded: james/project/trunk/dockerfiles/run/guice/destination/conf/jwt_publickey james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPConfigurationTest.java Modified: james/project/trunk/dockerfiles/run/guice/destination/conf/jmap.properties james/project/trunk/server/container/cassandra-guice/sample-configuration/jmap.properties james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/TestJMAPServerModule.java james/project/trunk/server/container/jetty/pom.xml james/project/trunk/server/pom.xml james/project/trunk/server/protocols/jmap/pom.xml james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPConfiguration.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/JamesSignatureHandlerProvider.java Modified: james/project/trunk/dockerfiles/run/guice/destination/conf/jmap.properties URL: http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/jmap.properties?rev=1724377=1724376=1724377=diff == --- james/project/trunk/dockerfiles/run/guice/destination/conf/jmap.properties (original) +++ james/project/trunk/dockerfiles/run/guice/destination/conf/jmap.properties Wed Jan 13 09:38:41 2016 @@ -1,4 +1,11 @@ # Configuration file for JMAP tls.keystoreURL=file://conf/keystore -tls.secret=james72laBalle \ No newline at end of file +tls.secret=james72laBalle + +# +# If you wish to use OAuth authentication, you should provide a valid JWT public key. +# The following entry specify the link to the URL of the public key file, +# which should be a PEM format file. +# +jwt.publickeypem.url=file://conf/jwt_publickey Added: james/project/trunk/dockerfiles/run/guice/destination/conf/jwt_publickey URL: http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/jwt_publickey?rev=1724377=auto == --- james/project/trunk/dockerfiles/run/guice/destination/conf/jwt_publickey (added) +++ james/project/trunk/dockerfiles/run/guice/destination/conf/jwt_publickey Wed Jan 13 09:38:41 2016 @@ -0,0 +1,9 @@ +-BEGIN PUBLIC KEY- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh +16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H +lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi ++d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+ +GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6 +U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj +kwIDAQAB +-END PUBLIC KEY- Modified: james/project/trunk/server/container/cassandra-guice/sample-configuration/jmap.properties URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/jmap.properties?rev=1724377=1724376=1724377=diff == --- james/project/trunk/server/container/cassandra-guice/sample-configuration/jmap.properties (original) +++ james/project/trunk/server/container/cassandra-guice/sample-configuration/jmap.properties Wed Jan 13 09:38:41 2016 @@ -1,4 +1,11 @@ # Configuration file for JMAP tls.keystoreURL=file://conf/keystore -tls.secret=james72laBalle \ No newline at end of file +tls.secret=james72laBalle + +# +# If you wish to use OAuth authentication, you should provide a valid JWT public key. +# The following entry specify the link to the URL of the public key file, +# which should be a PEM format file. +# +jwt.publickeypem.url= \ No newline at end of file Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPModule.java?rev=1724377=1724376=1724377=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/jmap/JMAPModule.java Wed Jan 13 09:38:41 2016 @@ -19,12 +19,16 @@ package org.apache.james.jmap; import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Optional; import org.apache.commons.configuration.ConfigurationException; import
svn commit: r1724390 - in /james/project/trunk/server/protocols/jmap/src: main/java/org/apache/james/jmap/methods/GetMessagesMethod.java test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.j
Author: aduprat Date: Wed Jan 13 10:12:34 2016 New Revision: 1724390 URL: http://svn.apache.org/viewvc?rev=1724390=rev Log: JAMES-1648 Handle body property - ignore html case for now. Contributed by OuazanaModified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Modified: james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java?rev=1724390=1724389=1724390=diff == --- james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java (original) +++ james/project/trunk/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java Wed Jan 13 10:12:34 2016 @@ -19,6 +19,7 @@ package org.apache.james.jmap.methods; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -50,7 +51,6 @@ import org.javatuples.Pair; import com.github.fge.lambdas.Throwing; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; public class GetMessagesMethod implements Method { @@ -93,15 +93,24 @@ public class GetMessagesMethod handleSpecificProperties(Set input) { -return ensureContainsId(input); +Set toAdd = new HashSet(); +Set toRemove = new HashSet(); +ensureContainsId(input, toAdd); +handleBody(input, toAdd, toRemove); +return Sets.union(Sets.difference(input, toRemove), toAdd).immutableCopy(); } - -private Set ensureContainsId(Set input) { + +private void ensureContainsId(Set input, Set toAdd) { if (!input.contains(MessageProperty.id)) { -return Sets.union(input, ImmutableSet.of(MessageProperty.id)) -.immutableCopy(); +toAdd.add(MessageProperty.id); +} +} + +private void handleBody(Set input, Set toAdd, Set toRemove) { +if (input.contains(MessageProperty.body)) { +toAdd.add(MessageProperty.textBody); +toRemove.add(MessageProperty.body); } -return input; } private GetMessagesResponse getMessagesResponse(MailboxSession mailboxSession, GetMessagesRequest getMessagesRequest) { Modified: james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java?rev=1724390=1724389=1724390=diff == --- james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java (original) +++ james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMessagesMethodTest.java Wed Jan 13 10:12:34 2016 @@ -213,4 +213,26 @@ public class GetMessagesMethodTest { .asList() .containsOnly(MessageProperty.id, MessageProperty.subject); } + +@Test +public void processShouldReturnTextBodyWhenBodyInPropertyListAndEmptyHtmlBody() throws MailboxException { +MessageManager inbox = mailboxManager.getMailbox(inboxPath, session); +Date now = new Date(); +ByteArrayInputStream message1Content = new ByteArrayInputStream("Subject: message 1 subject\r\n\r\nmy message".getBytes(Charsets.UTF_8)); +long message1Uid = inbox.appendMessage(message1Content, now, session, false, null); + +GetMessagesRequest request = GetMessagesRequest.builder() +.ids(new MessageId(ROBERT, inboxPath, message1Uid)) +.properties(MessageProperty.body) +.build(); + +GetMessagesMethod testee = new GetMessagesMethod<>(mailboxSessionMapperFactory, mailboxSessionMapperFactory); +List result = testee.process(request, clientId, session).collect(Collectors.toList()); + +assertThat(result).hasSize(1) +.extracting(JmapResponse::getProperties) +.flatExtracting(Optional::get) +.asList() +.containsOnly(MessageProperty.id, MessageProperty.textBody); +} } - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1724424 - in /james/project/trunk: mailet/base/src/test/java/org/apache/mailet/base/test/ mailet/crypto/src/main/java/org/apache/james/transport/ mailet/crypto/src/main/java/org/apache/ja
Author: aduprat Date: Wed Jan 13 13:55:29 2016 New Revision: 1724424 URL: http://svn.apache.org/viewvc?rev=1724424=rev Log: Explicitly silent deprecation warnings. Contributed by OuazanaModified: james/project/trunk/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java james/project/trunk/mailet/crypto/src/main/java/org/apache/james/transport/KeyStoreHolder.java james/project/trunk/mailet/crypto/src/main/java/org/apache/james/transport/SMIMEKeyHolder.java james/project/trunk/mailet/crypto/src/main/java/org/apache/james/transport/mailet/SMIMEDecrypt.java james/project/trunk/mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsLocalTest.java james/project/trunk/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/AbstractLoaderBeanFactory.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java james/project/trunk/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java james/project/trunk/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java james/project/trunk/server/data/data-library/src/test/java/org/apache/james/user/lib/mock/InMemoryUsersRepository.java james/project/trunk/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java james/project/trunk/server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMailetContext.java james/project/trunk/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRedirect.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java james/project/trunk/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java james/project/trunk/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java Modified: james/project/trunk/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java?rev=1724424=1724423=1724424=diff == --- james/project/trunk/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java (original) +++ james/project/trunk/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java Wed Jan 13 13:55:29 2016 @@ -36,6 +36,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +@SuppressWarnings("deprecation") public class FakeMailContext implements MailetContext { public static class SentMail { Modified:
[GitHub] james-project pull request: James 1653 Solving Java 6 compilation
Github user aduprat commented on the pull request: https://github.com/apache/james-project/pull/28#issuecomment-171272620 ok to test --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[GitHub] james-project pull request: James 1653 Solving Java 6 compilation
Github user aduprat commented on the pull request: https://github.com/apache/james-project/pull/28#issuecomment-171295305 :+1: --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1724425 - /james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java
Author: aduprat Date: Wed Jan 13 13:55:35 2016 New Revision: 1724425 URL: http://svn.apache.org/viewvc?rev=1724425=rev Log: Fix unused warning. Contributed by OuazanaModified: james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java Modified: james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java?rev=1724425=1724424=1724425=diff == --- james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java (original) +++ james/project/trunk/server/container/util-java8/src/main/java/org/apache/james/util/streams/Collectors.java Wed Jan 13 13:55:35 2016 @@ -21,7 +21,6 @@ package org.apache.james.util.streams; import java.util.ArrayList; import java.util.List; -import java.util.Set; import java.util.function.Function; import java.util.stream.Collector; - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-1640) Cant recive emails
[ https://issues.apache.org/jira/browse/JAMES-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15097395#comment-15097395 ] Gaurav Talwar commented on JAMES-1640: -- Couldn't find a new mailbox-store jar, so tried with an older version of mime4j jar, but it doesn't work with that either. Tried to use v2.3.2 and it works fine. I think the zip should have the working/compatible copies of the mentioned jars, isn't it? Can you specify/update the versions that should be used? > Cant recive emails > -- > > Key: JAMES-1640 > URL: https://issues.apache.org/jira/browse/JAMES-1640 > Project: James Server > Issue Type: Bug > Components: MailStore & MailRepository >Affects Versions: 3.0.0-beta5 > Environment: Debian 8, Java 1.8.0_65 >Reporter: Lukas A > > When send a message from an other emailaccount like gmail. I'll get the > following error: > ERROR 22:46:13,893 | james.mailspooler | Exception processing mail while > spooling Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.camel.CamelExecutionException: Exception occurred > during execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba] > at > org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1287) > at > org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:618) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:454) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:450) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:126) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:131) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:62) > ... 5 more > Caused by: javax.mail.MessagingException: Unable to process mail > Mail1447537572407-c475eae9-9a54-484e-9567-1845df6ea235 > (org.apache.camel.CamelExecutionException: Exception occurred during > execution on the exchange: Exchange[Message: > org.apache.james.core.MailImpl@7c4938ba]) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:65) > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > at > org.apache.james.mailetcontainer.impl.JamesMailetContext.sendMail(JamesMailetContext.java:409) > at > org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.toProcessor(AbstractStateMailetProcessor.java:160) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.access$1000(CamelMailetProcessor.java:48) > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder$StateChangedProcessor.process(CamelMailetProcessor.java:207) > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at