1
2
3
4
5
6
7
8
9
10 package org.mule.config.spring.parsers.specific;
11
12 import org.mule.component.simple.NullComponent;
13 import org.mule.config.spring.parsers.delegate.AbstractSerialDelegatingDefinitionParser;
14 import org.mule.config.spring.parsers.generic.GrandchildDefinitionParser;
15 import org.mule.object.AbstractObjectFactory;
16 import org.mule.object.SingletonObjectFactory;
17 import org.mule.routing.inbound.ForwardingConsumer;
18
19 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
20 import org.springframework.beans.factory.xml.ParserContext;
21 import org.w3c.dom.Element;
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class ForwardingRouterDefinitionParser extends AbstractSerialDelegatingDefinitionParser
39 {
40 public ForwardingRouterDefinitionParser()
41 {
42 super();
43 addDelegate(new RouterDefinitionParser(ForwardingConsumer.class));
44 addDelegate(new NullComponentPlaceholder());
45 }
46
47 class NullComponentPlaceholder extends GrandchildDefinitionParser
48 {
49 public NullComponentPlaceholder()
50 {
51 super("componentFactory", SingletonObjectFactory.class);
52 }
53
54 protected void parseChild(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
55 {
56 builder.addPropertyValue(AbstractObjectFactory.ATTRIBUTE_OBJECT_CLASS_NAME, NullComponent.class.getName());
57 super.parseChild(element, parserContext, builder);
58 }
59 }
60 }
61
62