1 10 11 package org.mule.tck; 12 13 import java.util.Map ; 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 58 { 59 assertNotNull(MuleManager.getInstance().getTransactionManager()); 60 } 61 62 public void testConnectorConfig() throws Exception 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 endpointString = MuleManager.getInstance().lookupEndpointIdentifier("Test Queue", null); 89 assertEquals(endpointString, "test://test.queue"); 90 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 .class); 122 assertNotNull(((TestCompressionTransformer)t).getContainerProperty()); 123 assertTrue(((TestCompressionTransformer)t).isSourceTypeSupported(String .class, true)); 124 } 125 126 public void testModelConfig() throws Exception 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 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 UMOOutboundRouter route1 = (UMOOutboundRouter)router.getRouters().get(0); 144 assertTrue(route1 instanceof FilteringOutboundRouter); 145 148 UMOFilter filter = ((FilteringOutboundRouter)route1).getFilter(); 149 assertNotNull(filter); 150 assertTrue(filter instanceof PayloadTypeFilter); 151 assertEquals(String .class, ((PayloadTypeFilter)filter).getExpectedType()); 152 153 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 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 assertTrue(filter instanceof PayloadTypeFilter); 232 assertEquals(String .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 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 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 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 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 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 QueueProfile qp = MuleManager.getConfiguration().getQueueProfile(); 302 assertEquals(100, qp.getMaxOutstandingMessages()); 303 assertTrue(qp.isPersistent()); 304 305 MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor( 307 "orangeComponent"); 308 qp = descriptor.getQueueProfile(); 309 assertEquals(100, qp.getMaxOutstandingMessages()); 310 assertTrue(qp.isPersistent()); 311 312 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 320 { 321 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 332 { 333 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 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 |