use of javax.activation.FileDataSource in project camel by apache.
the class MimeMultipartAlternativeTest method sendMultipartEmail.
private void sendMultipartEmail(boolean useInlineattachments) throws Exception {
Mailbox.clearAll();
// create an exchange with a normal body and attachment to be produced as email
MailEndpoint endpoint = context.getEndpoint("smtp://ryan@mymailserver.com?password=secret", MailEndpoint.class);
endpoint.getConfiguration().setUseInlineAttachments(useInlineattachments);
endpoint.getConfiguration().setAlternativeBodyHeader(MailConstants.MAIL_ALTERNATIVE_BODY);
// create the exchange with the mail message that is multipart with a file and a Hello World text/plain message.
Exchange exchange = endpoint.createExchange();
Message in = exchange.getIn();
in.setBody(htmlBody);
in.setHeader(MAIL_ALTERNATIVE_BODY, alternativeBody);
in.addAttachment("cid:0001", new DataHandler(new FileDataSource("src/test/data/logo.jpeg")));
// create a producer that can produce the exchange (= send the mail)
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
mock.message(0).header(MailConstants.MAIL_ALTERNATIVE_BODY).isNull();
context.createProducerTemplate().send(endpoint, exchange);
}
use of javax.activation.FileDataSource in project camel by apache.
the class MimeMultipartAlternativeWithLongerFilenameTest method sendMultipartEmail.
private void sendMultipartEmail(boolean useInlineattachments) throws Exception {
Mailbox.clearAll();
// create an exchange with a normal body and attachment to be produced as email
MailEndpoint endpoint = context.getEndpoint("smtp://ryan@mymailserver.com?password=secret", MailEndpoint.class);
endpoint.getConfiguration().setUseInlineAttachments(useInlineattachments);
endpoint.getConfiguration().setAlternativeBodyHeader(MailConstants.MAIL_ALTERNATIVE_BODY);
// create the exchange with the mail message that is multipart with a file and a Hello World text/plain message.
Exchange exchange = endpoint.createExchange();
Message in = exchange.getIn();
in.setBody(htmlBody);
in.setHeader(MAIL_ALTERNATIVE_BODY, alternativeBody);
in.addAttachment("cid:myCoolLogo.jpeg", new DataHandler(new FileDataSource("src/test/data/logo.jpeg")));
// create a producer that can produce the exchange (= send the mail)
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
mock.message(0).header(MailConstants.MAIL_ALTERNATIVE_BODY).isNull();
context.createProducerTemplate().send(endpoint, exchange);
}
use of javax.activation.FileDataSource in project camel by apache.
the class DefaultCxfBindingTest method testPopupalteExchangeFromCxfRequest.
@Test
public void testPopupalteExchangeFromCxfRequest() {
DefaultCxfBinding cxfBinding = new DefaultCxfBinding();
cxfBinding.setHeaderFilterStrategy(new DefaultHeaderFilterStrategy());
Exchange exchange = new DefaultExchange(context);
org.apache.cxf.message.Exchange cxfExchange = new org.apache.cxf.message.ExchangeImpl();
exchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.PAYLOAD);
org.apache.cxf.message.Message cxfMessage = new org.apache.cxf.message.MessageImpl();
Map<String, List<String>> headers = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER);
headers.put("content-type", Arrays.asList("text/xml;charset=UTF-8"));
headers.put("Content-Length", Arrays.asList("241"));
headers.put("soapAction", Arrays.asList("urn:hello:world"));
headers.put("myfruitheader", Arrays.asList("peach"));
headers.put("mybrewheader", Arrays.asList("cappuccino", "espresso"));
cxfMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, headers);
Set<Attachment> attachments = new HashSet<Attachment>();
AttachmentImpl attachment = new AttachmentImpl("att-1", new DataHandler(new FileDataSource("pom.xml")));
attachment.setHeader("attachment-header", "value 1");
attachments.add(attachment);
cxfMessage.setAttachments(attachments);
cxfExchange.setInMessage(cxfMessage);
cxfBinding.populateExchangeFromCxfRequest(cxfExchange, exchange);
Map<String, Object> camelHeaders = exchange.getIn().getHeaders();
assertNotNull(camelHeaders);
assertEquals("urn:hello:world", camelHeaders.get("soapaction"));
assertEquals("urn:hello:world", camelHeaders.get("SoapAction"));
assertEquals("text/xml;charset=UTF-8", camelHeaders.get("content-type"));
assertEquals("241", camelHeaders.get("content-length"));
assertEquals("peach", camelHeaders.get("MyFruitHeader"));
assertEquals(Arrays.asList("cappuccino", "espresso"), camelHeaders.get("MyBrewHeader"));
Map<String, org.apache.camel.Attachment> camelAttachments = exchange.getIn().getAttachmentObjects();
assertNotNull(camelAttachments);
assertNotNull(camelAttachments.get("att-1"));
assertEquals("value 1", camelAttachments.get("att-1").getHeader("attachment-header"));
}
use of javax.activation.FileDataSource in project camel by apache.
the class DefaultCxfBindingTest method testPopulateCxfRequestFromExchange.
@Test
public void testPopulateCxfRequestFromExchange() {
DefaultCxfBinding cxfBinding = new DefaultCxfBinding();
cxfBinding.setHeaderFilterStrategy(new DefaultHeaderFilterStrategy());
Exchange exchange = new DefaultExchange(context);
org.apache.cxf.message.Exchange cxfExchange = new org.apache.cxf.message.ExchangeImpl();
exchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.PAYLOAD);
Map<String, Object> requestContext = new HashMap<String, Object>();
exchange.getIn().setHeader("soapAction", "urn:hello:world");
exchange.getIn().setHeader("MyFruitHeader", "peach");
exchange.getIn().setHeader("MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
exchange.getIn().addAttachment("att-1", new DataHandler(new FileDataSource("pom.xml")));
exchange.getIn().getAttachmentObject("att-1").setHeader("attachment-header", "value 1");
cxfBinding.populateCxfRequestFromExchange(cxfExchange, exchange, requestContext);
// check the protocol headers
Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>) requestContext.get(Message.PROTOCOL_HEADERS));
assertNotNull(headers);
assertEquals(3, headers.size());
verifyHeader(headers, "soapaction", "urn:hello:world");
verifyHeader(headers, "SoapAction", "urn:hello:world");
verifyHeader(headers, "SOAPAction", "urn:hello:world");
verifyHeader(headers, "myfruitheader", "peach");
verifyHeader(headers, "myFruitHeader", "peach");
verifyHeader(headers, "MYFRUITHEADER", "peach");
verifyHeader(headers, "MyBrewHeader", Arrays.asList("cappuccino", "espresso"));
Set<Attachment> attachments = CastUtils.cast((Set<?>) requestContext.get(CxfConstants.CAMEL_CXF_ATTACHMENTS));
assertNotNull(attachments);
assertNotNull(attachments.size() == 1);
Attachment att = attachments.iterator().next();
assertEquals("att-1", att.getId());
assertEquals("value 1", att.getHeader("attachment-header"));
}
use of javax.activation.FileDataSource in project camel by apache.
the class PipelineTest method createRouteBuilder.
protected RouteBuilder createRouteBuilder() {
final Processor processor = new Processor() {
public void process(Exchange exchange) {
Integer number = exchange.getIn().getBody(Integer.class);
if (number == null) {
number = 0;
}
number = number + 1;
exchange.getOut().setBody(number);
}
};
return new RouteBuilder() {
public void configure() {
// START SNIPPET: example
from("direct:a").pipeline("direct:x", "direct:y", "direct:z", "mock:result");
// END SNIPPET: example
from("direct:x").process(processor);
from("direct:y").process(processor);
from("direct:z").process(processor);
// Create a route that uses the InToOut processor 3 times. the copy-counter header should be == 3
from("direct:b").process(new InToOut()).process(new InToOut()).process(new InToOut());
// Create a route that uses the InToFault processor.. the last InToOut will not be called since the Fault occurs before.
from("direct:c").process(new InToOut()).process(new InToFault()).process(new InToOut());
from("direct:start").process(new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.getOut().copyFrom(exchange.getIn());
//Added the header and attachment
exchange.getOut().setHeader("test", "testValue");
exchange.getOut().addAttachment("test1.xml", new DataHandler(new FileDataSource("pom.xml")));
}
}).process(new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.getOut().copyFrom(exchange.getIn());
assertNotNull("The test attachment should not be null", exchange.getOut().getAttachmentObject("test1.xml"));
assertNotNull("The test attachment should not be null", exchange.getOut().getAttachment("test1.xml"));
assertNotNull("The test header should not be null", exchange.getOut().getHeader("test"));
exchange.getOut().removeAttachment("test1.xml");
exchange.getOut().removeHeader("test");
}
});
}
};
}
Aggregations