View Javadoc

1   /*
2    * $Id: ApplicationMuleContextBuilder.java 20088 2010-11-05 16:51:41Z aperepel $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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   * Takes Mule application descriptor into account when building the context.
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          // use app name in the core Mule thread
49          final String threadName = String.format("[%s].Mule", desc.getAppName());
50          return new MuleWorkManager(ThreadingProfile.DEFAULT_THREADING_PROFILE, threadName, getMuleConfiguration().getShutdownTimeout());
51  
52      }
53  }