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