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.config.PropertiesMuleConfigurationFactory;
16 import org.mule.context.DefaultMuleContextBuilder;
17 import org.mule.module.launcher.descriptor.ApplicationDescriptor;
18 import org.mule.util.StringUtils;
19 import org.mule.work.MuleWorkManager;
20
21
22
23
24 public class ApplicationMuleContextBuilder extends DefaultMuleContextBuilder
25 {
26 protected ApplicationDescriptor desc;
27
28 public ApplicationMuleContextBuilder(ApplicationDescriptor desc)
29 {
30 this.desc = desc;
31 }
32
33 @Override
34 protected DefaultMuleConfiguration createMuleConfiguration()
35 {
36 final DefaultMuleConfiguration configuration = new DefaultMuleConfiguration(true);
37 PropertiesMuleConfigurationFactory.initializeFromProperties(configuration, desc.getAppProperties());
38 configuration.setId(desc.getAppName());
39 final String encoding = desc.getEncoding();
40 if (StringUtils.isNotBlank(encoding))
41 {
42 configuration.setDefaultEncoding(encoding);
43 }
44 return configuration;
45 }
46
47 @Override
48 protected MuleWorkManager createWorkManager()
49 {
50
51 final String threadName = String.format("[%s].Mule", desc.getAppName());
52 return new MuleWorkManager(ThreadingProfile.DEFAULT_THREADING_PROFILE, threadName, getMuleConfiguration().getShutdownTimeout());
53
54 }
55 }