1
2
3
4
5
6
7 package org.mule.context;
8
9 import org.mule.api.MuleContext;
10 import org.mule.api.config.ConfigurationBuilder;
11 import org.mule.api.config.ConfigurationException;
12 import org.mule.api.config.MuleConfiguration;
13 import org.mule.api.context.MuleContextBuilder;
14 import org.mule.api.context.MuleContextFactory;
15 import org.mule.api.lifecycle.InitialisationException;
16 import org.mule.config.DefaultMuleConfiguration;
17 import org.mule.config.builders.AutoConfigurationBuilder;
18 import org.mule.config.builders.DefaultsConfigurationBuilder;
19 import org.mule.config.builders.SimpleConfigurationBuilder;
20
21 import java.util.List;
22 import java.util.Properties;
23
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26
27
28
29
30
31 public class DefaultMuleContextFactory implements MuleContextFactory
32 {
33 protected static final Log logger = LogFactory.getLog(DefaultMuleContextBuilder.class);
34
35
36
37
38 public MuleContext createMuleContext() throws InitialisationException, ConfigurationException
39 {
40
41 return createMuleContext(new DefaultsConfigurationBuilder(), new DefaultMuleContextBuilder());
42 }
43
44
45
46
47 public MuleContext createMuleContext(ConfigurationBuilder configurationBuilder)
48 throws InitialisationException, ConfigurationException
49 {
50
51 return createMuleContext(configurationBuilder, new DefaultMuleContextBuilder());
52 }
53
54
55
56
57 public MuleContext createMuleContext(MuleContextBuilder muleContextBuilder)
58 throws InitialisationException, ConfigurationException
59 {
60
61 return createMuleContext(new DefaultsConfigurationBuilder(), muleContextBuilder);
62 }
63
64
65
66
67 public MuleContext createMuleContext(List<ConfigurationBuilder> configurationBuilders,
68 MuleContextBuilder muleContextBuilder) throws InitialisationException, ConfigurationException
69 {
70
71 MuleContext muleContext = doCreateMuleContext(muleContextBuilder);
72
73
74 for (ConfigurationBuilder configBuilder : configurationBuilders)
75 {
76 configBuilder.configure(muleContext);
77 }
78
79 return muleContext;
80 }
81
82
83
84
85 public MuleContext createMuleContext(ConfigurationBuilder configurationBuilder,
86 MuleContextBuilder muleContextBuilder)
87 throws InitialisationException, ConfigurationException
88 {
89
90 MuleContext muleContext = doCreateMuleContext(muleContextBuilder);
91
92
93 configurationBuilder.configure(muleContext);
94
95 return muleContext;
96 }
97
98
99
100
101
102
103
104
105
106
107
108
109
110 public MuleContext createMuleContext(String resource)
111 throws InitialisationException, ConfigurationException
112 {
113 return createMuleContext(resource, null);
114 }
115
116
117
118
119
120
121
122
123
124 public MuleContext createMuleContext(String configResources, Properties properties)
125 throws InitialisationException, ConfigurationException
126 {
127
128 MuleContext muleContext = doCreateMuleContext(new DefaultMuleContextBuilder());
129
130
131 if (properties != null && !properties.isEmpty())
132 {
133 new SimpleConfigurationBuilder(properties).configure(muleContext);
134 }
135
136
137
138 new AutoConfigurationBuilder(configResources).configure(muleContext);
139
140 return muleContext;
141 }
142
143
144
145
146
147
148 public MuleContext createMuleContext(ConfigurationBuilder configurationBuilder, Properties properties)
149 throws InitialisationException, ConfigurationException
150 {
151 return createMuleContext(configurationBuilder, properties, new DefaultMuleConfiguration());
152 }
153
154
155
156
157
158
159 public MuleContext createMuleContext(ConfigurationBuilder configurationBuilder,
160 Properties properties,
161 MuleConfiguration configuration)
162 throws InitialisationException, ConfigurationException
163 {
164
165 DefaultMuleContextBuilder contextBuilder = new DefaultMuleContextBuilder();
166 contextBuilder.setMuleConfiguration(configuration);
167 MuleContext muleContext = doCreateMuleContext(contextBuilder);
168
169
170 if (properties != null && !properties.isEmpty())
171 {
172 new SimpleConfigurationBuilder(properties).configure(muleContext);
173 }
174
175
176 configurationBuilder.configure(muleContext);
177
178 return muleContext;
179 }
180
181 protected MuleContext doCreateMuleContext(MuleContextBuilder muleContextBuilder)
182 throws InitialisationException
183 {
184
185 MuleContext muleContext = buildMuleContext(muleContextBuilder);
186
187
188 muleContext.initialise();
189
190 return muleContext;
191 }
192
193 protected MuleContext buildMuleContext(MuleContextBuilder muleContextBuilder)
194 {
195 return muleContextBuilder.buildMuleContext();
196 }
197 }