1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.config;
18
19 import java.util.Iterator;
20 import java.util.List;
21 import java.util.Properties;
22
23 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
24 import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
25 import org.springframework.beans.factory.xml.ParserContext;
26 import org.springframework.util.xml.DomUtils;
27 import org.w3c.dom.Element;
28
29
30
31
32
33
34
35 class XPathEndpointsBeanDefinitionParser extends AbstractSimpleBeanDefinitionParser {
36
37 private static final String XPATH_PARAM_ANNOTATION_METHOD_ENDPOINT_ADAPTER_CLASS_NAME =
38 "org.springframework.ws.server.endpoint.adapter.XPathParamAnnotationMethodEndpointAdapter";
39
40 protected boolean shouldGenerateIdAsFallback() {
41 return true;
42 }
43
44 protected String getBeanClassName(Element element) {
45 return XPATH_PARAM_ANNOTATION_METHOD_ENDPOINT_ADAPTER_CLASS_NAME;
46 }
47
48 protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder beanDefinitionBuilder) {
49 List namespaceElements = DomUtils.getChildElementsByTagName(element, "namespace");
50 if (!namespaceElements.isEmpty()) {
51 Properties namespaces = new Properties();
52 for (Iterator iterator = namespaceElements.iterator(); iterator.hasNext();) {
53 Element namespaceElement = (Element) iterator.next();
54 String prefix = namespaceElement.getAttribute("prefix");
55 String uri = namespaceElement.getAttribute("uri");
56 namespaces.setProperty(prefix, uri);
57 }
58 beanDefinitionBuilder.addPropertyValue("namespaces", namespaces);
59 }
60 }
61
62 }