1
2
3
4
5
6
7 package org.mule.config.spring.handlers;
8
9 import org.mule.RouteableExceptionStrategy;
10 import org.mule.api.config.MuleProperties;
11 import org.mule.api.processor.LoggerMessageProcessor;
12 import org.mule.cache.CachingMessageProcessor;
13 import org.mule.cache.ObjectStoreCachingStrategy;
14 import org.mule.component.DefaultInterfaceBinding;
15 import org.mule.component.DefaultJavaComponent;
16 import org.mule.component.PooledJavaComponent;
17 import org.mule.component.SimpleCallableJavaComponent;
18 import org.mule.component.simple.EchoComponent;
19 import org.mule.component.simple.LogComponent;
20 import org.mule.component.simple.NullComponent;
21 import org.mule.component.simple.PassThroughComponent;
22 import org.mule.config.QueueProfile;
23 import org.mule.config.spring.factories.AsyncMessageProcessorsFactoryBean;
24 import org.mule.config.spring.factories.ChoiceRouterFactoryBean;
25 import org.mule.config.spring.factories.CompositeMessageSourceFactoryBean;
26 import org.mule.config.spring.factories.InboundEndpointFactoryBean;
27 import org.mule.config.spring.factories.MessageProcessorFilterPairFactoryBean;
28 import org.mule.config.spring.factories.OutboundEndpointFactoryBean;
29 import org.mule.config.spring.factories.PollingMessageSourceFactoryBean;
30 import org.mule.config.spring.factories.TransactionalMessageProcessorsFactoryBean;
31 import org.mule.config.spring.parsers.AbstractMuleBeanDefinitionParser;
32 import org.mule.config.spring.parsers.cache.CacheDefinitionParser;
33 import org.mule.config.spring.parsers.cache.CachingStrategyDefinitionParser;
34 import org.mule.config.spring.parsers.collection.ChildListDefinitionParser;
35 import org.mule.config.spring.parsers.collection.ChildListEntryDefinitionParser;
36 import org.mule.config.spring.parsers.collection.ChildMapDefinitionParser;
37 import org.mule.config.spring.parsers.collection.ChildMapEntryDefinitionParser;
38 import org.mule.config.spring.parsers.delegate.InheritDefinitionParser;
39 import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
40 import org.mule.config.spring.parsers.generic.MuleOrphanDefinitionParser;
41 import org.mule.config.spring.parsers.generic.NameTransferDefinitionParser;
42 import org.mule.config.spring.parsers.generic.NamedDefinitionParser;
43 import org.mule.config.spring.parsers.generic.OrphanDefinitionParser;
44 import org.mule.config.spring.parsers.generic.ParentDefinitionParser;
45 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributes;
46 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributesAndChildren;
47 import org.mule.config.spring.parsers.processors.CheckRequiredAttributesWhenNoChildren;
48 import org.mule.config.spring.parsers.specific.AggregatorDefinitionParser;
49 import org.mule.config.spring.parsers.specific.BindingDefinitionParser;
50 import org.mule.config.spring.parsers.specific.BridgeDefinitionParser;
51 import org.mule.config.spring.parsers.specific.ComponentDefinitionParser;
52 import org.mule.config.spring.parsers.specific.ComponentDelegatingDefinitionParser;
53 import org.mule.config.spring.parsers.specific.ConfigurationDefinitionParser;
54 import org.mule.config.spring.parsers.specific.DefaultNameMuleOrphanDefinitionParser;
55 import org.mule.config.spring.parsers.specific.DefaultThreadingProfileDefinitionParser;
56 import org.mule.config.spring.parsers.specific.ExceptionTXFilterDefinitionParser;
57 import org.mule.config.spring.parsers.specific.ExpressionTransformerDefinitionParser;
58 import org.mule.config.spring.parsers.specific.FilterDefinitionParser;
59 import org.mule.config.spring.parsers.specific.FilterRefDefinitionParser;
60 import org.mule.config.spring.parsers.specific.FlowDefinitionParser;
61 import org.mule.config.spring.parsers.specific.FlowRefDefinitionParser;
62 import org.mule.config.spring.parsers.specific.GlobalPropertyDefinitionParser;
63 import org.mule.config.spring.parsers.specific.IgnoreObjectMethodsDefinitionParser;
64 import org.mule.config.spring.parsers.specific.InboundRouterDefinitionParser;
65 import org.mule.config.spring.parsers.specific.InterceptorDefinitionParser;
66 import org.mule.config.spring.parsers.specific.InterceptorStackDefinitionParser;
67 import org.mule.config.spring.parsers.specific.MessageEnricherDefinitionParser;
68 import org.mule.config.spring.parsers.specific.MessageFilterDefinitionParser;
69 import org.mule.config.spring.parsers.specific.MessageProcessorChainDefinitionParser;
70 import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
71 import org.mule.config.spring.parsers.specific.MessagePropertiesTransformerDefinitionParser;
72 import org.mule.config.spring.parsers.specific.ModelDefinitionParser;
73 import org.mule.config.spring.parsers.specific.NotificationDefinitionParser;
74 import org.mule.config.spring.parsers.specific.NotificationDisableDefinitionParser;
75 import org.mule.config.spring.parsers.specific.ObjectFactoryDefinitionParser;
76 import org.mule.config.spring.parsers.specific.PoolingProfileDefinitionParser;
77 import org.mule.config.spring.parsers.specific.RegExFilterDefinitionParser;
78 import org.mule.config.spring.parsers.specific.ResponseDefinitionParser;
79 import org.mule.config.spring.parsers.specific.RouterDefinitionParser;
80 import org.mule.config.spring.parsers.specific.SecurityFilterDefinitionParser;
81 import org.mule.config.spring.parsers.specific.ServiceDefinitionParser;
82 import org.mule.config.spring.parsers.specific.ServiceOverridesDefinitionParser;
83 import org.mule.config.spring.parsers.specific.SimpleComponentDefinitionParser;
84 import org.mule.config.spring.parsers.specific.SimpleServiceDefinitionParser;
85 import org.mule.config.spring.parsers.specific.SplitterDefinitionParser;
86 import org.mule.config.spring.parsers.specific.StaticComponentDefinitionParser;
87 import org.mule.config.spring.parsers.specific.ThreadingProfileDefinitionParser;
88 import org.mule.config.spring.parsers.specific.TransactionDefinitionParser;
89 import org.mule.config.spring.parsers.specific.TransactionManagerDefinitionParser;
90 import org.mule.config.spring.parsers.specific.ValidatorDefinitionParser;
91 import org.mule.config.spring.parsers.specific.endpoint.EndpointRefParser;
92 import org.mule.config.spring.parsers.specific.endpoint.support.ChildEndpointDefinitionParser;
93 import org.mule.config.spring.parsers.specific.endpoint.support.OrphanEndpointDefinitionParser;
94 import org.mule.config.spring.util.SpringBeanLookup;
95 import org.mule.context.notification.ListenerSubscriptionPair;
96 import org.mule.endpoint.EndpointURIEndpointBuilder;
97 import org.mule.enricher.MessageEnricher;
98 import org.mule.enricher.MessageEnricher.EnrichExpressionPair;
99 import org.mule.exception.DefaultServiceExceptionStrategy;
100 import org.mule.expression.ExpressionConfig;
101 import org.mule.expression.transformers.BeanBuilderTransformer;
102 import org.mule.expression.transformers.ExpressionArgument;
103 import org.mule.expression.transformers.ExpressionTransformer;
104 import org.mule.interceptor.LoggingInterceptor;
105 import org.mule.interceptor.TimerInterceptor;
106 import org.mule.model.resolvers.ArrayEntryPointResolver;
107 import org.mule.model.resolvers.CallableEntryPointResolver;
108 import org.mule.model.resolvers.DefaultEntryPointResolverSet;
109 import org.mule.model.resolvers.ExplicitMethodEntryPointResolver;
110 import org.mule.model.resolvers.LegacyEntryPointResolverSet;
111 import org.mule.model.resolvers.MethodHeaderPropertyEntryPointResolver;
112 import org.mule.model.resolvers.NoArgumentsEntryPointResolver;
113 import org.mule.model.resolvers.ReflectionEntryPointResolver;
114 import org.mule.model.seda.SedaModel;
115 import org.mule.model.seda.SedaService;
116 import org.mule.object.PrototypeObjectFactory;
117 import org.mule.object.SingletonObjectFactory;
118 import org.mule.processor.InvokerMessageProcessor;
119 import org.mule.processor.NullMessageProcessor;
120 import org.mule.routing.CollectionSplitter;
121 import org.mule.routing.ExpressionMessageInfoMapping;
122 import org.mule.routing.ExpressionSplitter;
123 import org.mule.routing.FirstSuccessful;
124 import org.mule.routing.ForwardingCatchAllStrategy;
125 import org.mule.routing.IdempotentMessageFilter;
126 import org.mule.routing.IdempotentSecureHashMessageFilter;
127 import org.mule.routing.LoggingCatchAllStrategy;
128 import org.mule.routing.MapSplitter;
129 import org.mule.routing.MessageChunkAggregator;
130 import org.mule.routing.MessageChunkSplitter;
131 import org.mule.routing.MessageFilter;
132 import org.mule.routing.Resequencer;
133 import org.mule.routing.RoundRobin;
134 import org.mule.routing.SimpleCollectionAggregator;
135 import org.mule.routing.WireTap;
136 import org.mule.routing.filters.EqualsFilter;
137 import org.mule.routing.filters.ExceptionTypeFilter;
138 import org.mule.routing.filters.ExpressionFilter;
139 import org.mule.routing.filters.MessagePropertyFilter;
140 import org.mule.routing.filters.PayloadTypeFilter;
141 import org.mule.routing.filters.WildcardFilter;
142 import org.mule.routing.filters.logic.AndFilter;
143 import org.mule.routing.filters.logic.NotFilter;
144 import org.mule.routing.filters.logic.OrFilter;
145 import org.mule.routing.outbound.ChainingRouter;
146 import org.mule.routing.outbound.DefaultOutboundRouterCollection;
147 import org.mule.routing.outbound.EndpointSelector;
148 import org.mule.routing.outbound.ExceptionBasedRouter;
149 import org.mule.routing.outbound.ExpressionMessageSplitter;
150 import org.mule.routing.outbound.ExpressionRecipientList;
151 import org.mule.routing.outbound.FilteringOutboundRouter;
152 import org.mule.routing.outbound.ListMessageSplitter;
153 import org.mule.routing.outbound.MessageChunkingRouter;
154 import org.mule.routing.outbound.MulticastingRouter;
155 import org.mule.routing.outbound.OutboundPassThroughRouter;
156 import org.mule.routing.outbound.SequenceRouter;
157 import org.mule.routing.outbound.StaticRecipientList;
158 import org.mule.routing.requestreply.SimpleAsyncRequestReplyRequester;
159 import org.mule.security.PasswordBasedEncryptionStrategy;
160 import org.mule.security.SecretKeyEncryptionStrategy;
161 import org.mule.security.UsernamePasswordAuthenticationFilter;
162 import org.mule.security.filters.MuleEncryptionEndpointSecurityFilter;
163 import org.mule.service.ForwardingConsumer;
164 import org.mule.service.ServiceAsyncReplyCompositeMessageSource;
165 import org.mule.service.ServiceCompositeMessageSource;
166 import org.mule.transaction.XaTransactionFactory;
167 import org.mule.transaction.lookup.GenericTransactionManagerLookupFactory;
168 import org.mule.transaction.lookup.JBossTransactionManagerLookupFactory;
169 import org.mule.transaction.lookup.JRunTransactionManagerLookupFactory;
170 import org.mule.transaction.lookup.Resin3TransactionManagerLookupFactory;
171 import org.mule.transaction.lookup.WeblogicTransactionManagerLookupFactory;
172 import org.mule.transaction.lookup.WebsphereTransactionManagerLookupFactory;
173 import org.mule.transformer.codec.Base64Decoder;
174 import org.mule.transformer.codec.Base64Encoder;
175 import org.mule.transformer.codec.XmlEntityDecoder;
176 import org.mule.transformer.codec.XmlEntityEncoder;
177 import org.mule.transformer.compression.GZipCompressTransformer;
178 import org.mule.transformer.compression.GZipUncompressTransformer;
179 import org.mule.transformer.encryption.DecryptionTransformer;
180 import org.mule.transformer.encryption.EncryptionTransformer;
181 import org.mule.transformer.simple.AutoTransformer;
182 import org.mule.transformer.simple.BeanToMap;
183 import org.mule.transformer.simple.ByteArrayToHexString;
184 import org.mule.transformer.simple.ByteArrayToObject;
185 import org.mule.transformer.simple.ByteArrayToSerializable;
186 import org.mule.transformer.simple.CombineCollectionsTransformer;
187 import org.mule.transformer.simple.HexStringToByteArray;
188 import org.mule.transformer.simple.MapToBean;
189 import org.mule.transformer.simple.ObjectToByteArray;
190 import org.mule.transformer.simple.ObjectToString;
191 import org.mule.transformer.simple.SerializableToByteArray;
192 import org.mule.transformer.simple.StringAppendTransformer;
193 import org.mule.util.store.InMemoryObjectStore;
194 import org.mule.util.store.TextFileObjectStore;
195
196
197
198
199
200 public class MuleNamespaceHandler extends AbstractMuleNamespaceHandler
201 {
202
203 public void init()
204 {
205 registerIgnoredElement("mule");
206 registerIgnoredElement("description");
207
208
209 registerBeanDefinitionParser("configuration", new ConfigurationDefinitionParser());
210 registerBeanDefinitionParser("global-property", new GlobalPropertyDefinitionParser());
211 registerBeanDefinitionParser("default-threading-profile", new DefaultThreadingProfileDefinitionParser(MuleProperties.OBJECT_DEFAULT_THREADING_PROFILE));
212 registerBeanDefinitionParser("default-dispatcher-threading-profile", new DefaultThreadingProfileDefinitionParser(MuleProperties.OBJECT_DEFAULT_MESSAGE_DISPATCHER_THREADING_PROFILE));
213 registerBeanDefinitionParser("default-receiver-threading-profile", new DefaultThreadingProfileDefinitionParser(MuleProperties.OBJECT_DEFAULT_MESSAGE_RECEIVER_THREADING_PROFILE));
214 registerBeanDefinitionParser("default-service-threading-profile", new DefaultThreadingProfileDefinitionParser(MuleProperties.OBJECT_DEFAULT_SERVICE_THREADING_PROFILE));
215 registerBeanDefinitionParser("threading-profile", new ThreadingProfileDefinitionParser("threadingProfile", MuleProperties.OBJECT_DEFAULT_SERVICE_THREADING_PROFILE));
216 registerBeanDefinitionParser("custom-exception-strategy", new ChildDefinitionParser("exceptionListener", null));
217 registerBeanDefinitionParser("default-exception-strategy", new ChildDefinitionParser("exceptionListener", DefaultServiceExceptionStrategy.class));
218 registerDeprecatedBeanDefinitionParser("default-service-exception-strategy", new ChildDefinitionParser("exceptionListener", DefaultServiceExceptionStrategy.class), "Use default-exception-strategy instead.");
219 registerBeanDefinitionParser("commit-transaction", new ExceptionTXFilterDefinitionParser("commitTxFilter"));
220 registerBeanDefinitionParser("rollback-transaction", new ExceptionTXFilterDefinitionParser("rollbackTxFilter"));
221 registerBeanDefinitionParser("custom-agent", new DefaultNameMuleOrphanDefinitionParser());
222
223 registerBeanDefinitionParser("routeable-exception-strategy", new ChildDefinitionParser("exceptionListener", RouteableExceptionStrategy.class));
224 registerBeanDefinitionParser("pooling-profile", new PoolingProfileDefinitionParser());
225 registerBeanDefinitionParser("queue-profile", new ChildDefinitionParser("queueProfile", QueueProfile.class));
226 registerMuleBeanDefinitionParser("notifications", new NamedDefinitionParser(MuleProperties.OBJECT_NOTIFICATION_MANAGER)).addAlias("dynamic", "notificationDynamic");
227 registerBeanDefinitionParser("notification", new NotificationDefinitionParser());
228 registerBeanDefinitionParser("disable-notification", new NotificationDisableDefinitionParser());
229 registerMuleBeanDefinitionParser("notification-listener", new ChildDefinitionParser("allListenerSubscriptionPair", ListenerSubscriptionPair.class)).addAlias("ref", "listener").addReference("listener");
230
231
232 registerBeanDefinitionParser("dispatcher-threading-profile", new ThreadingProfileDefinitionParser("dispatcherThreadingProfile", MuleProperties.OBJECT_DEFAULT_MESSAGE_DISPATCHER_THREADING_PROFILE));
233 registerBeanDefinitionParser("receiver-threading-profile", new ThreadingProfileDefinitionParser("receiverThreadingProfile", MuleProperties.OBJECT_DEFAULT_MESSAGE_RECEIVER_THREADING_PROFILE));
234 registerBeanDefinitionParser("service-overrides", new ServiceOverridesDefinitionParser());
235 registerBeanDefinitionParser("custom-connector", new MuleOrphanDefinitionParser(true));
236
237
238
239 registerMuleBeanDefinitionParser("transformer", new ParentDefinitionParser()).addAlias(AbstractMuleBeanDefinitionParser.ATTRIBUTE_REF, "messageProcessor");
240
241 registerBeanDefinitionParser("custom-transformer", new MessageProcessorDefinitionParser());
242 registerBeanDefinitionParser("auto-transformer", new MessageProcessorDefinitionParser(AutoTransformer.class));
243 registerBeanDefinitionParser("message-properties-transformer", new MessagePropertiesTransformerDefinitionParser());
244
245 registerMuleBeanDefinitionParser("expression-transformer", new ExpressionTransformerDefinitionParser(
246 ExpressionTransformer.class));
247
248 registerBeanDefinitionParser("return-argument", new ChildDefinitionParser("argument", ExpressionArgument.class));
249
250 registerBeanDefinitionParser("bean-builder-transformer", new MessageProcessorDefinitionParser(BeanBuilderTransformer.class));
251
252 final ChildDefinitionParser beanPropertyParser = new ChildDefinitionParser("argument", ExpressionArgument.class);
253 beanPropertyParser.addAlias("property-name", "name");
254 registerBeanDefinitionParser("bean-property", beanPropertyParser);
255
256 registerBeanDefinitionParser("base64-encoder-transformer", new MessageProcessorDefinitionParser(Base64Encoder.class));
257 registerBeanDefinitionParser("base64-decoder-transformer", new MessageProcessorDefinitionParser(Base64Decoder.class));
258
259 registerBeanDefinitionParser("xml-entity-encoder-transformer", new MessageProcessorDefinitionParser(XmlEntityEncoder.class));
260 registerBeanDefinitionParser("xml-entity-decoder-transformer", new MessageProcessorDefinitionParser(XmlEntityDecoder.class));
261 registerBeanDefinitionParser("gzip-compress-transformer", new MessageProcessorDefinitionParser(GZipCompressTransformer.class));
262 registerBeanDefinitionParser("gzip-uncompress-transformer", new MessageProcessorDefinitionParser(GZipUncompressTransformer.class));
263 registerBeanDefinitionParser("encrypt-transformer", new MessageProcessorDefinitionParser(EncryptionTransformer.class));
264 registerBeanDefinitionParser("decrypt-transformer", new MessageProcessorDefinitionParser(DecryptionTransformer.class));
265 registerBeanDefinitionParser("byte-array-to-hex-string-transformer", new MessageProcessorDefinitionParser(ByteArrayToHexString.class));
266 registerBeanDefinitionParser("hex-string-to-byte-array-transformer", new MessageProcessorDefinitionParser(HexStringToByteArray.class));
267
268 registerBeanDefinitionParser("byte-array-to-object-transformer", new MessageProcessorDefinitionParser(ByteArrayToObject.class));
269 registerBeanDefinitionParser("object-to-byte-array-transformer", new MessageProcessorDefinitionParser(ObjectToByteArray.class));
270 registerBeanDefinitionParser("object-to-string-transformer", new MessageProcessorDefinitionParser(ObjectToString.class));
271 registerBeanDefinitionParser("byte-array-to-serializable-transformer", new MessageProcessorDefinitionParser(ByteArrayToSerializable.class));
272 registerBeanDefinitionParser("serializable-to-byte-array-transformer", new MessageProcessorDefinitionParser(SerializableToByteArray.class));
273 registerBeanDefinitionParser("byte-array-to-string-transformer", new MessageProcessorDefinitionParser(ObjectToString.class));
274 registerBeanDefinitionParser("string-to-byte-array-transformer", new MessageProcessorDefinitionParser(ObjectToByteArray.class));
275
276 registerBeanDefinitionParser("append-string-transformer", new MessageProcessorDefinitionParser(StringAppendTransformer.class));
277
278 registerBeanDefinitionParser("map-to-bean-transformer", new MessageProcessorDefinitionParser(MapToBean.class));
279 registerBeanDefinitionParser("bean-to-map-transformer", new MessageProcessorDefinitionParser(BeanToMap.class));
280
281 registerBeanDefinitionParser("combine-collections-transformer", new MessageProcessorDefinitionParser(CombineCollectionsTransformer.class));
282
283
284 registerBeanDefinitionParser("custom-transaction-manager", new TransactionManagerDefinitionParser());
285 registerBeanDefinitionParser("jndi-transaction-manager", new TransactionManagerDefinitionParser(GenericTransactionManagerLookupFactory.class));
286 registerBeanDefinitionParser("weblogic-transaction-manager", new TransactionManagerDefinitionParser(WeblogicTransactionManagerLookupFactory.class));
287 registerBeanDefinitionParser("jboss-transaction-manager", new TransactionManagerDefinitionParser(JBossTransactionManagerLookupFactory.class));
288 registerBeanDefinitionParser("jrun-transaction-manager", new TransactionManagerDefinitionParser(JRunTransactionManagerLookupFactory.class));
289 registerBeanDefinitionParser("resin-transaction-manager", new TransactionManagerDefinitionParser(Resin3TransactionManagerLookupFactory.class));
290 registerBeanDefinitionParser("websphere-transaction-manager", new TransactionManagerDefinitionParser(WebsphereTransactionManagerLookupFactory.class));
291
292
293 registerBeanDefinitionParser("endpoint", new OrphanEndpointDefinitionParser(EndpointURIEndpointBuilder.class));
294 registerBeanDefinitionParser("inbound-endpoint", new ChildEndpointDefinitionParser(InboundEndpointFactoryBean.class));
295 registerBeanDefinitionParser("poll", new ChildEndpointDefinitionParser(PollingMessageSourceFactoryBean.class));
296 registerBeanDefinitionParser("outbound-endpoint", new ChildEndpointDefinitionParser(OutboundEndpointFactoryBean.class));
297 registerBeanDefinitionParser("custom-transaction", new TransactionDefinitionParser());
298 registerBeanDefinitionParser("xa-transaction", new TransactionDefinitionParser(XaTransactionFactory.class));
299
300
301 registerMuleBeanDefinitionParser("processor", new ParentDefinitionParser()).addAlias(AbstractMuleBeanDefinitionParser.ATTRIBUTE_REF, "messageProcessor");
302 registerMuleBeanDefinitionParser("custom-processor", new MessageProcessorDefinitionParser()).addIgnored("name");
303 registerBeanDefinitionParser("processor-chain", new MessageProcessorChainDefinitionParser());
304 registerBeanDefinitionParser("response", new ResponseDefinitionParser());
305 registerMuleBeanDefinitionParser("message-filter", new MessageFilterDefinitionParser());
306 registerMuleBeanDefinitionParser("invoke",
307 new MessageProcessorDefinitionParser(InvokerMessageProcessor.class)).addAlias("method",
308 "methodName").addAlias("methodArguments", "argumentExpressionsString").addAlias(
309 "methodArgumentTypes", "ArgumentTypes");
310 registerMuleBeanDefinitionParser("enricher",
311 new MessageEnricherDefinitionParser("messageProcessor", MessageEnricher.class)).addIgnored(
312 "source")
313 .addIgnored("target")
314 .registerPreProcessor(
315 new CheckExclusiveAttributesAndChildren(new String[]{"source", "target"},
316 new String[]{"enrich"}))
317 .registerPreProcessor(
318 new CheckRequiredAttributesWhenNoChildren(new String[][]{new String[]{"target"}}, "enrich"))
319 .addCollection("enrichExpressionPairs");
320 registerMuleBeanDefinitionParser("enrich", new ChildDefinitionParser("enrichExpressionPair",
321 EnrichExpressionPair.class));
322
323 registerBeanDefinitionParser("async", new ChildDefinitionParser("messageProcessor",
324 AsyncMessageProcessorsFactoryBean.class));
325 registerBeanDefinitionParser("transactional", new ChildDefinitionParser("messageProcessor",
326 TransactionalMessageProcessorsFactoryBean.class));
327 registerMuleBeanDefinitionParser("logger", new ChildDefinitionParser("messageProcessor",
328 LoggerMessageProcessor.class));
329
330
331
332
333 registerBeanDefinitionParser("composite-source", new ChildDefinitionParser("messageSource", CompositeMessageSourceFactoryBean.class));
334
335
336 registerBeanDefinitionParser("model", new ModelDefinitionParser());
337 registerBeanDefinitionParser("seda-model", new InheritDefinitionParser(new OrphanDefinitionParser(SedaModel.class, true), new NamedDefinitionParser()));
338
339 registerBeanDefinitionParser("entry-point-resolver-set", new ChildDefinitionParser("entryPointResolverSet", DefaultEntryPointResolverSet.class));
340 registerBeanDefinitionParser("legacy-entry-point-resolver-set", new ChildDefinitionParser("entryPointResolverSet", LegacyEntryPointResolverSet.class));
341 registerBeanDefinitionParser("custom-entry-point-resolver-set", new ChildDefinitionParser("entryPointResolverSet"));
342
343 registerBeanDefinitionParser("custom-entry-point-resolver", new ChildDefinitionParser("entryPointResolver"));
344 registerBeanDefinitionParser("callable-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", CallableEntryPointResolver.class));
345 registerMuleBeanDefinitionParser("property-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", MethodHeaderPropertyEntryPointResolver.class)).addAlias("property", "methodProperty");
346 registerBeanDefinitionParser("method-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", ExplicitMethodEntryPointResolver.class));
347 registerBeanDefinitionParser("reflection-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", ReflectionEntryPointResolver.class));
348 registerBeanDefinitionParser("no-arguments-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", NoArgumentsEntryPointResolver.class));
349 registerBeanDefinitionParser("array-entry-point-resolver", new ChildDefinitionParser("entryPointResolver", ArrayEntryPointResolver.class));
350 registerMuleBeanDefinitionParser("include-entry-point", new ParentDefinitionParser());
351 registerMuleBeanDefinitionParser("exclude-entry-point", new ParentDefinitionParser()).addAlias("method", "ignoredMethod");
352 registerMuleBeanDefinitionParser("exclude-object-methods", new IgnoreObjectMethodsDefinitionParser());
353
354
355 registerBeanDefinitionParser("seda-service", new ServiceDefinitionParser(SedaService.class));
356 registerBeanDefinitionParser("service", new ServiceDefinitionParser(SedaService.class));
357 registerBeanDefinitionParser("custom-service", new ServiceDefinitionParser());
358
359
360 registerBeanDefinitionParser("flow", new FlowDefinitionParser());
361 registerBeanDefinitionParser("simple-service", new SimpleServiceDefinitionParser());
362 registerBeanDefinitionParser("bridge", new BridgeDefinitionParser());
363 registerBeanDefinitionParser("validator", new ValidatorDefinitionParser());
364
365 registerBeanDefinitionParser("flow-ref", new FlowRefDefinitionParser());
366
367
368 registerBeanDefinitionParser("component", new ComponentDelegatingDefinitionParser(DefaultJavaComponent.class));
369 registerBeanDefinitionParser("pooled-component", new ComponentDelegatingDefinitionParser(PooledJavaComponent.class));
370
371 registerMuleBeanDefinitionParser("binding", new BindingDefinitionParser("interfaceBinding", DefaultInterfaceBinding.class));
372
373
374 registerBeanDefinitionParser("pass-through-component", new ComponentDefinitionParser(PassThroughComponent.class));
375 registerBeanDefinitionParser("log-component", new SimpleComponentDefinitionParser(SimpleCallableJavaComponent.class, LogComponent.class));
376 registerBeanDefinitionParser("null-component", new SimpleComponentDefinitionParser(SimpleCallableJavaComponent.class, NullComponent.class));
377 registerBeanDefinitionParser("static-component", new StaticComponentDefinitionParser());
378 registerIgnoredElement("return-data");
379
380
381 registerBeanDefinitionParser("echo-component", new SimpleComponentDefinitionParser(DefaultJavaComponent.class, EchoComponent.class));
382
383
384 registerBeanDefinitionParser("singleton-object", new ObjectFactoryDefinitionParser(SingletonObjectFactory.class, "objectFactory"));
385 registerBeanDefinitionParser("prototype-object", new ObjectFactoryDefinitionParser(PrototypeObjectFactory.class, "objectFactory"));
386 registerBeanDefinitionParser("spring-object", new ObjectFactoryDefinitionParser(SpringBeanLookup.class, "objectFactory"));
387
388
389 registerBeanDefinitionParser("custom-lifecycle-adapter-factory", new ChildDefinitionParser("lifecycleAdapterFactory"));
390
391
392 registerBeanDefinitionParser("in-memory-store", new ChildDefinitionParser("store", InMemoryObjectStore.class));
393 registerBeanDefinitionParser("simple-text-file-store", new ChildDefinitionParser("store", TextFileObjectStore.class));
394
395
396 registerBeanDefinitionParser("inbound", new ChildDefinitionParser("messageSource", ServiceCompositeMessageSource.class, true));
397 registerBeanDefinitionParser("outbound", new ChildDefinitionParser("outboundMessageProcessor", DefaultOutboundRouterCollection.class, true));
398 registerBeanDefinitionParser("async-reply", new ChildDefinitionParser("asyncReplyMessageSource", ServiceAsyncReplyCompositeMessageSource.class, true));
399
400
401 registerBeanDefinitionParser("forwarding-router", new InboundRouterDefinitionParser(ForwardingConsumer.class));
402 registerBeanDefinitionParser("idempotent-receiver-router", new InboundRouterDefinitionParser(IdempotentMessageFilter.class));
403 registerBeanDefinitionParser("idempotent-secure-hash-receiver-router", new InboundRouterDefinitionParser(IdempotentSecureHashMessageFilter.class));
404 registerBeanDefinitionParser("selective-consumer-router", new InboundRouterDefinitionParser(MessageFilter.class));
405 registerBeanDefinitionParser("wire-tap-router", new InboundRouterDefinitionParser(WireTap.class));
406 registerBeanDefinitionParser("custom-correlation-aggregator-router", new InboundRouterDefinitionParser());
407 registerBeanDefinitionParser("collection-aggregator-router", new InboundRouterDefinitionParser(SimpleCollectionAggregator.class));
408 registerBeanDefinitionParser("message-chunking-aggregator-router", new InboundRouterDefinitionParser(MessageChunkAggregator.class));
409 registerBeanDefinitionParser("correlation-resequencer-router", new InboundRouterDefinitionParser(Resequencer.class));
410 registerBeanDefinitionParser("custom-inbound-router", new InboundRouterDefinitionParser(null));
411
412
413 registerBeanDefinitionParser("pass-through-router", new RouterDefinitionParser(OutboundPassThroughRouter.class));
414 registerBeanDefinitionParser("filtering-router", new RouterDefinitionParser(FilteringOutboundRouter.class));
415 registerBeanDefinitionParser("chaining-router", new RouterDefinitionParser(ChainingRouter.class));
416 registerBeanDefinitionParser("endpoint-selector-router", new RouterDefinitionParser(EndpointSelector.class));
417 registerBeanDefinitionParser("exception-based-router", new RouterDefinitionParser(ExceptionBasedRouter.class));
418 registerBeanDefinitionParser("recipient-list-exception-based-router", new RouterDefinitionParser(ExceptionBasedRouter.class));
419 registerBeanDefinitionParser("list-message-splitter-router", new RouterDefinitionParser(ListMessageSplitter.class));
420 registerBeanDefinitionParser("expression-splitter-router", new RouterDefinitionParser(ExpressionMessageSplitter.class));
421 registerBeanDefinitionParser("message-chunking-router", new RouterDefinitionParser(MessageChunkingRouter.class));
422 registerBeanDefinitionParser("multicasting-router", new RouterDefinitionParser(MulticastingRouter.class));
423 registerBeanDefinitionParser("static-recipient-list-router", new RouterDefinitionParser(StaticRecipientList.class));
424 registerBeanDefinitionParser("expression-recipient-list-router", new RouterDefinitionParser(ExpressionRecipientList.class));
425 registerBeanDefinitionParser("recipients", new ChildListDefinitionParser("recipients"));
426 registerBeanDefinitionParser("custom-outbound-router", new RouterDefinitionParser(null));
427 registerBeanDefinitionParser("reply-to", new EndpointRefParser("replyTo"));
428 registerBeanDefinitionParser("sequence-router", new RouterDefinitionParser(SequenceRouter.class));
429
430
431 registerBeanDefinitionParser("custom-async-reply-router", new InboundRouterDefinitionParser(null));
432 registerBeanDefinitionParser("single-async-reply-router", new InboundRouterDefinitionParser(NullMessageProcessor.class));
433 registerBeanDefinitionParser("collection-async-reply-router", new InboundRouterDefinitionParser(SimpleCollectionAggregator.class));
434
435
436 registerBeanDefinitionParser("idempotent-message-filter", new InboundRouterDefinitionParser(IdempotentMessageFilter.class));
437 registerBeanDefinitionParser("idempotent-secure-hash-message-filter", new InboundRouterDefinitionParser(IdempotentSecureHashMessageFilter.class));
438 registerBeanDefinitionParser("wire-tap", new InboundRouterDefinitionParser(WireTap.class));
439 registerBeanDefinitionParser("custom-aggregator", new AggregatorDefinitionParser());
440 registerBeanDefinitionParser("collection-aggregator", new AggregatorDefinitionParser(SimpleCollectionAggregator.class));
441 registerBeanDefinitionParser("message-chunk-aggregator", new AggregatorDefinitionParser(MessageChunkAggregator.class));
442 registerBeanDefinitionParser("resequencer", new InboundRouterDefinitionParser(Resequencer.class));
443 registerBeanDefinitionParser("splitter", new SplitterDefinitionParser(ExpressionSplitter.class));
444 registerBeanDefinitionParser("collection-splitter", new SplitterDefinitionParser(CollectionSplitter.class));
445 registerBeanDefinitionParser("map-splitter", new SplitterDefinitionParser(MapSplitter.class));
446 registerBeanDefinitionParser("message-chunk-splitter", new SplitterDefinitionParser(MessageChunkSplitter.class));
447 registerBeanDefinitionParser("custom-splitter", new SplitterDefinitionParser());
448
449
450
451
452 registerBeanDefinitionParser("choice", new ChildDefinitionParser("messageProcessor", ChoiceRouterFactoryBean.class));
453 registerBeanDefinitionParser("when", (ChildDefinitionParser)new ChildDefinitionParser("route", MessageProcessorFilterPairFactoryBean.class).registerPreProcessor(new CheckExclusiveAttributesAndChildren(new String[]{
454 "expression"}, new String[]{"{http://www.mulesoft.org/schema/mule/core}abstractFilterType"})));
455 registerBeanDefinitionParser("otherwise", new ChildDefinitionParser("defaultRoute", MessageProcessorFilterPairFactoryBean.class));
456
457 registerBeanDefinitionParser("all", new ChildDefinitionParser("messageProcessor", MulticastingRouter.class));
458 registerBeanDefinitionParser("recipient-list", new ChildDefinitionParser("messageProcessor", ExpressionRecipientList.class));
459
460 registerBeanDefinitionParser("request-reply", new ChildDefinitionParser("messageProcessor", SimpleAsyncRequestReplyRequester.class));
461 registerBeanDefinitionParser("first-successful", new ChildDefinitionParser("messageProcessor", FirstSuccessful.class));
462 registerBeanDefinitionParser("round-robin", new ChildDefinitionParser("messageProcessor", RoundRobin.class));
463
464 registerBeanDefinitionParser("custom-router", new ChildDefinitionParser("messageProcessor"));
465
466
467 registerBeanDefinitionParser("expression-message-info-mapping", new ChildDefinitionParser("messageInfoMapping", ExpressionMessageInfoMapping.class));
468 registerBeanDefinitionParser("custom-message-info-mapping", new ChildDefinitionParser("messageInfoMapping"));
469
470
471 registerBeanDefinitionParser("logging-catch-all-strategy", new ChildDefinitionParser("catchAllStrategy", LoggingCatchAllStrategy.class));
472 registerBeanDefinitionParser("custom-catch-all-strategy", new ChildDefinitionParser("catchAllStrategy", null));
473 registerBeanDefinitionParser("forwarding-catch-all-strategy", new ChildDefinitionParser("catchAllStrategy", ForwardingCatchAllStrategy.class));
474 registerBeanDefinitionParser("custom-forwarding-catch-all-strategy", new ChildDefinitionParser("catchAllStrategy", null));
475
476
477 registerMuleBeanDefinitionParser("filter", new FilterRefDefinitionParser());
478 registerBeanDefinitionParser("and-filter", new FilterDefinitionParser(AndFilter.class));
479 registerBeanDefinitionParser("or-filter", new FilterDefinitionParser(OrFilter.class));
480 registerBeanDefinitionParser("not-filter", new FilterDefinitionParser(NotFilter.class));
481 registerBeanDefinitionParser("regex-filter", new RegExFilterDefinitionParser());
482 registerBeanDefinitionParser("exception-type-filter", new FilterDefinitionParser(ExceptionTypeFilter.class));
483 registerBeanDefinitionParser("message-property-filter", new FilterDefinitionParser(MessagePropertyFilter.class));
484 registerBeanDefinitionParser("payload-type-filter", new FilterDefinitionParser(PayloadTypeFilter.class));
485 registerBeanDefinitionParser("wildcard-filter", new FilterDefinitionParser(WildcardFilter.class));
486 registerBeanDefinitionParser("equals-filter", new FilterDefinitionParser(EqualsFilter.class));
487 registerBeanDefinitionParser("expression-filter", new FilterDefinitionParser(ExpressionFilter.class));
488 registerBeanDefinitionParser("custom-filter", new FilterDefinitionParser());
489
490
491 registerMuleBeanDefinitionParser("properties", new ChildMapDefinitionParser("properties")).addCollection("properties");
492 registerMuleBeanDefinitionParser("property", new ChildMapEntryDefinitionParser("properties")).addCollection("properties");
493 registerMuleBeanDefinitionParser("add-message-properties", new ChildMapDefinitionParser("addProperties")).addCollection("addProperties");
494 registerMuleBeanDefinitionParser("add-message-property", new ChildMapEntryDefinitionParser("addProperties")).addCollection("addProperties");
495 registerMuleBeanDefinitionParser("rename-message-property", new ChildMapEntryDefinitionParser("renameProperties")).addCollection("renameProperties");
496 registerBeanDefinitionParser("delete-message-property", new ChildListEntryDefinitionParser("deleteProperties", ChildMapEntryDefinitionParser.KEY));
497 registerMuleBeanDefinitionParser("jndi-provider-properties", new ChildMapDefinitionParser("jndiProviderProperties")).addCollection("jndiProviderProperties");
498 registerMuleBeanDefinitionParser("jndi-provider-property", new ChildMapEntryDefinitionParser("jndiProviderProperties")).addCollection("jndiProviderProperties");
499 registerBeanDefinitionParser("environment", new ChildMapDefinitionParser("environment"));
500 registerBeanDefinitionParser("expression", new ChildDefinitionParser("expression", ExpressionConfig.class));
501
502
503 registerMuleBeanDefinitionParser("security-manager", new NamedDefinitionParser(MuleProperties.OBJECT_SECURITY_MANAGER)).addIgnored("type").addIgnored("name");
504 registerBeanDefinitionParser("custom-security-provider", new NameTransferDefinitionParser("providers"));
505 registerMuleBeanDefinitionParser("custom-encryption-strategy", new NameTransferDefinitionParser("encryptionStrategies")).addAlias("strategy", "encryptionStrategy");
506 registerBeanDefinitionParser("password-encryption-strategy", new ChildDefinitionParser("encryptionStrategy", PasswordBasedEncryptionStrategy.class));
507 registerMuleBeanDefinitionParser("secret-key-encryption-strategy", new ChildDefinitionParser("encryptionStrategy", SecretKeyEncryptionStrategy.class)).registerPreProcessor(new CheckExclusiveAttributes(new String[][]{new String[]{"key"}, new String[]{"keyFactory-ref"}}));
508 registerBeanDefinitionParser("encryption-security-filter", new SecurityFilterDefinitionParser(MuleEncryptionEndpointSecurityFilter.class));
509 registerBeanDefinitionParser("custom-security-filter", new SecurityFilterDefinitionParser());
510 registerBeanDefinitionParser("username-password-filter", new SecurityFilterDefinitionParser(UsernamePasswordAuthenticationFilter.class));
511
512
513 registerMuleBeanDefinitionParser("interceptor-stack", new InterceptorStackDefinitionParser());
514 registerBeanDefinitionParser("custom-interceptor", new InterceptorDefinitionParser());
515 registerBeanDefinitionParser("timer-interceptor", new InterceptorDefinitionParser(TimerInterceptor.class));
516 registerBeanDefinitionParser("logging-interceptor", new InterceptorDefinitionParser(LoggingInterceptor.class));
517
518
519 registerBeanDefinitionParser("caching-strategy", new CachingStrategyDefinitionParser(ObjectStoreCachingStrategy.class, true));
520 registerBeanDefinitionParser("cache", new CacheDefinitionParser("messageProcessor", CachingMessageProcessor.class));
521 }
522
523 }