1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.config;
12
13 import org.mule.MuleException;
14 import org.mule.MuleManager;
15 import org.mule.config.ConfigurationBuilder;
16 import org.mule.config.ConfigurationException;
17 import org.mule.config.PoolingProfile;
18 import org.mule.config.ThreadingProfile;
19 import org.mule.config.builders.MuleXmlConfigurationBuilder;
20 import org.mule.config.pool.CommonsPoolFactory;
21 import org.mule.impl.MuleDescriptor;
22 import org.mule.providers.AbstractConnector;
23 import org.mule.routing.outbound.AbstractOutboundRouter;
24 import org.mule.routing.response.AbstractResponseRouter;
25 import org.mule.tck.AbstractConfigBuilderTestCase;
26 import org.mule.tck.testmodels.fruit.Apple;
27 import org.mule.tck.testmodels.fruit.Orange;
28 import org.mule.tck.testmodels.mule.TestCompressionTransformer;
29 import org.mule.umo.UMODescriptor;
30 import org.mule.umo.endpoint.UMOEndpoint;
31 import org.mule.umo.routing.UMOOutboundRouterCollection;
32 import org.mule.umo.routing.UMOResponseRouterCollection;
33 import org.mule.umo.transformer.UMOTransformer;
34 import org.mule.util.ObjectPool;
35 import org.mule.util.properties.JXPathPropertyExtractor;
36 import org.mule.util.properties.PropertyExtractor;
37
38 import java.util.List;
39 import java.util.Map;
40
41 public class MuleXmlConfigBuilderTestCase extends AbstractConfigBuilderTestCase
42 {
43
44 public String getConfigResources()
45 {
46 return "test-xml-mule-config.xml,test-xml-mule-config-split.xml,test-xml-mule-config-split-properties.xml";
47 }
48
49 public ConfigurationBuilder getBuilder()
50 {
51 try
52 {
53 return new MuleXmlConfigurationBuilder();
54 }
55 catch (ConfigurationException e)
56 {
57 fail(e.getMessage());
58 return null;
59 }
60 }
61
62 public void testPropertyExtractorConfig() throws Exception
63 {
64 UMODescriptor d = MuleManager.getInstance()
65 .lookupModel("main")
66 .getDescriptor("propertyExtractorTestComponent");
67 assertNotNull(d);
68 UMOOutboundRouterCollection router = d.getOutboundRouter();
69 assertNotNull(router);
70 List routers = router.getRouters();
71 assertNotNull(routers);
72 assertEquals(1, routers.size());
73 AbstractOutboundRouter theRouter = (AbstractOutboundRouter)routers.get(0);
74 PropertyExtractor pe = theRouter.getPropertyExtractor();
75 assertNotNull(pe);
76
77 assertTrue(pe instanceof JXPathPropertyExtractor);
78 }
79
80 public void testPropertyExtractorResponseRouterConfig() throws Exception
81 {
82 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor(
83 "propertyExtractorResponseRouterTestComponent");
84 assertNotNull(d);
85 UMOResponseRouterCollection router = d.getResponseRouter();
86 assertNotNull(router);
87 List routers = router.getRouters();
88 assertNotNull(routers);
89 assertEquals(1, routers.size());
90 AbstractResponseRouter theRouter = (AbstractResponseRouter)routers.get(0);
91 PropertyExtractor pe = theRouter.getCorrelationExtractor();
92 assertNotNull(pe);
93
94 assertTrue(pe instanceof JXPathPropertyExtractor);
95 }
96
97 public void testPropertyTypesConfig() throws Exception
98 {
99 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
100 assertNotNull(d);
101 assertNotNull(d.getProperties().get("factoryObject"));
102 assertTrue(d.getProperties().get("factoryObject") instanceof Orange);
103 assertNotNull(d.getProperties().get("containerObject"));
104 assertTrue(d.getProperties().get("containerObject") instanceof Apple);
105 assertNull(d.getProperties().get("doesNotExist"));
106 assertEquals(System.getProperty("os.version"), d.getProperties().get("osVersion"));
107 assertEquals("defaultValue", d.getProperties().get("notASystemProperty"));
108 assertEquals("test1", d.getProperties().get("test1"));
109 assertEquals("test2", d.getProperties().get("test2"));
110 }
111
112 public void testMapPropertyTypesConfig() throws Exception
113 {
114 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
115 assertNotNull(d);
116 Map props = (Map)d.getProperties().get("propertiesMap");
117 assertNotNull(props);
118 assertNotNull(props.get("factoryObject"));
119 assertTrue(props.get("factoryObject") instanceof Orange);
120 assertNotNull(props.get("containerObject"));
121 assertTrue(props.get("containerObject") instanceof Apple);
122 assertNull(props.get("doesNotExist"));
123 assertEquals(System.getProperty("os.version"), props.get("osVersion"));
124 assertEquals("defaultValue", props.get("notASystemProperty"));
125 assertEquals("test1", props.get("test1"));
126 assertEquals("test2", props.get("test2"));
127 }
128
129 public void testListPropertyTypesConfig() throws Exception
130 {
131 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
132 assertNotNull(d);
133 List props = (List)d.getProperties().get("propertiesList");
134 assertNotNull(props);
135 assertEquals(6, props.size());
136 assertNotNull(props.get(0));
137 assertTrue(props.get(0) instanceof Orange);
138 assertEquals(System.getProperty("os.version"), props.get(1));
139 assertEquals("defaultValue", props.get(2));
140 assertEquals("test1", props.get(3));
141 assertEquals("test2", props.get(4));
142
143
144 assertNotNull(props.get(5));
145 assertTrue(props.get(5) instanceof Apple);
146 }
147
148 public void testEndpointURIParamsConfig()
149 {
150 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
151 assertNotNull(d);
152 assertNotNull(d.getInboundEndpoint());
153 assertNotNull(d.getInboundTransformer());
154 assertNotNull(d.getInboundEndpoint().getResponseTransformer());
155 }
156
157 public void testTransformerConfig()
158 {
159 UMOTransformer t = MuleManager.getInstance().lookupTransformer("TestCompressionTransformer");
160 assertNotNull(t);
161 assertTrue(t instanceof TestCompressionTransformer);
162
163
164
165 assertEquals("this was set from the manager properties!",
166 ((TestCompressionTransformer)t).getBeanProperty1());
167 assertEquals(12, ((TestCompressionTransformer)t).getBeanProperty2());
168
169 assertEquals(t.getReturnClass(), java.lang.String.class);
170
171 t = MuleManager.getInstance().lookupTransformer("TestTransformer");
172 assertNotNull(t);
173 assertEquals(t.getReturnClass(), byte[].class);
174 }
175
176 public void testSystemPropertyOverride()
177 {
178 Map props = MuleManager.getInstance().getProperties();
179 assertNotNull(props);
180 assertEquals("default", props.get("system-prop2"));
181 }
182
183
184
185
186
187
188
189
190
191 public void testThreadingConfig() throws MuleException
192 {
193
194 ThreadingProfile tp = MuleManager.getConfiguration().getDefaultThreadingProfile();
195 assertEquals(0, tp.getMaxBufferSize());
196 assertEquals(8, tp.getMaxThreadsActive());
197 assertEquals(4, tp.getMaxThreadsIdle());
198 assertEquals(0, tp.getPoolExhaustedAction());
199 assertEquals(60001, tp.getThreadTTL());
200
201
202 tp = MuleManager.getConfiguration().getComponentThreadingProfile();
203 assertEquals(0, tp.getMaxBufferSize());
204 assertEquals(8, tp.getMaxThreadsActive());
205 assertEquals(4, tp.getMaxThreadsIdle());
206 assertEquals(0, tp.getPoolExhaustedAction());
207 assertEquals(60001, tp.getThreadTTL());
208
209
210 AbstractConnector c = (AbstractConnector)MuleManager.getInstance().lookupConnector("dummyConnector");
211 tp = c.getDispatcherThreadingProfile();
212 assertEquals(2, tp.getMaxBufferSize());
213 assertEquals(8, tp.getMaxThreadsActive());
214 assertEquals(4, tp.getMaxThreadsIdle());
215 assertEquals(0, tp.getPoolExhaustedAction());
216 assertEquals(60001, tp.getThreadTTL());
217
218 MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor(
219 "appleComponent2");
220 tp = descriptor.getThreadingProfile();
221 assertEquals(6, tp.getMaxBufferSize());
222 assertEquals(12, tp.getMaxThreadsActive());
223 assertEquals(6, tp.getMaxThreadsIdle());
224 assertEquals(0, tp.getPoolExhaustedAction());
225 assertEquals(60001, tp.getThreadTTL());
226 }
227
228 public void testPoolingConfig()
229 {
230
231 PoolingProfile pp = MuleManager.getConfiguration().getPoolingProfile();
232 assertEquals(8, pp.getMaxActive());
233 assertEquals(4, pp.getMaxIdle());
234 assertEquals(4000, pp.getMaxWait());
235 assertEquals(ObjectPool.DEFAULT_EXHAUSTED_ACTION, pp.getExhaustedAction());
236 assertEquals(1, pp.getInitialisationPolicy());
237 assertTrue(pp.getPoolFactory() instanceof CommonsPoolFactory);
238
239
240 MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor(
241 "appleComponent2");
242 pp = descriptor.getPoolingProfile();
243
244 assertEquals(8, pp.getMaxActive());
245 assertEquals(4, pp.getMaxIdle());
246 assertEquals(4000, pp.getMaxWait());
247 assertEquals(ObjectPool.DEFAULT_EXHAUSTED_ACTION, pp.getExhaustedAction());
248 assertEquals(2, pp.getInitialisationPolicy());
249 }
250
251 public void testGlobalEndpointOverrides()
252 {
253 UMOEndpoint ep = MuleManager.getInstance().lookupEndpoint("orangeEndpoint");
254 assertNotNull(ep);
255 assertEquals(1, ep.getProperties().size());
256 assertEquals("value1", ep.getProperties().get("testGlobal"));
257 assertNull(ep.getFilter());
258
259 MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor(
260 "orangeComponent");
261 assertNotNull(descriptor);
262 ep = descriptor.getInboundRouter().getEndpoint("orangeEndpoint");
263 assertNotNull(ep);
264 assertEquals(2, ep.getProperties().size());
265 assertEquals("value1", ep.getProperties().get("testGlobal"));
266 assertEquals("value1", ep.getProperties().get("testLocal"));
267 assertNotNull(ep.getFilter());
268 }
269 }