1 package com.atlassian.plugin.osgi.bridge.external;
2
3 import com.atlassian.plugin.hostcontainer.HostContainer;
4 import org.springframework.beans.BeansException;
5 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
6 import org.springframework.context.ApplicationContext;
7 import org.springframework.context.ApplicationContextAware;
8
9
10
11
12
13
14 public class SpringHostContainer implements HostContainer, ApplicationContextAware
15 {
16 private ApplicationContext applicationContext;
17
18 public <T> T create(Class<T> moduleClass) throws IllegalArgumentException
19 {
20 if (applicationContext == null)
21 {
22 throw new IllegalStateException("Application context missing");
23 }
24 return (T) applicationContext.getAutowireCapableBeanFactory().createBean(moduleClass, AutowireCapableBeanFactory.AUTOWIRE_AUTODETECT, false);
25 }
26
27 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
28 {
29 this.applicationContext = applicationContext;
30 }
31 }