1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.cxf.config;
12
13 import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
14 import org.mule.config.spring.parsers.collection.ChildListDefinitionParser;
15 import org.mule.config.spring.parsers.generic.MuleOrphanDefinitionParser;
16 import org.mule.config.spring.parsers.generic.OrphanDefinitionParser;
17 import org.mule.config.spring.parsers.processors.AddAttribute;
18 import org.mule.config.spring.parsers.specific.ComponentDefinitionParser;
19 import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
20 import org.mule.module.cxf.CxfConfiguration;
21 import org.mule.module.cxf.CxfConstants;
22 import org.mule.module.cxf.component.WebServiceWrapperComponent;
23 import org.mule.module.cxf.support.MuleSecurityManagerCallbackHandler;
24 import org.mule.module.cxf.support.StaxFeature;
25
26 import org.apache.cxf.configuration.spring.SimpleBeanDefinitionParser;
27 import org.springframework.beans.factory.BeanDefinitionStoreException;
28 import org.springframework.beans.factory.support.AbstractBeanDefinition;
29 import org.springframework.beans.factory.xml.ParserContext;
30 import org.w3c.dom.Element;
31
32 public class CxfNamespaceHandler extends AbstractMuleNamespaceHandler
33 {
34
35 public void init()
36 {
37 MuleOrphanDefinitionParser configParser = new MuleOrphanDefinitionParser(CxfConfiguration.class, true) {
38
39 @Override
40 protected String resolveId(Element element,
41 AbstractBeanDefinition definition,
42 ParserContext parserContext) throws BeanDefinitionStoreException
43 {
44 return CxfConstants.DEFAULT_CXF_CONFIGURATION;
45 }
46
47 };
48 configParser.addIgnored("name");
49 registerMuleBeanDefinitionParser("configuration", configParser);
50
51 MessageProcessorDefinitionParser jsParser = new MessageProcessorDefinitionParser(WebServiceFactoryBean.class);
52 jsParser.registerPreProcessor(new AddAttribute("frontend", CxfConstants.JAX_WS_FRONTEND));
53 registerBeanDefinitionParser("jaxws-service", jsParser);
54
55 MessageProcessorDefinitionParser ssParser = new MessageProcessorDefinitionParser(WebServiceFactoryBean.class);
56 ssParser.registerPreProcessor(new AddAttribute("frontend", CxfConstants.SIMPLE_FRONTEND));
57 registerBeanDefinitionParser("simple-service", ssParser);
58
59 registerBeanDefinitionParser("proxy-service", new MessageProcessorDefinitionParser(ProxyServiceFactoryBean.class));
60
61 registerBeanDefinitionParser("simple-client", new MessageProcessorDefinitionParser(SimpleClientFactoryBean.class));
62 registerBeanDefinitionParser("jaxws-client", new MessageProcessorDefinitionParser(JaxWsClientFactoryBean.class));
63 registerBeanDefinitionParser("proxy-client", new MessageProcessorDefinitionParser(ProxyClientFactoryBean.class));
64
65 registerBeanDefinitionParser(CxfConstants.FEATURES, new ChildListDefinitionParser(CxfConstants.FEATURES));
66
67
68 registerBeanDefinitionParser(CxfConstants.IN_INTERCEPTORS, new ChildListDefinitionParser(CxfConstants.IN_INTERCEPTORS));
69 registerBeanDefinitionParser(CxfConstants.IN_FAULT_INTERCEPTORS, new ChildListDefinitionParser(CxfConstants.IN_FAULT_INTERCEPTORS));
70 registerBeanDefinitionParser(CxfConstants.OUT_INTERCEPTORS, new ChildListDefinitionParser(CxfConstants.OUT_INTERCEPTORS));
71 registerBeanDefinitionParser(CxfConstants.OUT_FAULT_INTERCEPTORS, new ChildListDefinitionParser(CxfConstants.OUT_FAULT_INTERCEPTORS));
72
73 registerBeanDefinitionParser("stax", new SimpleBeanDefinitionParser(StaxFeature.class));
74
75 registerBeanDefinitionParser("wrapper-component", new ComponentDefinitionParser(WebServiceWrapperComponent.class));
76
77 OrphanDefinitionParser parser = new OrphanDefinitionParser(MuleSecurityManagerCallbackHandler.class, true);
78 parser.registerPreProcessor(new AddAttribute("securityManager-ref", "_muleSecurityManager"));
79 registerBeanDefinitionParser("security-manager-callback", parser);
80
81 }
82 }