1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.vm.functional;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleEventContext;
15 import org.mule.api.MuleMessage;
16 import org.mule.api.lifecycle.Callable;
17
18 import java.io.File;
19
20 import javax.activation.DataHandler;
21 import javax.activation.FileDataSource;
22
23
24
25
26
27 public class AttachmentsComponent implements Callable
28 {
29 public Object onCall(MuleEventContext eventContext) throws Exception
30 {
31 MuleMessage msg = eventContext.getMessage();
32 if (msg.getAttachmentNames().size() == 2)
33 {
34 throw new IllegalArgumentException("There shuold be 2 attachments");
35 }
36
37 DataHandler dh = msg.getAttachment("test-attachment");
38 if (dh == null)
39 {
40 throw new IllegalArgumentException("test-attachment is not on the message");
41 }
42 if (!dh.getContentType().startsWith("text/xml"))
43 {
44 throw new IllegalArgumentException("content type is not text/xml");
45 }
46
47 if (!"Mmm... attachments!".equals(msg.getPayloadAsString()))
48 {
49 throw new IllegalArgumentException("payload is incorrect");
50 }
51
52 MuleMessage result = new DefaultMuleMessage("here is one for you!");
53 FileDataSource ds = new FileDataSource(
54 new File("transports/vm/src/test/resources/test.gif").getAbsoluteFile());
55 result.addAttachment("mule", new DataHandler(ds));
56 return result;
57 }
58 }