📄 opencms.java
字号:
/*
* File : $Source: /usr/local/cvs/opencms/src/org/opencms/main/OpenCms.java,v $
* Date : $Date: 2006/05/12 16:05:48 $
* Version: $Revision: 1.60 $
*
* This library is part of OpenCms -
* the Open Source Content Mananagement System
*
* Copyright (c) 2005 Alkacon Software GmbH (http://www.alkacon.com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* For further information about Alkacon Software GmbH, please see the
* company website: http://www.alkacon.com
*
* For further information about OpenCms, please see the
* project website: http://www.opencms.org
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.opencms.main;
import org.opencms.db.CmsDefaultUsers;
import org.opencms.db.CmsLoginManager;
import org.opencms.db.CmsSqlManager;
import org.opencms.file.CmsObject;
import org.opencms.file.CmsResource;
import org.opencms.i18n.CmsLocaleManager;
import org.opencms.importexport.CmsImportExportManager;
import org.opencms.loader.CmsResourceManager;
import org.opencms.lock.CmsLockManager;
import org.opencms.module.CmsModuleManager;
import org.opencms.monitor.CmsMemoryMonitor;
import org.opencms.scheduler.CmsScheduleManager;
import org.opencms.search.CmsSearchManager;
import org.opencms.security.CmsRole;
import org.opencms.security.I_CmsPasswordHandler;
import org.opencms.security.I_CmsValidationHandler;
import org.opencms.site.CmsSiteManager;
import org.opencms.staticexport.CmsLinkManager;
import org.opencms.staticexport.CmsStaticExportManager;
import org.opencms.workplace.CmsWorkplaceManager;
import org.opencms.xml.CmsXmlContentTypeManager;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
/**
* The OpenCms "operating system" that provides
* public static methods which can be used by other classes to access
* basic system features of OpenCms like logging etc.<p>
*
* This Object provides singleton access to the initialized OpenCms runtime system.
* Some methods are for internal or advanced use only, but others are of also of interest
* for general OpenCms development.<p>
*
* For example, to generate a new instance of <code>{@link org.opencms.file.CmsObject}</code> class in your application,
* use <code>{@link org.opencms.main.OpenCms#initCmsObject(String)}</code>. The argument String should be
* the name of the guest user, usually "Guest" and more formally obtained by <code>{@link org.opencms.db.CmsDefaultUsers#getUserGuest()}</code>.
* This will give you an initialized context with guest user permissions.
* Then use <code>{@link CmsObject#loginUser(String, String)}</code> to log in the user you want.
* Obviously you need the password for the new user.<p>
*
* Using <code>{@link #getSiteManager()}</code> you can obtain the initialized <code>{@link org.opencms.site.CmsSiteManager}</code>
* which provides information about the sites configured in the running OpenCms instance.<p>
*
* The <code>{@link org.opencms.db.CmsDefaultUsers}</code> instance returned by <code>{@link #getDefaultUsers()}</code>
* provides information about the names of the OpenCms default users.<p>
*
* Other objects of note that can be obtained by this class include the <code>{@link org.opencms.module.CmsModuleManager}</code>
* or the <code>{@link org.opencms.scheduler.CmsScheduleManager}</code>.<p>
*
* When using the instances returned by this object, keep in mind that applying changes to these may alter the basic OpenCms
* system configuration, which in turn may affect the systems performance or stability.<p>
*
* @author Alexander Kandzior
*
* @version $Revision: 1.60 $
*
* @since 6.0.0
*/
public final class OpenCms {
/** Runlevel 0: System is offline. */
public static final int RUNLEVEL_0_OFFLINE = 0;
/** Runlevel 1: Core object created, no database (some test cases run in this level). */
public static final int RUNLEVEL_1_CORE_OBJECT = 1;
/** Runlevel 2: Initializing the system, required since this may take some seconds because of database connections. */
public static final int RUNLEVEL_2_INITIALIZING = 2;
/** Runlevel 3: Shell access to the database possible, but no servlet context available. */
public static final int RUNLEVEL_3_SHELL_ACCESS = 3;
/** Runlevel 4: Final runlevel where database and servlet are initialized. */
public static final int RUNLEVEL_4_SERVLET_ACCESS = 4;
/**
* The public contructor is hidden to prevent generation of instances of this class.<p>
*/
private OpenCms() {
// empty
}
/**
* Add a cms event listener that listens to all events.<p>
*
* @param listener the listener to add
*/
public static void addCmsEventListener(I_CmsEventListener listener) {
OpenCmsCore.getInstance().getEventManager().addCmsEventListener(listener);
}
/**
* Add a cms event listener that listens only to particular events.<p>
*
* @param listener the listener to add
* @param eventTypes the events to listen for
*/
public static void addCmsEventListener(I_CmsEventListener listener, int[] eventTypes) {
OpenCmsCore.getInstance().getEventManager().addCmsEventListener(listener, eventTypes);
}
/**
* Notify all event listeners that a particular event has occurred.<p>
*
* @param event a CmsEvent
*/
public static void fireCmsEvent(CmsEvent event) {
OpenCmsCore.getInstance().getEventManager().fireEvent(event);
}
/**
* Notify all event listeners that a particular event has occurred.<p>
*
* The event will be given to all registered <code>{@link I_CmsEventListener}</code> objects.<p>
*
* @param type event type
* @param data event data
*/
public static void fireCmsEvent(int type, Map data) {
OpenCmsCore.getInstance().getEventManager().fireEvent(type, data);
}
/**
* Returns the configured list of default directory file names (instances of <code>{@link String}</code>).<p>
*
* Caution: This list can not be modified.<p>
*
* @return the configured list of default directory file names
*/
public static List getDefaultFiles() {
return OpenCmsCore.getInstance().getDefaultFiles();
}
/**
* Returns the default user and group name configuration.<p>
*
* @return the default user and group name configuration
*/
public static CmsDefaultUsers getDefaultUsers() {
return OpenCmsCore.getInstance().getDefaultUsers();
}
/**
* Returns the event manger that handles all OpenCms events.<p>
*
* @return the event manger that handles all OpenCms events
*/
public static CmsEventManager getEventManager() {
return OpenCmsCore.getInstance().getEventManager();
}
/**
* Returns the configured export points,
* the returned set being an unmodifiable set.<p>
*
* @return an unmodifiable set of the configured export points
*/
public static Set getExportPoints() {
return OpenCmsCore.getInstance().getExportPoints();
}
/**
* Returns the initialized import/export manager,
* which contains information about how to handle imported resources.<p>
*
* @return the initialized import/export manager
*/
public static CmsImportExportManager getImportExportManager() {
return OpenCmsCore.getInstance().getImportExportManager();
}
/**
* Returns the link manager to resolve links in <link> tags.<p>
*
* @return the link manager to resolve links in <link> tags
*/
public static CmsLinkManager getLinkManager() {
return OpenCmsCore.getInstance().getLinkManager();
}
/**
* Returns the locale manager used for obtaining the current locale.<p>
*
* @return the locale manager
*/
public static CmsLocaleManager getLocaleManager() {
return OpenCmsCore.getInstance().getLocaleManager();
}
/**
* Returns the lock manager used for the locking mechanism.<p>
*
* @return the lock manager used for the locking mechanism
*/
public static CmsLockManager getLockManager() {
return OpenCmsCore.getInstance().getLockManager();
}
/**
* Returns the log for the selected object.<p>
*
* If the provided object is a String, this String will
* be used as channel name. Otherwise the objects
* class name will be used as channel name.<p>
*
* @param obj the object channel to use
* @return the log for the selected object channel
*/
public static Log getLog(Object obj) {
return CmsLog.getLog(obj);
}
/**
* Returns the login manager used to check if a login is possible.<p>
*
* @return the login manager
*/
public static CmsLoginManager getLoginManager() {
return OpenCmsCore.getInstance().getLoginManager();
}
/**
* Returns the memory monitor.<p>
*
* @return the memory monitor
*/
public static CmsMemoryMonitor getMemoryMonitor() {
return OpenCmsCore.getInstance().getMemoryMonitor();
}
/**
* Returns the module manager.<p>
*
* @return the module manager
*/
public static CmsModuleManager getModuleManager() {
return OpenCmsCore.getInstance().getModuleManager();
}
/**
* Returns the password handler.<p>
*
* @return the password handler
*/
public static I_CmsPasswordHandler getPasswordHandler() {
return OpenCmsCore.getInstance().getPasswordHandler();
}
/**
* Returns the resource manager.<p>
*
* @return the resource manager
*/
public static CmsResourceManager getResourceManager() {
return OpenCmsCore.getInstance().getResourceManager();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -