1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.beans.config;
35
36 import info.magnolia.cms.core.Path;
37 import info.magnolia.cms.i18n.MessagesManager;
38 import info.magnolia.cms.license.LicenseFileExtractor;
39 import info.magnolia.module.ModuleManagementException;
40 import info.magnolia.module.ModuleManager;
41 import org.apache.commons.lang.StringUtils;
42 import org.slf4j.Logger;
43 import org.slf4j.LoggerFactory;
44
45 import javax.servlet.ServletContext;
46
47
48
49
50
51
52
53
54 public class ConfigLoader {
55 private static final Logger log = LoggerFactory.getLogger(ConfigLoader.class);
56 private static final String JAAS_PROPERTYNAME = "java.security.auth.login.config";
57
58
59
60
61
62
63
64
65 public ConfigLoader(ServletContext context) {
66
67 if (StringUtils.isEmpty(System.getProperty(JAAS_PROPERTYNAME))) {
68 try {
69 System.setProperty(JAAS_PROPERTYNAME, Path.getAbsoluteFileSystemPath("WEB-INF/config/jaas.config"));
70 }
71 catch (SecurityException se) {
72 log.error("Failed to set {}, check application server settings", JAAS_PROPERTYNAME);
73 log.error(se.getMessage(), se);
74 log.info("Aborting startup");
75 return;
76 }
77 } else {
78 log.info("JAAS config file set by parent container or some other application");
79 log.info("Config in use {}", System.getProperty(JAAS_PROPERTYNAME));
80 log.info("Please make sure JAAS config has all necessary modules (refer config/jaas.config) configured");
81 }
82 }
83
84 public void unload(ServletContext servletContext) {
85 ContentRepository.shutdown();
86 }
87
88
89
90
91
92
93 public void load(ServletContext servletContext) {
94
95 LicenseFileExtractor license = LicenseFileExtractor.getInstance();
96 license.init();
97 license.printVersionInfo();
98
99 final long millis = System.currentTimeMillis();
100 log.info("Initializing content repositories");
101
102 ContentRepository.init();
103
104 try {
105 final ModuleManager moduleManager = ModuleManager.Factory.getInstance();
106 moduleManager.checkForInstallOrUpdates();
107 moduleManager.getUI().onStartup();
108
109
110 MessagesManager.getInstance().init();
111 MIMEMapping.init();
112 VersionConfig.getInstance().init();
113
114
115 log.info("Configuration loaded (took {} seconds)", Long.toString((System.currentTimeMillis() - millis) / 1000));
116
117 } catch (ModuleManagementException e) {
118 log.error("A module error occurred during initialization: " + e.getMessage(), e);
119 } catch (ConfigurationException e) {
120 log.error("A configuration error occurred during initialization: " + e.getMessage(), e);
121 } catch (Throwable e) {
122 log.error("An unspecified error occurred during initialization: " + e.getMessage(), e);
123 }
124
125 }
126 }