1 | |
|
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
package org.mule.tck; |
12 | |
|
13 | |
import org.mule.MuleException; |
14 | |
import org.mule.MuleManager; |
15 | |
import org.mule.config.PoolingProfile; |
16 | |
import org.mule.config.QueueProfile; |
17 | |
import org.mule.config.ThreadingProfile; |
18 | |
import org.mule.config.pool.CommonsPoolFactory; |
19 | |
import org.mule.impl.DefaultExceptionStrategy; |
20 | |
import org.mule.impl.MuleDescriptor; |
21 | |
import org.mule.impl.endpoint.MuleEndpoint; |
22 | |
import org.mule.interceptors.LoggingInterceptor; |
23 | |
import org.mule.interceptors.TimerInterceptor; |
24 | |
import org.mule.providers.AbstractConnector; |
25 | |
import org.mule.providers.SimpleRetryConnectionStrategy; |
26 | |
import org.mule.providers.service.TransportFactory; |
27 | |
import org.mule.routing.filters.PayloadTypeFilter; |
28 | |
import org.mule.routing.filters.RegExFilter; |
29 | |
import org.mule.routing.filters.logic.AndFilter; |
30 | |
import org.mule.routing.filters.xml.JXPathFilter; |
31 | |
import org.mule.routing.inbound.IdempotentReceiver; |
32 | |
import org.mule.routing.inbound.SelectiveConsumer; |
33 | |
import org.mule.routing.outbound.FilteringOutboundRouter; |
34 | |
import org.mule.tck.testmodels.mule.TestCatchAllStrategy; |
35 | |
import org.mule.tck.testmodels.mule.TestCompressionTransformer; |
36 | |
import org.mule.tck.testmodels.mule.TestConnector; |
37 | |
import org.mule.tck.testmodels.mule.TestExceptionStrategy; |
38 | |
import org.mule.tck.testmodels.mule.TestTransactionFactory; |
39 | |
import org.mule.umo.UMODescriptor; |
40 | |
import org.mule.umo.UMOFilter; |
41 | |
import org.mule.umo.UMOInterceptorStack; |
42 | |
import org.mule.umo.UMOTransactionConfig; |
43 | |
import org.mule.umo.endpoint.UMOEndpoint; |
44 | |
import org.mule.umo.model.UMOModel; |
45 | |
import org.mule.umo.routing.UMOInboundRouter; |
46 | |
import org.mule.umo.routing.UMOInboundRouterCollection; |
47 | |
import org.mule.umo.routing.UMOOutboundRouter; |
48 | |
import org.mule.umo.routing.UMOOutboundRouterCollection; |
49 | |
import org.mule.umo.transformer.UMOTransformer; |
50 | |
import org.mule.util.ObjectPool; |
51 | |
|
52 | |
import java.util.Map; |
53 | |
|
54 | 0 | public abstract class AbstractConfigBuilderTestCase extends AbstractScriptConfigBuilderTestCase |
55 | |
{ |
56 | |
|
57 | |
|
58 | |
public void testManagerConfig() throws Exception |
59 | |
{ |
60 | 0 | assertNotNull(MuleManager.getInstance().getTransactionManager()); |
61 | 0 | } |
62 | |
|
63 | |
|
64 | |
public void testConnectorConfig() throws Exception |
65 | |
{ |
66 | 0 | TestConnector c = (TestConnector)MuleManager.getInstance().lookupConnector("dummyConnector"); |
67 | 0 | assertNotNull(c); |
68 | 0 | assertNotNull(c.getExceptionListener()); |
69 | 0 | assertTrue(c.getExceptionListener() instanceof TestExceptionStrategy); |
70 | 0 | assertNotNull(c.getConnectionStrategy()); |
71 | 0 | assertTrue(c.getConnectionStrategy() instanceof SimpleRetryConnectionStrategy); |
72 | 0 | assertEquals(4, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getRetryCount()); |
73 | 0 | assertEquals(3000, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getFrequency()); |
74 | 0 | } |
75 | |
|
76 | |
|
77 | |
public void testGlobalEndpointConfig() |
78 | |
{ |
79 | 0 | UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("fruitBowlEndpoint"); |
80 | 0 | assertNotNull(endpoint); |
81 | 0 | assertEquals(endpoint.getEndpointURI().getAddress(), "fruitBowlPublishQ"); |
82 | 0 | assertNotNull(endpoint.getFilter()); |
83 | 0 | JXPathFilter filter = (JXPathFilter)endpoint.getFilter(); |
84 | 0 | assertEquals("name", filter.getExpression()); |
85 | 0 | assertEquals("bar", filter.getExpectedValue()); |
86 | 0 | assertEquals("http://foo.com", filter.getNamespaces().get("foo")); |
87 | 0 | } |
88 | |
|
89 | |
|
90 | |
public void testEndpointConfig() |
91 | |
{ |
92 | 0 | String endpointString = MuleManager.getInstance().lookupEndpointIdentifier("Test Queue", null); |
93 | 0 | assertEquals(endpointString, "test://test.queue"); |
94 | |
|
95 | 0 | UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("waterMelonEndpoint"); |
96 | 0 | assertNotNull(endpoint); |
97 | 0 | assertEquals("test.queue", endpoint.getEndpointURI().getAddress()); |
98 | |
|
99 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent2"); |
100 | 0 | assertNotNull(descriptor); |
101 | 0 | } |
102 | |
|
103 | |
|
104 | |
public void testInterceptorStacks() |
105 | |
{ |
106 | 0 | UMOInterceptorStack stack = MuleManager.getInstance().lookupInterceptorStack("default"); |
107 | 0 | assertNotNull(stack); |
108 | 0 | assertEquals(2, stack.getInterceptors().size()); |
109 | 0 | assertTrue(stack.getInterceptors().get(0) instanceof LoggingInterceptor); |
110 | 0 | assertTrue(stack.getInterceptors().get(1) instanceof TimerInterceptor); |
111 | 0 | } |
112 | |
|
113 | |
public void testExceptionStrategy2() |
114 | |
{ |
115 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent"); |
116 | 0 | assertNotNull(descriptor.getExceptionListener()); |
117 | 0 | assertEquals(DefaultExceptionStrategy.class, descriptor.getExceptionListener().getClass()); |
118 | 0 | } |
119 | |
|
120 | |
|
121 | |
public void testTransformerConfig() |
122 | |
{ |
123 | 0 | UMOTransformer t = MuleManager.getInstance().lookupTransformer("TestCompressionTransformer"); |
124 | 0 | assertNotNull(t); |
125 | 0 | assertTrue(t instanceof TestCompressionTransformer); |
126 | 0 | assertEquals(t.getReturnClass(), java.lang.String.class); |
127 | 0 | assertNotNull(((TestCompressionTransformer)t).getContainerProperty()); |
128 | 0 | } |
129 | |
|
130 | |
|
131 | |
public void testModelConfig() throws Exception |
132 | |
{ |
133 | 0 | UMOModel model = MuleManager.getInstance().lookupModel("main"); |
134 | 0 | super.testModelConfig(); |
135 | 0 | assertTrue(model.isComponentRegistered("appleComponent")); |
136 | 0 | assertTrue(model.isComponentRegistered("appleComponent2")); |
137 | 0 | } |
138 | |
|
139 | |
public void testOutboundRouterConfig2() |
140 | |
{ |
141 | |
|
142 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent"); |
143 | 0 | assertNotNull(descriptor.getOutboundRouter()); |
144 | 0 | UMOOutboundRouterCollection router = descriptor.getOutboundRouter(); |
145 | 0 | assertNotNull(router.getCatchAllStrategy()); |
146 | 0 | assertEquals(2, router.getRouters().size()); |
147 | |
|
148 | 0 | UMOOutboundRouter route1 = (UMOOutboundRouter)router.getRouters().get(0); |
149 | 0 | assertTrue(route1 instanceof FilteringOutboundRouter); |
150 | |
|
151 | |
|
152 | |
|
153 | 0 | UMOFilter filter = ((FilteringOutboundRouter)route1).getFilter(); |
154 | 0 | assertNotNull(filter); |
155 | 0 | assertTrue(filter instanceof PayloadTypeFilter); |
156 | 0 | assertEquals(String.class, ((PayloadTypeFilter)filter).getExpectedType()); |
157 | |
|
158 | |
|
159 | 0 | UMOOutboundRouter route2 = (UMOOutboundRouter)router.getRouters().get(1); |
160 | 0 | assertTrue(route2 instanceof FilteringOutboundRouter); |
161 | |
|
162 | 0 | UMOFilter filter2 = ((FilteringOutboundRouter)route2).getFilter(); |
163 | 0 | assertNotNull(filter2); |
164 | 0 | assertTrue(filter2 instanceof AndFilter); |
165 | 0 | UMOFilter left = ((AndFilter)filter2).getLeftFilter(); |
166 | 0 | UMOFilter right = ((AndFilter)filter2).getRightFilter(); |
167 | 0 | assertNotNull(left); |
168 | 0 | assertTrue(left instanceof RegExFilter); |
169 | 0 | assertEquals("the quick brown (.*)", ((RegExFilter)left).getPattern()); |
170 | 0 | assertNotNull(right); |
171 | 0 | assertTrue(right instanceof RegExFilter); |
172 | 0 | assertEquals("(.*) brown (.*)", ((RegExFilter)right).getPattern()); |
173 | |
|
174 | 0 | assertTrue(router.getCatchAllStrategy() instanceof TestCatchAllStrategy); |
175 | 0 | } |
176 | |
|
177 | |
|
178 | |
public void testInboundRouterConfig2() |
179 | |
{ |
180 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent"); |
181 | 0 | assertNotNull(descriptor.getInboundRouter()); |
182 | 0 | UMOInboundRouterCollection messageRouter = descriptor.getInboundRouter(); |
183 | 0 | assertNotNull(messageRouter.getCatchAllStrategy()); |
184 | 0 | assertEquals(2, messageRouter.getRouters().size()); |
185 | 0 | UMOInboundRouter router = (UMOInboundRouter)messageRouter.getRouters().get(0); |
186 | 0 | assertTrue(router instanceof SelectiveConsumer); |
187 | 0 | SelectiveConsumer sc = (SelectiveConsumer)router; |
188 | |
|
189 | 0 | assertNotNull(sc.getFilter()); |
190 | 0 | UMOFilter filter = sc.getFilter(); |
191 | |
|
192 | 0 | assertTrue(filter instanceof PayloadTypeFilter); |
193 | 0 | assertEquals(String.class, ((PayloadTypeFilter)filter).getExpectedType()); |
194 | |
|
195 | 0 | UMOInboundRouter router2 = (UMOInboundRouter)messageRouter.getRouters().get(1); |
196 | 0 | assertTrue(router2 instanceof IdempotentReceiver); |
197 | 0 | } |
198 | |
|
199 | |
public void testThreadingConfig() throws MuleException |
200 | |
{ |
201 | |
|
202 | 0 | ThreadingProfile tp = MuleManager.getConfiguration().getDefaultThreadingProfile(); |
203 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_BUFFER_SIZE, tp.getMaxBufferSize()); |
204 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive()); |
205 | 0 | assertEquals(4, tp.getMaxThreadsIdle()); |
206 | 0 | assertEquals(ThreadingProfile.WHEN_EXHAUSTED_WAIT, tp.getPoolExhaustedAction()); |
207 | 0 | assertEquals(60001, tp.getThreadTTL()); |
208 | |
|
209 | |
|
210 | 0 | tp = MuleManager.getConfiguration().getComponentThreadingProfile(); |
211 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_BUFFER_SIZE, tp.getMaxBufferSize()); |
212 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive()); |
213 | 0 | assertEquals(4, tp.getMaxThreadsIdle()); |
214 | 0 | assertEquals(ThreadingProfile.WHEN_EXHAUSTED_WAIT, tp.getPoolExhaustedAction()); |
215 | 0 | assertEquals(60001, tp.getThreadTTL()); |
216 | |
|
217 | |
|
218 | 0 | AbstractConnector c = (AbstractConnector)MuleManager.getInstance().lookupConnector("dummyConnector"); |
219 | 0 | tp = c.getDispatcherThreadingProfile(); |
220 | 0 | assertEquals(2, tp.getMaxBufferSize()); |
221 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_ACTIVE, tp.getMaxThreadsActive()); |
222 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREADS_IDLE, tp.getMaxThreadsIdle()); |
223 | 0 | assertEquals(ThreadingProfile.DEFAULT_POOL_EXHAUST_ACTION, tp.getPoolExhaustedAction()); |
224 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREAD_TTL, tp.getThreadTTL()); |
225 | |
|
226 | 0 | MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor( |
227 | |
"appleComponent2"); |
228 | 0 | tp = descriptor.getThreadingProfile(); |
229 | 0 | assertEquals(6, tp.getMaxBufferSize()); |
230 | 0 | assertEquals(12, tp.getMaxThreadsActive()); |
231 | 0 | assertEquals(6, tp.getMaxThreadsIdle()); |
232 | 0 | assertEquals(ThreadingProfile.DEFAULT_POOL_EXHAUST_ACTION, tp.getPoolExhaustedAction()); |
233 | 0 | assertEquals(ThreadingProfile.DEFAULT_MAX_THREAD_TTL, tp.getThreadTTL()); |
234 | 0 | } |
235 | |
|
236 | |
public void testPoolingConfig() |
237 | |
{ |
238 | |
|
239 | 0 | PoolingProfile pp = MuleManager.getConfiguration().getPoolingProfile(); |
240 | 0 | assertEquals(8, pp.getMaxActive()); |
241 | 0 | assertEquals(4, pp.getMaxIdle()); |
242 | 0 | assertEquals(4000, pp.getMaxWait()); |
243 | 0 | assertEquals(ObjectPool.WHEN_EXHAUSTED_GROW, pp.getExhaustedAction()); |
244 | 0 | assertEquals(1, pp.getInitialisationPolicy()); |
245 | 0 | assertTrue(pp.getPoolFactory() instanceof CommonsPoolFactory); |
246 | |
|
247 | |
|
248 | 0 | MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor( |
249 | |
"appleComponent2"); |
250 | 0 | pp = descriptor.getPoolingProfile(); |
251 | |
|
252 | 0 | assertEquals(5, pp.getMaxActive()); |
253 | 0 | assertEquals(5, pp.getMaxIdle()); |
254 | 0 | assertEquals(4000, pp.getMaxWait()); |
255 | 0 | assertEquals(ObjectPool.WHEN_EXHAUSTED_GROW, pp.getExhaustedAction()); |
256 | 0 | assertEquals(2, pp.getInitialisationPolicy()); |
257 | 0 | } |
258 | |
|
259 | |
public void testQueueProfileConfig() |
260 | |
{ |
261 | |
|
262 | 0 | QueueProfile qp = MuleManager.getConfiguration().getQueueProfile(); |
263 | 0 | assertEquals(100, qp.getMaxOutstandingMessages()); |
264 | 0 | assertTrue(qp.isPersistent()); |
265 | |
|
266 | |
|
267 | 0 | MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor( |
268 | |
"orangeComponent"); |
269 | 0 | qp = descriptor.getQueueProfile(); |
270 | 0 | assertEquals(100, qp.getMaxOutstandingMessages()); |
271 | 0 | assertTrue(qp.isPersistent()); |
272 | |
|
273 | |
|
274 | 0 | descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent2"); |
275 | 0 | qp = descriptor.getQueueProfile(); |
276 | 0 | assertEquals(102, qp.getMaxOutstandingMessages()); |
277 | 0 | assertFalse(qp.isPersistent()); |
278 | 0 | } |
279 | |
|
280 | |
public void testEndpointProperties() throws Exception |
281 | |
{ |
282 | |
|
283 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent2"); |
284 | 0 | MuleEndpoint inEndpoint = (MuleEndpoint)descriptor.getInboundRouter().getEndpoint( |
285 | |
"transactedInboundEndpoint"); |
286 | 0 | assertNotNull(inEndpoint); |
287 | 0 | assertEquals(TransportFactory.NEVER_CREATE_CONNECTOR, inEndpoint.getCreateConnector()); |
288 | 0 | assertNotNull(inEndpoint.getProperties()); |
289 | 0 | assertEquals("Prop1", inEndpoint.getProperties().get("testEndpointProperty")); |
290 | 0 | } |
291 | |
|
292 | |
public void testTransactionConfig() throws Exception |
293 | |
{ |
294 | |
|
295 | 0 | UMODescriptor descriptor = MuleManager.getInstance().lookupModel("main").getDescriptor("appleComponent2"); |
296 | 0 | UMOEndpoint inEndpoint = descriptor.getInboundRouter().getEndpoint("transactedInboundEndpoint"); |
297 | 0 | assertNotNull(inEndpoint); |
298 | 0 | assertNull(descriptor.getOutboundEndpoint()); |
299 | 0 | assertEquals(1, descriptor.getOutboundRouter().getRouters().size()); |
300 | |
|
301 | 0 | UMOEndpoint outEndpoint = (UMOEndpoint)((UMOOutboundRouter)descriptor.getOutboundRouter() |
302 | |
.getRouters() |
303 | |
.get(0)).getEndpoints().get(0); |
304 | |
|
305 | 0 | assertNotNull(outEndpoint); |
306 | 0 | assertNotNull(inEndpoint.getTransactionConfig()); |
307 | 0 | assertEquals(UMOTransactionConfig.ACTION_ALWAYS_BEGIN, inEndpoint.getTransactionConfig().getAction()); |
308 | 0 | assertTrue(inEndpoint.getTransactionConfig().getFactory() instanceof TestTransactionFactory); |
309 | 0 | assertNull(inEndpoint.getTransactionConfig().getConstraint()); |
310 | 0 | } |
311 | |
|
312 | |
public void testEnvironmentProperties() |
313 | |
{ |
314 | 0 | Map props = MuleManager.getInstance().getProperties(); |
315 | 0 | assertNotNull(props); |
316 | 0 | assertNotNull(props.get("doCompression")); |
317 | 0 | assertEquals("true", props.get("doCompression")); |
318 | 0 | assertNotNull(props.get("beanProperty1")); |
319 | 0 | assertEquals("this was set from the manager properties!", props.get("beanProperty1")); |
320 | 0 | assertNotNull(props.get("OS Version")); |
321 | 0 | } |
322 | |
} |