01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */package org.apache.cxf.transport.jms.spring;
19:
20: import javax.xml.namespace.QName;
21:
22: import org.w3c.dom.Element;
23:
24: import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
25: import org.apache.cxf.transport.jms.AddressType;
26: import org.apache.cxf.transport.jms.JMSDestination;
27: import org.apache.cxf.transport.jms.ServerBehaviorPolicyType;
28: import org.apache.cxf.transport.jms.ServerConfig;
29: import org.apache.cxf.transport.jms.SessionPoolType;
30: import org.springframework.beans.factory.support.BeanDefinitionBuilder;
31: import org.springframework.beans.factory.xml.ParserContext;
32:
33: public class JMSDestinationBeanDefinitionParser extends
34: AbstractBeanDefinitionParser {
35:
36: private static final String JMS_NS = "http://cxf.apache.org/transports/jms";
37:
38: @Override
39: protected void doParse(Element element, ParserContext ctx,
40: BeanDefinitionBuilder bean) {
41: bean.setAbstract(true);
42: mapElementToJaxbProperty(element, bean, new QName(JMS_NS,
43: "serverConfig"), "serverConfig", ServerConfig.class);
44: mapElementToJaxbProperty(element, bean, new QName(JMS_NS,
45: "runtimePolicy"), "runtimePolicy",
46: ServerBehaviorPolicyType.class);
47: mapElementToJaxbProperty(element, bean, new QName(JMS_NS,
48: "address"), "JMSAddress", AddressType.class);
49: mapElementToJaxbProperty(element, bean, new QName(JMS_NS,
50: "sessionPool"), "sessionPool", SessionPoolType.class);
51: }
52:
53: @Override
54: protected Class getBeanClass(Element arg0) {
55: return JMSDestination.class;
56: }
57:
58: }
|