1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.xbean.spring.context.impl;
18
19 import java.lang.reflect.Constructor;
20 import java.util.List;
21
22 import org.apache.xbean.spring.context.SpringApplicationContext;
23 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
24 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
25
26 public class XBeanHelper {
27
28 public static XmlBeanDefinitionReader createBeanDefinitionReader(
29 SpringApplicationContext applicationContext,
30 BeanDefinitionRegistry registry,
31 List xmlPreprocessors) {
32
33 String version = "2.0";
34
35 try {
36 Class spring20Clazz = Class.forName("org.springframework.core.AttributeAccessorSupport");
37 version = "2.0";
38 } catch(ClassNotFoundException e) {
39 version = "1.2.8";
40 }
41
42 String className = "org.apache.xbean.spring.context.v" + version.charAt(0) + ".XBeanXmlBeanDefinitionReader";
43 try {
44 Class cl = Class.forName(className);
45 Constructor cstr = cl.getConstructor(new Class[] { SpringApplicationContext.class, BeanDefinitionRegistry.class, List.class });
46 return (XmlBeanDefinitionReader) cstr.newInstance(new Object[] { applicationContext, registry, xmlPreprocessors });
47 } catch (Exception e) {
48 throw (IllegalStateException) new IllegalStateException("Could not find valid implementation for: " + version).initCause(e);
49 }
50 }
51 }