1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.launcher;
12
13 import org.mule.api.config.ThreadingProfile;
14 import org.mule.config.DefaultMuleConfiguration;
15 import org.mule.context.DefaultMuleContextBuilder;
16 import org.mule.module.launcher.descriptor.ApplicationDescriptor;
17 import org.mule.util.StringUtils;
18 import org.mule.work.MuleWorkManager;
19
20
21
22
23 public class ApplicationMuleContextBuilder extends DefaultMuleContextBuilder
24 {
25 protected ApplicationDescriptor desc;
26
27 public ApplicationMuleContextBuilder(ApplicationDescriptor desc)
28 {
29 this.desc = desc;
30 }
31
32 @Override
33 protected DefaultMuleConfiguration createMuleConfiguration()
34 {
35 final DefaultMuleConfiguration configuration = new DefaultMuleConfiguration(true);
36 configuration.setId(desc.getAppName());
37 final String encoding = desc.getEncoding();
38 if (StringUtils.isNotBlank(encoding))
39 {
40 configuration.setDefaultEncoding(encoding);
41 }
42 return configuration;
43 }
44
45 @Override
46 protected MuleWorkManager createWorkManager()
47 {
48
49 final String threadName = String.format("[%s].Mule", desc.getAppName());
50 return new MuleWorkManager(ThreadingProfile.DEFAULT_THREADING_PROFILE, threadName, getMuleConfiguration().getShutdownTimeout());
51
52 }
53 }