Hi everyone,
We are using the Camel Mail component to fetch mails from a mailbox. The camel
exchange will provide the MimeMultipart Object in the exchange body.
We now see that every access to this MimeMulitpart will do a remote call to the
mailserver. Is there any setting in camel that allows us to prevent this, i.e.
by caching the data once it has been loaded?
Best regards,
Manuel
Example
Processor:
Each time getBody(String.class) is called, a remote calls to the mailserver are
done.
public void process(Exchange exchange) throws Exception {
System.out.println("TEST 1.\n" +
exchange.getMessage().getBody(String.class));
System.out.println("TEST 2.\n" +
exchange.getMessage().getBody(String.class));
System.out.println("TEST 3.\n" +
exchange.getMessage().getBody(String.class));
}
After running above lines with debugMode=true, I can see the remote calls:
A13 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A13 OK Success
A14 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A14 OK Success
TEST 1.
This is a mail body
A15 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A15 OK Success
A16 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A16 OK Success
TEST 2.
This is a mail body
A17 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A17 OK Success
A18 FETCH 1 (BODY.PEEK[1.1])
* 1 FETCH (BODY[1.1] {30}
VGhpcyBpcyBhIG1haWwgYm9keQ0K
)
A18 OK Success
TEST 3.
This is a mail body