1
2
3
4
5
6
7
8
9
10 package org.mule.providers.vm.functional;
11
12 import org.mule.umo.lifecycle.Callable;
13 import org.mule.umo.UMOEventContext;
14 import org.mule.umo.UMOMessage;
15 import org.mule.impl.MuleMessage;
16
17 import java.io.File;
18
19 import javax.activation.DataHandler;
20 import javax.activation.FileDataSource;
21
22
23
24
25
26 public class AttachmentsComponent implements Callable
27 {
28 public Object onCall(UMOEventContext eventContext) throws Exception
29 {
30 UMOMessage msg = eventContext.getMessage();
31 if (msg.getAttachmentNames().size() == 2)
32 {
33 throw new IllegalArgumentException("There shuold be 2 attachments");
34 }
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 UMOMessage result = new MuleMessage("here is one for you!");
53 FileDataSource ds = new FileDataSource(new File("transports/vm/src/test/resources/test.gif").getAbsoluteFile());
54 result.addAttachment("mule", new DataHandler(ds));
55 return result;
56 }
57 }