1 package org.springframework.osgi.atlassian;
2
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5 import org.springframework.beans.factory.BeanCreationException;
6 import org.springframework.beans.factory.BeanDefinitionStoreException;
7 import org.springframework.beans.factory.BeanFactory;
8 import org.springframework.beans.factory.support.BeanDefinitionValidationException;
9 import org.springframework.beans.factory.support.DefaultListableBeanFactory;
10 import org.springframework.beans.factory.support.RootBeanDefinition;
11
12
13
14
15
16
17
18 public class UnsecureListableBeanFactory extends DefaultListableBeanFactory
19 {
20 private static final Logger log = LoggerFactory.getLogger(UnsecureListableBeanFactory.class);
21
22 public UnsecureListableBeanFactory(BeanFactory parentBeanFactory)
23 {
24 super(parentBeanFactory);
25 }
26
27
28
29
30
31 protected Object createBean(final String beanName, final RootBeanDefinition mbd, final Object[] args)
32 throws BeanCreationException
33 {
34 log.debug("Creating instance of bean '{}'", beanName);
35
36
37 resolveBeanClass(mbd, beanName);
38
39
40 try {
41 mbd.prepareMethodOverrides();
42 }
43 catch (BeanDefinitionValidationException ex) {
44 throw new BeanDefinitionStoreException(mbd.getResourceDescription(),
45 beanName, "Validation of method overrides failed", ex);
46 }
47
48 try {
49
50 Object bean = resolveBeforeInstantiation(beanName, mbd);
51 if (bean != null) {
52 return bean;
53 }
54 }
55 catch (Throwable ex) {
56 throw new BeanCreationException(mbd.getResourceDescription(), beanName,
57 "BeanPostProcessor before instantiation of bean failed", ex);
58 }
59
60 log.debug("Finished creating instance of bean '{}'", beanName);
61 return doCreateBean(beanName, mbd, args);
62 }
63 }