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 org.springframework.beans.factory.BeanDefinitionStoreException;
20 import org.springframework.beans.factory.support.AbstractBeanDefinition;
21 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
22 import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
23 import org.springframework.beans.factory.xml.ParserContext;
24 import org.springframework.util.StringUtils;
25
26 import org.w3c.dom.Element;
27
28
29
30
31
32
33
34 class StaticWsdlBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
35
36 private static final String CLASS_NAME = "org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition";
37
38 @Override
39 protected boolean shouldGenerateIdAsFallback() {
40 return true;
41 }
42
43 @Override
44 protected String getBeanClassName(Element element) {
45 return CLASS_NAME;
46 }
47
48 @Override
49 protected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext)
50 throws BeanDefinitionStoreException {
51 String id = element.getAttribute(ID_ATTRIBUTE);
52 if (StringUtils.hasLength(id)) {
53 return id;
54 }
55 String location = element.getAttribute("location");
56 if (StringUtils.hasLength(location)) {
57 String filename = StringUtils.stripFilenameExtension(StringUtils.getFilename(location));
58 if (StringUtils.hasLength(filename)) {
59 return filename;
60 }
61 }
62 return parserContext.getReaderContext().generateBeanName(definition);
63 }
64
65 @Override
66 protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder beanDefinitionBuilder) {
67 String location = element.getAttribute("location");
68 beanDefinitionBuilder.addPropertyValue("wsdl", location);
69 }
70
71 }