1
2
3
4
5
6
7
8
9
10 package org.mule.transport.email.config;
11
12 import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
13 import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
14 import org.mule.config.spring.parsers.assembly.configuration.SimplePropertyConfiguration;
15 import org.mule.config.spring.parsers.assembly.configuration.ValueMap;
16 import org.mule.transport.email.transformers.EmailMessageToString;
17 import org.mule.transport.email.transformers.MimeMessageToRfc822ByteArray;
18 import org.mule.transport.email.transformers.ObjectToMimeMessage;
19 import org.mule.transport.email.transformers.Rfc822ByteArraytoMimeMessage;
20 import org.mule.transport.email.transformers.StringToEmailMessage;
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import javax.mail.Flags;
26
27 public class EmailNamespaceHandler extends AbstractMuleNamespaceHandler
28 {
29
30 static ValueMap DEFAULT_PROCESS_MESSAGE_ACTION;
31
32 static {
33 Map<String, Flags.Flag> mapping = new HashMap<String, Flags.Flag>();
34 mapping.put("ANSWERED", Flags.Flag.ANSWERED);
35 mapping.put("DELETED", Flags.Flag.DELETED);
36 mapping.put("DRAFT", Flags.Flag.DRAFT);
37 mapping.put("FLAGGED", Flags.Flag.FLAGGED);
38 mapping.put("RECENT", Flags.Flag.RECENT);
39 mapping.put("SEEN", Flags.Flag.SEEN);
40 mapping.put("USER", Flags.Flag.USER);
41 mapping.put("NONE", null);
42 DEFAULT_PROCESS_MESSAGE_ACTION = new SimplePropertyConfiguration.IndentityMapValueMap(mapping);
43 };
44
45 public void init()
46 {
47 registerBeanDefinitionParser("email-to-string-transformer", new MessageProcessorDefinitionParser(EmailMessageToString.class));
48 registerBeanDefinitionParser("string-to-email-transformer", new MessageProcessorDefinitionParser(StringToEmailMessage.class));
49 registerBeanDefinitionParser("object-to-mime-transformer", new MessageProcessorDefinitionParser(ObjectToMimeMessage.class));
50 registerBeanDefinitionParser("mime-to-bytes-transformer", new MessageProcessorDefinitionParser(MimeMessageToRfc822ByteArray.class));
51 registerBeanDefinitionParser("bytes-to-mime-transformer", new MessageProcessorDefinitionParser(Rfc822ByteArraytoMimeMessage.class));
52 }
53
54 }