1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.spring;
20
21 import java.util.Optional;
22 import org.springframework.beans.factory.support.DefaultListableBeanFactory;
23 import org.springframework.context.ApplicationContext;
24 import org.springframework.context.ApplicationContextAware;
25 import org.springframework.context.ConfigurableApplicationContext;
26
27 public class ApplicationContextProvider implements ApplicationContextAware {
28
29 private static ConfigurableApplicationContext CTX;
30
31 private static DefaultListableBeanFactory BEAN_FACTORY;
32
33 public static ConfigurableApplicationContext getApplicationContext() {
34 return CTX;
35 }
36
37 public static void setApplicationContext(final ConfigurableApplicationContext ctx) {
38 CTX = ctx;
39 }
40
41 public static DefaultListableBeanFactory getBeanFactory() {
42 return Optional.ofNullable(BEAN_FACTORY).
43 orElseGet(() -> Optional.ofNullable(CTX).
44 map(ctx -> (DefaultListableBeanFactory) ctx.getBeanFactory()).
45 orElse(null));
46 }
47
48 public static void setBeanFactory(final DefaultListableBeanFactory beanFactory) {
49 BEAN_FACTORY = beanFactory;
50 }
51
52
53
54
55
56
57 @Override
58 public void setApplicationContext(final ApplicationContext ctx) {
59 CTX = (ConfigurableApplicationContext) ctx;
60 }
61 }