opencmscore.java
来自「找了很久才找到到源代码」· Java 代码 · 共 1,617 行 · 第 1/5 页
JAVA
1,617 行
CmsMemoryMonitorConfiguration memoryMonitorConfiguration = systemConfiguration.getCmsMemoryMonitorConfiguration();
// initialize the memory monitor
try {
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(memoryMonitorConfiguration.getClassName())) {
m_memoryMonitor = (CmsMemoryMonitor)Class.forName(memoryMonitorConfiguration.getClassName()).newInstance();
} else {
m_memoryMonitor = new CmsMemoryMonitor();
}
} catch (Exception e) {
// we can not start without a valid memory monitor
throw new CmsInitException(Messages.get().container(
Messages.ERR_CRITICAL_INIT_MEMORY_MONITOR_1,
memoryMonitorConfiguration.getClassName()), e);
}
m_memoryMonitor.initialize(systemConfiguration);
// get the event manager from the configuration and initialize it with the events already registered
CmsEventManager configuredEventManager = systemConfiguration.getEventManager();
configuredEventManager.initialize(m_eventManager);
m_eventManager = configuredEventManager;
// check if the encoding setting is valid
String setEncoding = systemConfiguration.getDefaultContentEncoding();
String defaultEncoding = CmsEncoder.lookupEncoding(setEncoding, null);
if (defaultEncoding == null) {
// we can not start without a valid encoding setting
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_ENCODING_1, setEncoding));
}
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_OPENCMS_ENCODING_1, defaultEncoding));
}
getSystemInfo().setDefaultEncoding(defaultEncoding);
// set version history information
getSystemInfo().setVersionHistorySettings(
systemConfiguration.isHistoryEnabled(),
systemConfiguration.getHistoryVersions(),
systemConfiguration.getHistoryVersionsAfterDeletion());
// set mail configuration
getSystemInfo().setMailSettings(systemConfiguration.getMailSettings());
// set HTTP authentication settings
getSystemInfo().setHttpAuthenticationSettings(systemConfiguration.getHttpAuthenticationSettings());
// set content notification settings
getSystemInfo().setNotificationTime(systemConfiguration.getNotificationTime());
getSystemInfo().setNotificationProject(systemConfiguration.getNotificationProject());
// set the scheduler manager
m_scheduleManager = systemConfiguration.getScheduleManager();
// set resource init classes
m_resourceInitHandlers = systemConfiguration.getResourceInitHandlers();
// register request handler classes
Iterator it = systemConfiguration.getRequestHandlers().iterator();
while (it.hasNext()) {
I_CmsRequestHandler handler = (I_CmsRequestHandler)it.next();
addRequestHandler(handler);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.warn(Messages.get().getBundle().key(
Messages.INIT_REQUEST_HANDLER_CLASS_1,
handler.getClass().getName()));
}
}
// read the default user configuration
m_defaultUsers = systemConfiguration.getCmsDefaultUsers();
// get the site manager from the configuration
m_siteManager = systemConfiguration.getSiteManager();
// get the VFS / resource configuration
CmsVfsConfiguration vfsConfiguation = (CmsVfsConfiguration)m_configurationManager.getConfiguration(CmsVfsConfiguration.class);
m_resourceManager = vfsConfiguation.getResourceManager();
m_xmlContentTypeManager = vfsConfiguation.getXmlContentTypeManager();
m_defaultFiles = vfsConfiguation.getDefaultFiles();
// initialize translation engines
m_resourceManager.setTranslators(vfsConfiguation.getFolderTranslator(), vfsConfiguation.getFileTranslator());
// try to initialize the flex cache
CmsFlexCache flexCache = null;
try {
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_FLEX_CACHE_STARTING_0));
}
// get the flex cache configuration from the SystemConfiguration
CmsFlexCacheConfiguration flexCacheConfiguration = systemConfiguration.getCmsFlexCacheConfiguration();
// pass configuration to flex cache for initialization
flexCache = new CmsFlexCache(flexCacheConfiguration);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_FLEX_CACHE_FINISHED_0));
}
} catch (Exception e) {
if (CmsLog.INIT.isWarnEnabled()) {
CmsLog.INIT.warn(Messages.get().getBundle().key(Messages.INIT_FLEX_CACHE_ERROR_1, e.getMessage()));
}
}
if (flexCache != null) {
// check all reasource loaders if they require the Flex cache
Iterator i = m_resourceManager.getLoaders().iterator();
while (i.hasNext()) {
Object o = i.next();
if (o instanceof I_CmsFlexCacheEnabledLoader) {
// this resource loader requires the Flex cache
((I_CmsFlexCacheEnabledLoader)o).setFlexCache(flexCache);
}
}
}
// get the import/export configuration
CmsImportExportConfiguration importExportConfiguration = (CmsImportExportConfiguration)m_configurationManager.getConfiguration(CmsImportExportConfiguration.class);
m_importExportManager = importExportConfiguration.getImportExportManager();
m_staticExportManager = importExportConfiguration.getStaticExportManager();
m_repositoryManager = importExportConfiguration.getRepositoryManager();
// get the search configuration
CmsSearchConfiguration searchConfiguration = (CmsSearchConfiguration)m_configurationManager.getConfiguration(CmsSearchConfiguration.class);
m_searchManager = searchConfiguration.getSearchManager();
// get the workplace configuration
CmsWorkplaceConfiguration workplaceConfiguration = (CmsWorkplaceConfiguration)m_configurationManager.getConfiguration(CmsWorkplaceConfiguration.class);
m_workplaceManager = workplaceConfiguration.getWorkplaceManager();
// add the export points from the workplace
addExportPoints(m_workplaceManager.getExportPoints());
// get the module configuration
CmsModuleConfiguration moduleConfiguration = (CmsModuleConfiguration)m_configurationManager.getConfiguration(CmsModuleConfiguration.class);
m_moduleManager = moduleConfiguration.getModuleManager();
// get the password handler
m_passwordHandler = systemConfiguration.getPasswordHandler();
// get the validation handler
m_validationHandler = systemConfiguration.getValidationHandler();
// get the authorization handler
m_authorizationHandler = systemConfiguration.getAuthorizationHandler();
// get the login manager
m_loginManager = systemConfiguration.getLoginManager();
// initialize the publish engine
m_publishEngine = new CmsPublishEngine(systemConfiguration.getRuntimeInfoFactory());
// init the OpenCms security manager
m_securityManager = CmsSecurityManager.newInstance(
m_configurationManager,
systemConfiguration.getRuntimeInfoFactory(),
m_publishEngine);
// get the publish manager
m_publishManager = systemConfiguration.getPublishManager();
// initialize the role manager
m_roleManager = new CmsRoleManager(m_securityManager);
// initialize the organizational unit manager
m_orgUnitManager = new CmsOrgUnitManager(m_securityManager);
// initialize the Thread store
m_threadStore = new CmsThreadStore(m_securityManager);
// initialize the link manager
m_linkManager = new CmsLinkManager(m_staticExportManager.getLinkSubstitutionHandler());
// store the runtime properties
m_runtimeProperties.putAll(systemConfiguration.getRuntimeProperties());
// initialize the session storage provider
I_CmsSessionStorageProvider sessionStorageProvider = systemConfiguration.getSessionStorageProvider();
// get an Admin cms context object with site root set to "/"
CmsObject adminCms;
try {
adminCms = initCmsObject(null, null, getDefaultUsers().getUserAdmin(), (String)null, (String)null);
} catch (CmsException e) {
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_ADMINCMS_0), e);
}
// now initialize the managers
try {
// initialize the scheduler
m_scheduleManager.initialize(initCmsObject(adminCms));
// initialize the locale manager
m_localeManager = systemConfiguration.getLocaleManager();
m_localeManager.initialize(initCmsObject(adminCms));
// initialize the site manager
m_siteManager.initialize(initCmsObject(adminCms));
// initialize the static export manager
m_staticExportManager.initialize(initCmsObject(adminCms));
// initialize the XML content type manager
m_xmlContentTypeManager.initialize(initCmsObject(adminCms));
// initialize the publish manager
m_publishManager.setPublishEngine(m_publishEngine);
m_publishManager.setSecurityManager(m_securityManager);
m_publishManager.initialize(initCmsObject(adminCms));
// initialize the module manager
m_moduleManager.initialize(initCmsObject(adminCms), m_configurationManager);
// initialize the resource manager
m_resourceManager.initialize(initCmsObject(adminCms));
// initialize the search manager
m_searchManager.initialize(initCmsObject(adminCms));
// initialize the workplace manager
m_workplaceManager.initialize(initCmsObject(adminCms));
// initialize the session manager
m_sessionManager.initialize(sessionStorageProvider);
// everything is initialized, now start publishing
m_publishManager.startPublishing();
} catch (CmsException e) {
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_MANAGERS_0), e);
}
}
/**
* Initialization of the OpenCms runtime environment.<p>
*
* The connection information for the database is read
* from the <code>opencms.properties</code> configuration file and all
* driver manager are initialized via the initalizer,
* which usually will be an instance of a <code>OpenCms</code> class.
*
* @param context configuration of OpenCms from <code>web.xml</code>
* @throws CmsInitException in case OpenCms can not be initialized
*/
protected synchronized void initContext(ServletContext context) throws CmsInitException {
// read the the OpenCms servlet mapping from the servlet context parameters
String servletMapping = context.getInitParameter(OpenCmsServlet.SERVLET_PARAM_OPEN_CMS_SERVLET);
if (servletMapping == null) {
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_SERVLET_0));
}
// check for OpenCms home (base) directory path
String webInfPath = context.getInitParameter(OpenCmsServlet.SERVLET_PARAM_OPEN_CMS_HOME);
if (CmsStringUtil.isEmpty(webInfPath)) {
webInfPath = CmsFileUtil.searchWebInfFolder(context.getRealPath("/"));
if (CmsStringUtil.isEmpty(webInfPath)) {
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_FOLDER_0));
}
}
// read the the default context name from the servlet context parameters
String defaultWebApplication = context.getInitParameter("DefaultWebApplication");
if (defaultWebApplication == null) {
// not set in web.xml, so we use "ROOT" which should usually work since it is the (de-facto) standard
defaultWebApplication = "ROOT";
}
// read the the webapp context name from the servlet context parameters
// this is needed in case an application server specific deployment descriptor is used to changed the webapp context
String webApplicationContext = context.getInitParameter(OpenCmsServlet.SERVLET_PARAM_WEB_APPLICATION_CONTEXT);
// now initialize the system info with the path and mapping information
getSystemInfo().init(webInfPath, servletMapping, webApplicationContext, defaultWebApplication);
// Collect the configurations
ExtendedProperties configuration;
try {
configuration = CmsPropertyUtils.loadProperties(getSystemInfo().getConfigurationFileRfsPath());
} catch (Exception e) {
throw new CmsInitException(Messages.get().container(
Messages.ERR_CRITICAL_INIT_PROPFILE_1,
getSystemInfo().getConfigurationFileRfsPath()), e);
}
// check if the wizard is enabled, if so stop initialization
if (configuration.getBoolean("wizard.enabled", true)) {
throw new CmsInitException(Messages.get().container(Messages.ERR_CRITICAL_INIT_WIZARD_0));
}
// output startup message and copyright to STDERR
System.err.println(Messages.get().getBundle().key(
Messages.LOG_STARTUP_CONSOLE_NOTE_2,
OpenCms.getSystemInfo().getVersionNumber(),
getSystemInfo().getWebApplicationName()));
for (int i = 0; i < Messages.COPYRIGHT_BY_ALKACON.length; i++) {
System.err.println(Messages.COPYRIGHT_BY_ALKACON[i]);
}
System.err.println();
// output startup message to log file
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DOT_0));
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DOT_0));
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DOT_0));
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DOT_0));
for (int i = 0; i < Messages.COPYRIGHT_BY_ALKACON.length; i++) {
CmsLog.INIT.info(". " + Messages.COPYRIGHT_BY_ALKACON[i]);
}
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_LINE_0));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_STARTUP_TIME_1,
new Date(System.currentTimeMillis())));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_OPENCMS_VERSION_1,
OpenCms.getSystemInfo().getVersionNumber()));
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_SERVLET_CONTAINER_1, context.getServerInfo()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_WEBAPP_NAME_1,
getSystemInfo().getWebApplicationName()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_SERVLET_PATH_1,
getSystemInfo().getServletPath()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_OPENCMS_CONTEXT_1,
getSystemInfo().getOpenCmsContext()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_WEBINF_PATH_1,
getSystemInfo().getWebInfRfsPath()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_PROPERTY_FILE_1,
getSystemInfo().getConfigurationFileRfsPath()));
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_LOG_FILE_1,
getSystemInfo().getLogFileRfsPath()));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?