001
014
015 package com.liferay.portal.util;
016
017 import com.liferay.portal.bean.BeanLocatorImpl;
018 import com.liferay.portal.cache.CacheRegistryImpl;
019 import com.liferay.portal.configuration.ConfigurationFactoryImpl;
020 import com.liferay.portal.dao.db.DBFactoryImpl;
021 import com.liferay.portal.dao.jdbc.DataSourceFactoryImpl;
022 import com.liferay.portal.kernel.bean.PortalBeanLocatorUtil;
023 import com.liferay.portal.kernel.cache.CacheRegistryUtil;
024 import com.liferay.portal.kernel.configuration.ConfigurationFactoryUtil;
025 import com.liferay.portal.kernel.dao.db.DBFactoryUtil;
026 import com.liferay.portal.kernel.dao.jdbc.DataSourceFactoryUtil;
027 import com.liferay.portal.kernel.log.LogFactoryUtil;
028 import com.liferay.portal.kernel.log.SanitizerLogWrapper;
029 import com.liferay.portal.kernel.util.GetterUtil;
030 import com.liferay.portal.kernel.util.JavaDetector;
031 import com.liferay.portal.kernel.util.LocaleUtil;
032 import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
033 import com.liferay.portal.kernel.util.StringPool;
034 import com.liferay.portal.kernel.util.SystemProperties;
035 import com.liferay.portal.kernel.util.TimeZoneUtil;
036 import com.liferay.portal.log.Log4jLogFactoryImpl;
037 import com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter;
038 import com.liferay.portal.security.lang.DoPrivilegedUtil;
039 import com.liferay.portal.security.lang.SecurityManagerUtil;
040 import com.liferay.portal.spring.util.SpringUtil;
041 import com.liferay.util.log4j.Log4JUtil;
042
043 import com.sun.syndication.io.XmlReader;
044
045 import java.util.List;
046
047 import org.apache.commons.lang.time.StopWatch;
048
049
052 public class InitUtil {
053
054 public static synchronized void init() {
055 if (_initialized) {
056 return;
057 }
058
059 StopWatch stopWatch = new StopWatch();
060
061 stopWatch.start();
062
063
064
065
066 String userLanguage = SystemProperties.get("user.language");
067 String userCountry = SystemProperties.get("user.country");
068 String userVariant = SystemProperties.get("user.variant");
069
070 LocaleUtil.setDefault(userLanguage, userCountry, userVariant);
071
072
073
074
075 String userTimeZone = SystemProperties.get("user.timezone");
076
077 TimeZoneUtil.setDefault(userTimeZone);
078
079
080
081 try {
082 PortalClassLoaderUtil.setClassLoader(
083 ClassLoaderUtil.getContextClassLoader());
084 }
085 catch (Exception e) {
086 e.printStackTrace();
087 }
088
089
090
091 com.liferay.portal.kernel.util.PropsUtil.setProps(new PropsImpl());
092
093
094
095 if (GetterUtil.getBoolean(
096 SystemProperties.get("log4j.configure.on.startup"), true)) {
097
098 ClassLoader classLoader = InitUtil.class.getClassLoader();
099
100 Log4JUtil.configureLog4J(classLoader);
101 }
102
103
104
105 try {
106 LogFactoryUtil.setLogFactory(new Log4jLogFactoryImpl());
107 }
108 catch (Exception e) {
109 e.printStackTrace();
110 }
111
112
113
114 SanitizerLogWrapper.init();
115
116
117
118 JavaDetector.isJDK5();
119
120
121
122 SecurityManagerUtil.init();
123
124 if (SecurityManagerUtil.ENABLED) {
125 com.liferay.portal.kernel.util.PropsUtil.setProps(
126 DoPrivilegedUtil.wrap(
127 com.liferay.portal.kernel.util.PropsUtil.getProps()));
128
129 LogFactoryUtil.setLogFactory(
130 DoPrivilegedUtil.wrap(LogFactoryUtil.getLogFactory()));
131 }
132
133
134
135 CacheRegistryUtil.setCacheRegistry(
136 DoPrivilegedUtil.wrap(new CacheRegistryImpl()));
137
138
139
140 ConfigurationFactoryUtil.setConfigurationFactory(
141 DoPrivilegedUtil.wrap(new ConfigurationFactoryImpl()));
142
143
144
145 DataSourceFactoryUtil.setDataSourceFactory(
146 DoPrivilegedUtil.wrap(new DataSourceFactoryImpl()));
147
148
149
150 DBFactoryUtil.setDBFactory(DoPrivilegedUtil.wrap(new DBFactoryImpl()));
151
152
153
154 XmlReader.setDefaultEncoding(StringPool.UTF8);
155
156 if (_PRINT_TIME) {
157 System.out.println(
158 "InitAction takes " + stopWatch.getTime() + " ms");
159 }
160
161 _initialized = true;
162 }
163
164 public synchronized static void initWithSpring() {
165 initWithSpring(false, null);
166 }
167
168 public synchronized static void initWithSpring(boolean force) {
169 initWithSpring(force, null);
170 }
171
172 public synchronized static void initWithSpring(
173 boolean force, List<String> extraConfigLocations) {
174
175 if (force) {
176 _initialized = false;
177 }
178
179 if (_initialized) {
180 return;
181 }
182
183 if (!_neverInitialized) {
184 PropsUtil.reload();
185 }
186 else {
187 _neverInitialized = false;
188 }
189
190 init();
191
192 SpringUtil.loadContext(extraConfigLocations);
193
194 _initialized = true;
195 }
196
197 public synchronized static void initWithSpring(
198 List<String> extraConfigLocations) {
199
200 initWithSpring(false, extraConfigLocations);
201 }
202
203 public synchronized static void initWithSpringAndModuleFramework() {
204 initWithSpringAndModuleFramework(false, null);
205 }
206
207 public synchronized static void initWithSpringAndModuleFramework(
208 boolean force, List<String> configLocations) {
209
210 initWithSpringAndModuleFramework(force, configLocations, true);
211 }
212
213 public synchronized static void initWithSpringAndModuleFramework(
214 boolean force, List<String> configLocations,
215 boolean addDefaultConfigLocations) {
216
217 if (force) {
218 _initialized = false;
219 }
220
221 if (_initialized) {
222 return;
223 }
224
225 if (!_neverInitialized) {
226 PropsUtil.reload();
227 }
228 else {
229 _neverInitialized = false;
230 }
231
232 try {
233 PropsValues.LIFERAY_WEB_PORTAL_CONTEXT_TEMPDIR = System.getProperty(
234 SystemProperties.TMP_DIR);
235
236 init();
237
238 ModuleFrameworkUtilAdapter.startFramework();
239
240 if (addDefaultConfigLocations) {
241 SpringUtil.loadContext(configLocations);
242 }
243 else {
244 SpringUtil.loadContext(
245 configLocations.toArray(
246 new String[configLocations.size()]));
247 }
248
249 BeanLocatorImpl beanLocatorImpl =
250 (BeanLocatorImpl)PortalBeanLocatorUtil.getBeanLocator();
251
252 ModuleFrameworkUtilAdapter.registerContext(
253 beanLocatorImpl.getApplicationContext());
254
255 ModuleFrameworkUtilAdapter.startRuntime();
256 }
257 catch (Exception e) {
258 throw new RuntimeException(e);
259 }
260
261 _initialized = true;
262 }
263
264 public synchronized static void initWithSpringAndModuleFramework(
265 List<String> configLocations) {
266
267 initWithSpringAndModuleFramework(false, configLocations);
268 }
269
270 public synchronized static void stopModuleFramework() {
271 try {
272 ModuleFrameworkUtilAdapter.stopFramework();
273 }
274 catch (Exception e) {
275 new RuntimeException(e);
276 }
277 }
278
279 private static final boolean _PRINT_TIME = false;
280
281 private static boolean _initialized;
282 private static boolean _neverInitialized = true;
283
284 }