001
014
015 package com.liferay.portal.util;
016
017 import com.liferay.portal.cache.CacheRegistryImpl;
018 import com.liferay.portal.configuration.ConfigurationFactoryImpl;
019 import com.liferay.portal.dao.db.DBFactoryImpl;
020 import com.liferay.portal.dao.jdbc.DataSourceFactoryImpl;
021 import com.liferay.portal.kernel.cache.CacheRegistryUtil;
022 import com.liferay.portal.kernel.configuration.ConfigurationFactoryUtil;
023 import com.liferay.portal.kernel.dao.db.DBFactoryUtil;
024 import com.liferay.portal.kernel.dao.jdbc.DataSourceFactoryUtil;
025 import com.liferay.portal.kernel.log.LogFactoryUtil;
026 import com.liferay.portal.kernel.log.SanitizerLogWrapper;
027 import com.liferay.portal.kernel.util.GetterUtil;
028 import com.liferay.portal.kernel.util.JavaDetector;
029 import com.liferay.portal.kernel.util.LocaleUtil;
030 import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
031 import com.liferay.portal.kernel.util.StringPool;
032 import com.liferay.portal.kernel.util.SystemProperties;
033 import com.liferay.portal.kernel.util.TimeZoneUtil;
034 import com.liferay.portal.log.Log4jLogFactoryImpl;
035 import com.liferay.portal.security.lang.DoPrivilegedUtil;
036 import com.liferay.portal.security.lang.SecurityManagerUtil;
037 import com.liferay.portal.spring.util.SpringUtil;
038 import com.liferay.util.log4j.Log4JUtil;
039
040 import com.sun.syndication.io.XmlReader;
041
042 import java.util.List;
043
044 import org.apache.commons.lang.time.StopWatch;
045
046
049 public class InitUtil {
050
051 public static synchronized void init() {
052 if (_initialized) {
053 return;
054 }
055
056 StopWatch stopWatch = new StopWatch();
057
058 stopWatch.start();
059
060
061
062
063 String userLanguage = SystemProperties.get("user.language");
064 String userCountry = SystemProperties.get("user.country");
065 String userVariant = SystemProperties.get("user.variant");
066
067 LocaleUtil.setDefault(userLanguage, userCountry, userVariant);
068
069
070
071
072 String userTimeZone = SystemProperties.get("user.timezone");
073
074 TimeZoneUtil.setDefault(userTimeZone);
075
076
077
078 try {
079 PortalClassLoaderUtil.setClassLoader(
080 ClassLoaderUtil.getContextClassLoader());
081 }
082 catch (Exception e) {
083 e.printStackTrace();
084 }
085
086
087
088 com.liferay.portal.kernel.util.PropsUtil.setProps(new PropsImpl());
089
090
091
092 if (GetterUtil.getBoolean(
093 SystemProperties.get("log4j.configure.on.startup"), true)) {
094
095 ClassLoader classLoader = InitUtil.class.getClassLoader();
096
097 Log4JUtil.configureLog4J(classLoader);
098 }
099
100
101
102 try {
103 LogFactoryUtil.setLogFactory(new Log4jLogFactoryImpl());
104 }
105 catch (Exception e) {
106 e.printStackTrace();
107 }
108
109
110
111 SanitizerLogWrapper.init();
112
113
114
115 JavaDetector.isJDK5();
116
117
118
119 SecurityManagerUtil.init();
120
121 if (SecurityManagerUtil.ENABLED) {
122 com.liferay.portal.kernel.util.PropsUtil.setProps(
123 DoPrivilegedUtil.wrap(
124 com.liferay.portal.kernel.util.PropsUtil.getProps()));
125
126 LogFactoryUtil.setLogFactory(
127 DoPrivilegedUtil.wrap(LogFactoryUtil.getLogFactory()));
128 }
129
130
131
132 CacheRegistryUtil.setCacheRegistry(
133 DoPrivilegedUtil.wrap(new CacheRegistryImpl()));
134
135
136
137 ConfigurationFactoryUtil.setConfigurationFactory(
138 DoPrivilegedUtil.wrap(new ConfigurationFactoryImpl()));
139
140
141
142 DataSourceFactoryUtil.setDataSourceFactory(
143 DoPrivilegedUtil.wrap(new DataSourceFactoryImpl()));
144
145
146
147 DBFactoryUtil.setDBFactory(DoPrivilegedUtil.wrap(new DBFactoryImpl()));
148
149
150
151 XmlReader.setDefaultEncoding(StringPool.UTF8);
152
153 if (_PRINT_TIME) {
154 System.out.println(
155 "InitAction takes " + stopWatch.getTime() + " ms");
156 }
157
158 _initialized = true;
159 }
160
161 public synchronized static void initWithSpring() {
162 initWithSpring(false, null);
163 }
164
165 public synchronized static void initWithSpring(boolean force) {
166 initWithSpring(force, null);
167 }
168
169 public synchronized static void initWithSpring(
170 boolean force, List<String> extraConfigLocations) {
171
172 if (force) {
173 _initialized = false;
174 }
175
176 if (_initialized) {
177 return;
178 }
179
180 if (!_neverInitialized) {
181 PropsUtil.reload();
182 }
183 else {
184 _neverInitialized = false;
185 }
186
187 init();
188
189 SpringUtil.loadContext(extraConfigLocations);
190
191 _initialized = true;
192 }
193
194 public synchronized static void initWithSpring(
195 List<String> extraConfigLocations) {
196
197 initWithSpring(false, extraConfigLocations);
198 }
199
200 private static final boolean _PRINT_TIME = false;
201
202 private static boolean _initialized;
203 private static boolean _neverInitialized = true;
204
205 }