KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mule > tck > AbstractConfigBuilderTestCase


1 /*
2  * $Id: AbstractConfigBuilderTestCase.java 3937 2006-11-20 16:04:25Z lajos $
3  * --------------------------------------------------------------------------------------
4  * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
5  *
6  * The software in this package is published under the terms of the MuleSource MPL
7  * license, a copy of which has been included with this distribution in the
8  * LICENSE.txt file.
9  */

10
11 package org.mule.tck;
12
13 import java.util.Map JavaDoc;
14
15 import org.mule.MuleException;
16 import org.mule.MuleManager;
17 import org.mule.config.PoolingProfile;
18 import org.mule.config.QueueProfile;
19 import org.mule.config.ThreadingProfile;
20 import org.mule.config.pool.CommonsPoolFactory;
21 import org.mule.impl.DefaultExceptionStrategy;
22 import org.mule.impl.MuleDescriptor;
23 import org.mule.impl.endpoint.MuleEndpoint;
24 import org.mule.interceptors.LoggingInterceptor;
25 import org.mule.interceptors.TimerInterceptor;
26 import org.mule.providers.AbstractConnector;
27 import org.mule.providers.SimpleRetryConnectionStrategy;
28 import org.mule.providers.service.ConnectorFactory;
29 import org.mule.routing.filters.PayloadTypeFilter;
30 import org.mule.routing.filters.RegExFilter;
31 import org.mule.routing.filters.logic.AndFilter;
32 import org.mule.routing.filters.xml.JXPathFilter;
33 import org.mule.routing.inbound.IdempotentReceiver;
34 import org.mule.routing.inbound.SelectiveConsumer;
35 import org.mule.routing.outbound.FilteringOutboundRouter;
36 import org.mule.tck.testmodels.mule.TestCatchAllStrategy;
37 import org.mule.tck.testmodels.mule.TestCompressionTransformer;
38 import org.mule.tck.testmodels.mule.TestConnector;
39 import org.mule.tck.testmodels.mule.TestExceptionStrategy;
40 import org.mule.tck.testmodels.mule.TestTransactionFactory;
41 import org.mule.umo.UMODescriptor;
42 import org.mule.umo.UMOFilter;
43 import org.mule.umo.UMOInterceptorStack;
44 import org.mule.umo.UMOTransactionConfig;
45 import org.mule.umo.endpoint.UMOEndpoint;
46 import org.mule.umo.model.UMOModel;
47 import org.mule.umo.routing.UMOInboundMessageRouter;
48 import org.mule.umo.routing.UMOInboundRouter;
49 import org.mule.umo.routing.UMOOutboundMessageRouter;
50 import org.mule.umo.routing.UMOOutboundRouter;
51 import org.mule.umo.transformer.UMOTransformer;
52 import org.mule.util.ObjectPool;
53
54 public abstract class AbstractConfigBuilderTestCase extends AbstractScriptConfigBuilderTestCase
55 {
56
57     public void testManagerConfig() throws Exception JavaDoc
58     {
59         assertNotNull(MuleManager.getInstance().getTransactionManager());
60     }
61
62     public void testConnectorConfig() throws Exception JavaDoc
63     {
64         TestConnector c = (TestConnector)MuleManager.getInstance().lookupConnector("dummyConnector");
65         assertNotNull(c);
66         assertNotNull(c.getExceptionListener());
67         assertTrue(c.getExceptionListener() instanceof TestExceptionStrategy);
68         assertNotNull(c.getConnectionStrategy());
69         assertTrue(c.getConnectionStrategy() instanceof SimpleRetryConnectionStrategy);
70         assertEquals(4, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getRetryCount());
71         assertEquals(3000, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getFrequency());
72     }
73
74     public void testGlobalEndpointConfig()
75     {
76         UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("fruitBowlEndpoint");
77         assertNotNull(endpoint);
78         assertEquals(endpoint.getEndpointURI().getAddress(), "fruitBowlPublishQ");
79         assertNotNull(endpoint.getFilter());
80         JXPathFilter filter = (JXPathFilter)endpoint.getFilter();
81         assertEquals("name", filter.getExpression());
82         assertEquals("bar", filter.getExpectedValue());
83         assertEquals("http://foo.com", filter.getNamespaces().get("foo"));
84     }
85
86     public void testEndpointConfig()
87     {
88         String JavaDoc endpointString = MuleManager.getInstance().lookupEndpointIdentifier("Test Queue", null);
89         assertEquals(endpointString, "test://test.queue");
90         // test that endpoints have been resolved on endpoints
91
UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("waterMelonEndpoint");
92         assertNotNull(endpoint);
93         assertEquals("test.queue", endpoint.getEndpointURI().getAddress());
94
95         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent2");
96         assertNotNull(descriptor);
97     }
98
99     public void testInterceptorStacks()
100     {
101         UMOInterceptorStack stack = MuleManager.getInstance().lookupInterceptorStack("default");
102         assertNotNull(stack);
103         assertEquals(2, stack.getInterceptors().size());
104         assertTrue(stack.getInterceptors().get(0) instanceof LoggingInterceptor);
105         assertTrue(stack.getInterceptors().get(1) instanceof TimerInterceptor);
106     }
107
108     public void testExceptionStrategy2()
109     {
110         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent");
111         assertNotNull(descriptor.getExceptionListener());
112         assertEquals(DefaultExceptionStrategy.class, descriptor.getExceptionListener().getClass());
113
114     }
115
116     public void testTransformerConfig()
117     {
118         UMOTransformer t = MuleManager.getInstance().lookupTransformer("TestCompressionTransformer");
119         assertNotNull(t);
120         assertTrue(t instanceof TestCompressionTransformer);
121         assertEquals(t.getReturnClass(), java.lang.String JavaDoc.class);
122         assertNotNull(((TestCompressionTransformer)t).getContainerProperty());
123         assertTrue(((TestCompressionTransformer)t).isSourceTypeSupported(String JavaDoc.class, true));
124     }
125
126     public void testModelConfig() throws Exception JavaDoc
127     {
128         UMOModel model = MuleManager.getInstance().getModel();
129         super.testModelConfig();
130         assertTrue(model.isComponentRegistered("appleComponent"));
131         assertTrue(model.isComponentRegistered("appleComponent2"));
132     }
133
134     public void testOutboundRouterConfig2()
135     {
136         // test outbound message router
137
UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent");
138         assertNotNull(descriptor.getOutboundRouter());
139         UMOOutboundMessageRouter router = descriptor.getOutboundRouter();
140         assertNotNull(router.getCatchAllStrategy());
141         assertEquals(2, router.getRouters().size());
142         // check first Router
143
UMOOutboundRouter route1 = (UMOOutboundRouter)router.getRouters().get(0);
144         assertTrue(route1 instanceof FilteringOutboundRouter);
145         // todo don't currently support "transformer" property
146
// assertNotNull(((FilteringOutboundRouter) route1).getTransformer());
147

148         UMOFilter filter = ((FilteringOutboundRouter)route1).getFilter();
149         assertNotNull(filter);
150         assertTrue(filter instanceof PayloadTypeFilter);
151         assertEquals(String JavaDoc.class, ((PayloadTypeFilter)filter).getExpectedType());
152
153         // check second Router
154
UMOOutboundRouter route2 = (UMOOutboundRouter)router.getRouters().get(1);
155         assertTrue(route2 instanceof FilteringOutboundRouter);
156
157         UMOFilter filter2 = ((FilteringOutboundRouter)route2).getFilter();
158         assertNotNull(filter2);
159         assertTrue(filter2 instanceof AndFilter);
160         UMOFilter left = ((AndFilter)filter2).getLeftFilter();
161         UMOFilter right = ((AndFilter)filter2).getRightFilter();
162         assertNotNull(left);
163         assertTrue(left instanceof RegExFilter);
164         assertEquals("the quick brown (.*)", ((RegExFilter)left).getPattern());
165         assertNotNull(right);
166         assertTrue(right instanceof RegExFilter);
167         assertEquals("(.*) brown (.*)", ((RegExFilter)right).getPattern());
168
169         assertTrue(router.getCatchAllStrategy() instanceof TestCatchAllStrategy);
170     }
171
172     // TODO what about this? can this be removed?
173
// public void testDescriptorEndpoints()
174
// {
175
// UMODescriptor descriptor =
176
// MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
177
// assertEquals(1, descriptor.getOutboundRouter().getRouters().size());
178
// UMOOutboundRouter router = (UMOOutboundRouter)
179
// descriptor.getOutboundRouter().getRouters().get(0);
180
// assertEquals(1, router.getEndpoints().size());
181
// UMOEndpoint endpoint = (UMOEndpoint) router.getEndpoints().get(0);
182
// assertNotNull(endpoint);
183
// assertEquals("appleInEndpoint", endpoint.getName());
184
// assertNotNull(endpoint.getTransformer());
185
// assertTrue(endpoint.getTransformer() instanceof TestCompressionTransformer);
186
//
187
// // check the global endpoint
188
// endpoint = MuleManager.getInstance().lookupEndpoint("appleInEndpoint");
189
// assertNotNull(endpoint);
190
// assertNull(endpoint.getTransformer());
191
//
192
// endpoint = descriptor.getInboundEndpoint();
193
// assertEquals(2, descriptor.getInboundRouter().getEndpoints().size());
194
// assertNotNull(descriptor.getInboundRouter().getCatchAllStrategy());
195
// assertTrue(descriptor.getInboundRouter().getCatchAllStrategy() instanceof
196
// ForwardingCatchAllStrategy);
197
// assertNotNull(descriptor.getInboundRouter().getCatchAllStrategy().getEndpoint());
198
// assertEquals("test://catch.all", descriptor.getInboundRouter()
199
// .getCatchAllStrategy()
200
// .getEndpoint()
201
// .getEndpointURI()
202
// .toString());
203
// endpoint = descriptor.getInboundRouter().getEndpoint("orangeEndpoint");
204
// assertNotNull(endpoint);
205
// assertEquals("orangeEndpoint", endpoint.getName());
206
// assertEquals("orangeQ", endpoint.getEndpointURI().getAddress());
207
// // assertEquals(UMOEndpoint.ENDPOINT_TYPE_RECEIVER, endpoint.getType());
208
// assertNotNull(endpoint.getTransformer());
209
// assertTrue(endpoint.getTransformer() instanceof TestCompressionTransformer);
210
//
211
// // check the global endpoint
212
// endpoint = MuleManager.getInstance().lookupEndpoint("orangeEndpoint");
213
// assertNotNull(endpoint);
214
// assertNull(endpoint.getTransformer());
215
// }
216

217     public void testInboundRouterConfig2()
218     {
219         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent");
220         assertNotNull(descriptor.getInboundRouter());
221         UMOInboundMessageRouter messageRouter = descriptor.getInboundRouter();
222         assertNotNull(messageRouter.getCatchAllStrategy());
223         assertEquals(2, messageRouter.getRouters().size());
224         UMOInboundRouter router = (UMOInboundRouter)messageRouter.getRouters().get(0);
225         assertTrue(router instanceof SelectiveConsumer);
226         SelectiveConsumer sc = (SelectiveConsumer)router;
227
228         assertNotNull(sc.getFilter());
229         UMOFilter filter = sc.getFilter();
230         // check first Router
231
assertTrue(filter instanceof PayloadTypeFilter);
232         assertEquals(String JavaDoc.class, ((PayloadTypeFilter)filter).getExpectedType());
233
234         UMOInboundRouter router2 = (UMOInboundRouter)messageRouter.getRouters().get(1);
235         assertTrue(router2 instanceof IdempotentReceiver);
236     }
237
238     public void testThreadingConfig() throws MuleException
239     {
240         // test config
241
ThreadingProfile tp = MuleManager.getConfiguration().getDefaultThreadingProfile();
242         assertEquals(ThreadingProfile.DEFAULT_MAX_BUFFER_SIZE, tp.getMaxBufferSize());
243         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive());
244         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_IDLE, tp.getMaxThreadsIdle());
245         assertEquals(ThreadingProfile.WHEN_EXHAUSTED_WAIT, tp.getPoolExhaustedAction());
246         assertEquals(60001, tp.getThreadTTL());
247
248         // test defaults
249
tp = MuleManager.getConfiguration().getComponentThreadingProfile();
250         assertEquals(ThreadingProfile.DEFAULT_MAX_BUFFER_SIZE, tp.getMaxBufferSize());
251         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive());
252         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_IDLE, tp.getMaxThreadsIdle());
253         assertEquals(ThreadingProfile.WHEN_EXHAUSTED_WAIT, tp.getPoolExhaustedAction());
254         assertEquals(60001, tp.getThreadTTL());
255
256         // test that values not set retain a default value
257
AbstractConnector c = (AbstractConnector)MuleManager.getInstance().lookupConnector("dummyConnector");
258         tp = c.getDispatcherThreadingProfile();
259         assertEquals(2, tp.getMaxBufferSize());
260         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive());
261         assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_IDLE, tp.getMaxThreadsIdle());
262         assertEquals(ThreadingProfile.DEFAULT_POOL_EXHAUST_ACTION, tp.getPoolExhaustedAction());
263         assertEquals(ThreadingProfile.DEFAULT_MAX_THREAD_TTL, tp.getThreadTTL());
264
265         MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor(
266             "appleComponent2");
267         tp = descriptor.getThreadingProfile();
268         assertEquals(6, tp.getMaxBufferSize());
269         assertEquals(12, tp.getMaxThreadsActive());
270         assertEquals(6, tp.getMaxThreadsIdle());
271         assertEquals(ThreadingProfile.DEFAULT_POOL_EXHAUST_ACTION, tp.getPoolExhaustedAction());
272         assertEquals(ThreadingProfile.DEFAULT_MAX_THREAD_TTL, tp.getThreadTTL());
273     }
274
275     public void testPoolingConfig()
276     {
277         // test config
278
PoolingProfile pp = MuleManager.getConfiguration().getPoolingProfile();
279         assertEquals(8, pp.getMaxActive());
280         assertEquals(4, pp.getMaxIdle());
281         assertEquals(4000, pp.getMaxWait());
282         assertEquals(ObjectPool.WHEN_EXHAUSTED_GROW, pp.getExhaustedAction());
283         assertEquals(1, pp.getInitialisationPolicy());
284         assertTrue(pp.getPoolFactory() instanceof CommonsPoolFactory);
285
286         // test override
287
MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor(
288             "appleComponent2");
289         pp = descriptor.getPoolingProfile();
290
291         assertEquals(5, pp.getMaxActive());
292         assertEquals(5, pp.getMaxIdle());
293         assertEquals(4000, pp.getMaxWait());
294         assertEquals(ObjectPool.WHEN_EXHAUSTED_GROW, pp.getExhaustedAction());
295         assertEquals(2, pp.getInitialisationPolicy());
296     }
297
298     public void testQueueProfileConfig()
299     {
300         // test config
301
QueueProfile qp = MuleManager.getConfiguration().getQueueProfile();
302         assertEquals(100, qp.getMaxOutstandingMessages());
303         assertTrue(qp.isPersistent());
304
305         // test inherit
306
MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor(
307             "orangeComponent");
308         qp = descriptor.getQueueProfile();
309         assertEquals(100, qp.getMaxOutstandingMessages());
310         assertTrue(qp.isPersistent());
311
312         // test override
313
descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor("appleComponent2");
314         qp = descriptor.getQueueProfile();
315         assertEquals(102, qp.getMaxOutstandingMessages());
316         assertFalse(qp.isPersistent());
317     }
318
319     public void testEndpointProperties() throws Exception JavaDoc
320     {
321         // test transaction config
322
UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent2");
323         MuleEndpoint inEndpoint = (MuleEndpoint)descriptor.getInboundRouter().getEndpoint(
324             "transactedInboundEndpoint");
325         assertNotNull(inEndpoint);
326         assertEquals(ConnectorFactory.ALWAYS_CREATE_CONNECTOR, inEndpoint.getCreateConnector());
327         assertNotNull(inEndpoint.getProperties());
328         assertEquals("Prop1", inEndpoint.getProperties().get("testEndpointProperty"));
329     }
330
331     public void testTransactionConfig() throws Exception JavaDoc
332     {
333         // test transaction config
334
UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("appleComponent2");
335         UMOEndpoint inEndpoint = descriptor.getInboundRouter().getEndpoint("transactedInboundEndpoint");
336         assertNotNull(inEndpoint);
337         assertNull(descriptor.getOutboundEndpoint());
338         assertEquals(1, descriptor.getOutboundRouter().getRouters().size());
339
340         UMOEndpoint outEndpoint = (UMOEndpoint)((UMOOutboundRouter)descriptor.getOutboundRouter()
341             .getRouters()
342             .get(0)).getEndpoints().get(0);
343
344         assertNotNull(outEndpoint);
345         assertNotNull(inEndpoint.getTransactionConfig());
346         assertEquals(UMOTransactionConfig.ACTION_ALWAYS_BEGIN, inEndpoint.getTransactionConfig().getAction());
347         assertTrue(inEndpoint.getTransactionConfig().getFactory() instanceof TestTransactionFactory);
348         assertNull(inEndpoint.getTransactionConfig().getConstraint());
349     }
350
351     public void testEnvironmentProperties()
352     {
353         Map JavaDoc props = MuleManager.getInstance().getProperties();
354         assertNotNull(props);
355         assertNotNull(props.get("doCompression"));
356         assertEquals("true", props.get("doCompression"));
357         assertNotNull(props.get("beanProperty1"));
358         assertEquals("this was set from the manager properties!", props.get("beanProperty1"));
359         assertNotNull(props.get("OS Version"));
360     }
361 }
362
Popular Tags