1 package com.atlassian.seraph.config;
2
3
4
5
6 public class SecurityConfigFactory
7 {
8 private static volatile SecurityConfig instance;
9
10
11
12
13
14
15
16
17 public static SecurityConfig getInstance()
18 {
19 if (instance == null)
20 {
21 loadInstance(SecurityConfigImpl.DEFAULT_CONFIG_LOCATION);
22 }
23 return instance;
24 }
25
26
27
28
29
30
31
32
33
34
35 public static SecurityConfig getInstance(final String configFileLocation)
36 {
37 if (instance == null)
38 {
39 loadInstance(configFileLocation);
40 }
41 return instance;
42 }
43
44
45 public static void setSecurityConfig(final SecurityConfig securityConfig)
46 {
47 instance = securityConfig;
48 }
49
50 private synchronized static void loadInstance(final String configFileLocation)
51 {
52 if (instance == null)
53 {
54 try
55 {
56 instance = new SecurityConfigImpl(configFileLocation);
57 }
58 catch (final ConfigurationException e)
59 {
60 throw new RuntimeException("Could not load security config '" + configFileLocation + "': " + e.getMessage());
61 }
62 }
63 }
64
65
66 private SecurityConfigFactory()
67 {}
68 }