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.ListUtil;
032 import com.liferay.portal.kernel.util.LocaleUtil;
033 import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
034 import com.liferay.portal.kernel.util.StringPool;
035 import com.liferay.portal.kernel.util.SystemProperties;
036 import com.liferay.portal.kernel.util.TimeZoneUtil;
037 import com.liferay.portal.log.Log4jLogFactoryImpl;
038 import com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter;
039 import com.liferay.portal.security.lang.DoPrivilegedUtil;
040 import com.liferay.portal.security.lang.SecurityManagerUtil;
041 import com.liferay.portal.spring.util.SpringUtil;
042 import com.liferay.util.log4j.Log4JUtil;
043
044 import com.sun.syndication.io.XmlReader;
045
046 import java.util.List;
047
048 import org.apache.commons.lang.time.StopWatch;
049
050
053 public class InitUtil {
054
055 public static synchronized void init() {
056 if (_initialized) {
057 return;
058 }
059
060 StopWatch stopWatch = new StopWatch();
061
062 stopWatch.start();
063
064
065
066
067 String userLanguage = SystemProperties.get("user.language");
068 String userCountry = SystemProperties.get("user.country");
069 String userVariant = SystemProperties.get("user.variant");
070
071 LocaleUtil.setDefault(userLanguage, userCountry, userVariant);
072
073
074
075
076 String userTimeZone = SystemProperties.get("user.timezone");
077
078 TimeZoneUtil.setDefault(userTimeZone);
079
080
081
082 try {
083 PortalClassLoaderUtil.setClassLoader(
084 ClassLoaderUtil.getContextClassLoader());
085 }
086 catch (Exception e) {
087 e.printStackTrace();
088 }
089
090
091
092 com.liferay.portal.kernel.util.PropsUtil.setProps(new PropsImpl());
093
094
095
096 if (GetterUtil.getBoolean(
097 SystemProperties.get("log4j.configure.on.startup"), true)) {
098
099 ClassLoader classLoader = InitUtil.class.getClassLoader();
100
101 Log4JUtil.configureLog4J(classLoader);
102 }
103
104
105
106 try {
107 LogFactoryUtil.setLogFactory(new Log4jLogFactoryImpl());
108 }
109 catch (Exception e) {
110 e.printStackTrace();
111 }
112
113
114
115 SanitizerLogWrapper.init();
116
117
118
119 JavaDetector.isJDK5();
120
121
122
123 SecurityManagerUtil.init();
124
125 if (SecurityManagerUtil.ENABLED) {
126 com.liferay.portal.kernel.util.PropsUtil.setProps(
127 DoPrivilegedUtil.wrap(
128 com.liferay.portal.kernel.util.PropsUtil.getProps()));
129
130 LogFactoryUtil.setLogFactory(
131 DoPrivilegedUtil.wrap(LogFactoryUtil.getLogFactory()));
132 }
133
134
135
136 CacheRegistryUtil.setCacheRegistry(
137 DoPrivilegedUtil.wrap(new CacheRegistryImpl()));
138
139
140
141 ConfigurationFactoryUtil.setConfigurationFactory(
142 DoPrivilegedUtil.wrap(new ConfigurationFactoryImpl()));
143
144
145
146 DataSourceFactoryUtil.setDataSourceFactory(
147 DoPrivilegedUtil.wrap(new DataSourceFactoryImpl()));
148
149
150
151 DBFactoryUtil.setDBFactory(DoPrivilegedUtil.wrap(new DBFactoryImpl()));
152
153
154
155 XmlReader.setDefaultEncoding(StringPool.UTF8);
156
157 if (_PRINT_TIME) {
158 System.out.println(
159 "InitAction takes " + stopWatch.getTime() + " ms");
160 }
161
162 _initialized = true;
163 }
164
165 public synchronized static void initWithSpring(
166 boolean initModuleFramework) {
167
168 List<String> configLocations = ListUtil.fromArray(
169 PropsUtil.getArray(
170 com.liferay.portal.kernel.util.PropsKeys.SPRING_CONFIGS));
171
172 initWithSpring(configLocations, initModuleFramework);
173 }
174
175 public synchronized static void initWithSpring(
176 List<String> configLocations, boolean initModuleFramework) {
177
178 if (_initialized) {
179 return;
180 }
181
182 if (!_neverInitialized) {
183 PropsUtil.reload();
184 }
185 else {
186 _neverInitialized = false;
187 }
188
189 init();
190
191 try {
192 if (initModuleFramework) {
193 PropsValues.LIFERAY_WEB_PORTAL_CONTEXT_TEMPDIR =
194 System.getProperty(SystemProperties.TMP_DIR);
195
196 ModuleFrameworkUtilAdapter.startFramework();
197 }
198
199 SpringUtil.loadContext(configLocations);
200
201 if (initModuleFramework) {
202 BeanLocatorImpl beanLocatorImpl =
203 (BeanLocatorImpl)PortalBeanLocatorUtil.getBeanLocator();
204
205 ModuleFrameworkUtilAdapter.registerContext(
206 beanLocatorImpl.getApplicationContext());
207
208 ModuleFrameworkUtilAdapter.startRuntime();
209 }
210 }
211 catch (Exception e) {
212 throw new RuntimeException(e);
213 }
214
215 _initialized = true;
216 }
217
218 public synchronized static void stopModuleFramework() {
219 try {
220 ModuleFrameworkUtilAdapter.stopFramework();
221 }
222 catch (Exception e) {
223 new RuntimeException(e);
224 }
225 }
226
227 private static final boolean _PRINT_TIME = false;
228
229 private static boolean _initialized;
230 private static boolean _neverInitialized = true;
231
232 }