com.opencms.core
Class OpenCms

java.lang.Object
  |
  +--com.opencms.core.A_OpenCms
        |
        +--com.opencms.core.OpenCms
All Implemented Interfaces:
I_CmsConstants, I_CmsLogChannels

public class OpenCms
extends A_OpenCms
implements I_CmsConstants, I_CmsLogChannels

This class is the main class of the OpenCms system, think of it as the "operating system" of OpenCms.

Any request to an OpenCms resource will be processed by this class first. The class will try to map the request to a VFS (Virtual File System) resource, i.e. an URI. If the resource is found, it will be read anf forwarded to to a launcher, which is performs the output of the requested resource.

The OpenCms class is independent of access module to the OpenCms (e.g. Servlet, Command Shell), therefore this class is not responsible for user authentification. This is done by the access module to the OpenCms.

There will be only one instance of the OpenCms object created for any accessing class. This means that in the default configuration, where OpenCms is accessed through a servlet, there will be only one instance of this class running at a time.

Version:
$Revision: 1.124.2.1 $ $Date: 2004/01/06 12:45:53 $
Author:
Michael Emmerich, Alexander Lucas, Alexander Kandzior (a.kandzior@alkacon.com)
See Also:
A_OpenCms, OpenCmsHttpServlet, CmsObject

Field Summary
 
Fields inherited from class com.opencms.core.A_OpenCms
m_resourceBroker
 
Fields inherited from interface com.opencms.core.I_CmsConstants
C_ACCESS_DEFAULT_FLAGS, C_ACCESS_GROUP, C_ACCESS_GROUP_READ, C_ACCESS_GROUP_VISIBLE, C_ACCESS_GROUP_WRITE, C_ACCESS_INTERNAL_READ, C_ACCESS_OWNER, C_ACCESS_OWNER_READ, C_ACCESS_OWNER_VISIBLE, C_ACCESS_OWNER_WRITE, C_ACCESS_PUBLIC, C_ACCESS_PUBLIC_READ, C_ACCESS_PUBLIC_VISIBLE, C_ACCESS_PUBLIC_WRITE, C_ACCESS_READ, C_ACCESS_VISIBLE, C_ACCESS_WRITE, C_ADDITIONAL_INFO_EXPLORERSETTINGS, C_ADDITIONAL_INFO_PREFERENCES, C_ADDITIONAL_INFO_STARTSETTINGS, C_ADDITIONAL_INFO_TASKSETTINGS, C_ADDITIONAL_INFO_TOWN, C_ADDITIONAL_INFO_ZIPCODE, C_AT_LEAST_ONCE, C_CLUSTERURL, C_CONFIGURATION_CACHE, C_CONFIGURATION_CLASS, C_CONFIGURATION_REGISTRY, C_CONFIGURATION_RESOURCEBROKER, C_COPYRIGHT, C_DEFAULT_SITE, C_DELETE_HISTORY, C_ENABLE_HISTORY, C_ERRPREFIX, C_ERRSPERATOR, C_EXPORT_TAG_ACCESS, C_EXPORT_TAG_ADDRESS, C_EXPORT_TAG_CREATOR, C_EXPORT_TAG_DATE, C_EXPORT_TAG_DEFAULTGROUP, C_EXPORT_TAG_DESCRIPTION, C_EXPORT_TAG_DESTINATION, C_EXPORT_TAG_EMAIL, C_EXPORT_TAG_EXPORT, C_EXPORT_TAG_FILE, C_EXPORT_TAG_FIRSTNAME, C_EXPORT_TAG_FLAGS, C_EXPORT_TAG_GROUP, C_EXPORT_TAG_GROUPDATA, C_EXPORT_TAG_GROUPNAME, C_EXPORT_TAG_INFO, C_EXPORT_TAG_LASTMODIFIED, C_EXPORT_TAG_LASTNAME, C_EXPORT_TAG_LAUNCHER_START_CLASS, C_EXPORT_TAG_MODULEXPORT, C_EXPORT_TAG_NAME, C_EXPORT_TAG_OC_VERSION, C_EXPORT_TAG_PARENTGROUP, C_EXPORT_TAG_PASSWORD, C_EXPORT_TAG_PROJECT, C_EXPORT_TAG_PROPERTIES, C_EXPORT_TAG_PROPERTY, C_EXPORT_TAG_RECOVERYPASSWORD, C_EXPORT_TAG_SECTION, C_EXPORT_TAG_SOURCE, C_EXPORT_TAG_TYPE, C_EXPORT_TAG_USER, C_EXPORT_TAG_USERDATA, C_EXPORT_TAG_USERGROUPDATA, C_EXPORT_TAG_USERGROUPS, C_EXPORT_TAG_USERINFO, C_EXPORT_TAG_VALUE, C_EXPORT_TAG_VERSION, C_EXPORT_VERSION, C_EXPORT_XMLFILENAME, C_EXPORTONLYFILES, C_EXPORTONLYUSERS, C_EXPORTPOINT, C_EXPORTPOINT_PATH, C_EXPORTUSERSFILES, C_FCONTENT, C_FELEMENT, C_FILE, C_FILECONTENT, C_FILES_IMPORTED, C_FLAG_DISABLED, C_FLAG_ENABLED, C_FLAG_GROUP_PROJECTCOWORKER, C_FLAG_GROUP_PROJECTMANAGER, C_FLAG_GROUP_ROLE, C_FOLDER, C_FOLDER_SEPARATOR, C_GROUP, C_GROUP_ADMIN, C_GROUP_GUEST, C_GROUP_PROJECTLEADER, C_GROUP_USERS, C_LINKCHECKTABLE_DATE, C_MAX_LENGTH_RESOURCE_NAME, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES_SEPARATOR, C_MODUS_AUTO, C_MODUS_EXPORT, C_MODUS_EXTERN, C_MODUS_OFFLINE, C_MODUS_ONLINE, C_MOUNTPOINT_FILESYSTEM, C_MOUNTPOINT_MYSQL, C_NEVER, C_NO_FILES_IMPORTED, C_ORDER_AGENTUSER, C_ORDER_ENDTIME, C_ORDER_ID, C_ORDER_INITIATORUSER, C_ORDER_NAME, C_ORDER_ORIGINALUSER, C_ORDER_PERCENTAGE, C_ORDER_PRIORITY, C_ORDER_ROLE, C_ORDER_STARTTIME, C_ORDER_STATE, C_ORDER_TASKTYPE, C_ORDER_TIMEOUT, C_ORDER_WAKEUPTIME, C_PASSWORD_MINIMUMSIZE, C_PROJECT_ONLINE, C_PROJECT_ONLINE_ID, C_PROJECT_STATE_ARCHIVE, C_PROJECT_STATE_INVISIBLE, C_PROJECT_STATE_LOCKED, C_PROJECT_STATE_UNLOCKED, C_PROJECT_TYPE_INVISIBLE, C_PROJECT_TYPE_NORMAL, C_PROJECT_TYPE_TEMPORARY, C_PROPERTY_ACTIV, C_PROPERTY_CHANNELID, C_PROPERTY_CONTENT_ENCODING, C_PROPERTY_DEFAULT_FILE, C_PROPERTY_DESCRIPTION, C_PROPERTY_EXPORT, C_PROPERTY_EXPORTNAME, C_PROPERTY_KEYWORDS, C_PROPERTY_NAVPOS, C_PROPERTY_NAVTEXT, C_PROPERTY_RELATIVEROOT, C_PROPERTY_TEMPLATETYPE, C_PROPERTY_TITLE, C_PROPERTY_VISIBLE, C_PUBLISH_METHOD_LINK, C_REGISTRY_DESTINATION, C_REGISTRY_HISTORY, C_REGISTRY_KNOWNLAUNCHERS, C_REGISTRY_LAUNCHER, C_REGISTRY_SOURCE, C_REQUEST_CONSOLE, C_REQUEST_HTTP, C_RESPONSE_CONSOLE, C_RESPONSE_HTTP, C_ROOT, C_ROOT_TEMPLATE_NAME, C_ROOTNAME_COS, C_ROOTNAME_VFS, C_SESSION_ADMIN_POS, C_SESSION_BROADCASTMESSAGE, C_SESSION_CONTENT_ENCODING, C_SESSION_CURRENTGROUP, C_SESSION_DATA, C_SESSION_IS_DIRTY, C_SESSION_MESSAGEPENDING, C_SESSION_MODULE_VECTOR, C_SESSION_PROJECT, C_SESSION_THREAD_ERROR, C_SESSION_USERNAME, C_SORT_ASC, C_SORT_DESC, C_START_ACCESSFLAGS, C_START_DEFAULTGROUP, C_START_LANGUAGE, C_START_LOCKDIALOG, C_START_PROJECT, C_START_VIEW, C_STATE_CHANGED, C_STATE_DELETED, C_STATE_NEW, C_STATE_UNCHANGED, C_STATICEXPORT_PATH, C_STATICEXPORT_START, C_SYNCHRONISATION_PATH, C_SYNCHRONISATION_PROJECT, C_SYNCHRONISATION_RESOURCE, C_SYNCHRONISATION_RESOURCETAG, C_SYSTEMPROPERTY_CRONTABLE, C_SYSTEMPROPERTY_EXPORTPATH, C_SYSTEMPROPERTY_EXTENSIONS, C_SYSTEMPROPERTY_LINKCHECKTABLE, C_SYSTEMPROPERTY_MIMETYPES, C_SYSTEMPROPERTY_MOUNTPOINT, C_SYSTEMPROPERTY_RESOURCE_TYPE, C_TABLE_CHANNELID, C_TASK_FILTER, C_TASK_MESSAGES, C_TASK_MESSAGES_ACCEPTED, C_TASK_MESSAGES_COMPLETED, C_TASK_MESSAGES_FORWARDED, C_TASK_MESSAGES_MEMBERS, C_TASK_ORDER_BY_DATE, C_TASK_ORDER_BY_NAME, C_TASK_PRIORITY_HIGH, C_TASK_PRIORITY_LOW, C_TASK_PRIORITY_NORMAL, C_TASK_STATE_ENDED, C_TASK_STATE_HALTED, C_TASK_STATE_NOTENDED, C_TASK_STATE_PREPARE, C_TASK_STATE_START, C_TASK_STATE_STARTED, C_TASK_VIEW_ALL, C_TASKLOG_SYSTEM, C_TASKLOG_USER, C_TASKORDER_NONE, C_TASKORDER_STARTDATE, C_TASKORDER_TIMEOUT, C_TASKS_ACTIVE, C_TASKS_ALL, C_TASKS_DONE, C_TASKS_NEW, C_TASKS_OPEN, C_TASKSORDER_TASKNAME, C_TEMP_PREFIX, C_TFACCESS, C_TFGROUP, C_TFILEOBJ, C_TFILES, C_TFNAME, C_TFPROPERTYINFO, C_TFPROPERTYNAME, C_TFPROPERTYTYPE, C_TFPROPERTYVALUE, C_TFTYPE, C_TFTYPENAME, C_TFUSER, C_TGDESC, C_TGFLAG, C_TGNAME, C_TGPARENTGROUP, C_TGROUPOBJ, C_TGROUPS, C_TGROUPUSERS, C_TGUSER, C_TUADDINFO, C_TUDESC, C_TUDGROUP, C_TUDISABLED, C_TUEMAIL, C_TUFIRSTNAME, C_TUFLAG, C_TUGROUP, C_TUINFOKEY, C_TUINFOVALUE, C_TULOGIN, C_TUNAME, C_TUPASSWD, C_TUSERGROUPS, C_TUSEROBJ, C_TUSERS, C_TYPE_BODY_NAME, C_TYPE_COMPATIBLEPLAIN_NAME, C_TYPE_FOLDER, C_TYPE_FOLDER_NAME, C_TYPE_IMAGE_NAME, C_TYPE_LAST_INDEX, C_TYPE_PAGE_NAME, C_TYPE_PLAIN_NAME, C_UNKNOWN_ID, C_UNKNOWN_INT, C_UNKNOWN_LAUNCHER, C_UNKNOWN_LAUNCHER_ID, C_UNKNOWN_LONG, C_URL_PREFIX_EXPORT, C_URL_PREFIX_HTTP, C_URL_PREFIX_HTTPS, C_URL_PREFIX_SERVERNAME, C_USER, C_USER_ADMIN, C_USER_GUEST, C_USER_TYPE_SYSTEMANDWEBUSER, C_USER_TYPE_SYSTEMUSER, C_USER_TYPE_WEBUSER, C_WEB_APP_REPLACE_KEY, C_WEEKS_HISTORY, C_WHATEVER, C_XML_BODY_ELEMENT
 
Fields inherited from interface com.opencms.boot.I_CmsLogChannels
C_FLEX_CACHE, C_FLEX_LOADER, C_LOGGING, C_MODULE_CRITICAL, C_MODULE_DEBUG, C_MODULE_INFO, C_OPENCMS_CACHE, C_OPENCMS_CRITICAL, C_OPENCMS_CRONSCHEDULER, C_OPENCMS_DEBUG, C_OPENCMS_ELEMENTCACHE, C_OPENCMS_INFO, C_OPENCMS_INIT, C_OPENCMS_POOL, C_OPENCMS_STATICEXPORT, C_OPENCMS_STREAMING, C_PREPROCESSOR_IS_LOGGING
 
Constructor Summary
OpenCms(source.org.apache.java.util.Configurations conf)
          Constructor to create a new OpenCms object.
 
Method Summary
 void destroy()
          Destructor, called when the the servlet is shut down.
 CmsResourceTranslator getFileTranslator()
          Returns the file name translator this OpenCms has read from the opencms.properties.
 CmsLauncherManager getLauncherManager()
          Returns the launcher manager used.
static CmsElementCache getOnlineElementCache()
          Returns the ElementCache used for the online project.
static String getPasswordValidatingClass()
          Returns the Class that is used for the password validation.
static CmsStaticExportProperties getStaticExportProperties()
          Returns the properties for the static export.
static Hashtable getVariantDependencies()
          Returns the hashtable with the variant dependencies used for the elementcache.
 void initUser(CmsObject cms, I_CmsRequest cmsReq, I_CmsResponse cmsRes, String user, String group, int project, CmsCoreSession sessionStorage)
          Inits a user and updates the given CmsObject withs this users information.
 void showResource(CmsObject cms, CmsFile file)
          Selects the appropriate launcher for a given file by analyzing the file's launcher id and calls the initlaunch() method to initiate the generating of the output.
 
Methods inherited from class com.opencms.core.A_OpenCms
addCmsEventListener, fireCmsEvent, fireCmsEvent, getConfiguration, getDefaultEncoding, getLogFileName, getOpenCmsContext, getRegistry, getRuntimeProperty, getRuntimePropertyMap, getUserDefaultAccessFlags, getUserDefaultLanguage, getVersionName, getVersionNumber, initializeServletLogging, isLogging, isLogging, log, removeCmsEventListener, setConfiguration, setDefaultEncoding, setOpenCmsContext, setRuntimeProperty, setUserDefaultAccessFlags, setUserDefaultLanguage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpenCms

public OpenCms(source.org.apache.java.util.Configurations conf)
        throws Exception
Constructor to create a new OpenCms object.

It reads the configurations from the opencms.properties file in the config/ subdirectory. With the information from this file is inits a ResourceBroker (Database access module), various caching systems and other options.

This will only be done once per accessing class.

Parameters:
conf - The configurations from the opencms.properties file.
Method Detail

destroy

public void destroy()
             throws CmsException
Destructor, called when the the servlet is shut down.

Overrides:
destroy in class A_OpenCms
Throws:
CmsException - If something goes wrong during shutdown.

getLauncherManager

public CmsLauncherManager getLauncherManager()
Returns the launcher manager used.

Returns:
The launcher manager used.

getOnlineElementCache

public static CmsElementCache getOnlineElementCache()
Returns the ElementCache used for the online project.

Returns:
The ElementCache used for the online project.

getPasswordValidatingClass

public static String getPasswordValidatingClass()
Returns the Class that is used for the password validation.

Returns:
The Class that is used for the password validation.

getStaticExportProperties

public static CmsStaticExportProperties getStaticExportProperties()
Returns the properties for the static export.

Returns:
The properties for the static export.

getVariantDependencies

public static Hashtable getVariantDependencies()
Returns the hashtable with the variant dependencies used for the elementcache.

Returns:
The hashtable with the variant dependencies used for the elementcache.

getFileTranslator

public CmsResourceTranslator getFileTranslator()
Returns the file name translator this OpenCms has read from the opencms.properties.

Returns:
The file name translator this OpenCms has read from the opencms.properties

initUser

public void initUser(CmsObject cms,
                     I_CmsRequest cmsReq,
                     I_CmsResponse cmsRes,
                     String user,
                     String group,
                     int project,
                     CmsCoreSession sessionStorage)
              throws CmsException
Inits a user and updates the given CmsObject withs this users information.

Parameters:
cms - The CmsObject to update
cmsReq - The current I_CmsRequest (usually initialized form the HttpServletRequest)
cmsRes - The current I_CmsResponse (usually initialized form the HttpServletResponse)
user - The name of the user to init
group - The name of the current group
project - The id of the current project
sessionStorage - The session storage for this OpenCms instance
CmsException

showResource

public void showResource(CmsObject cms,
                         CmsFile file)
                  throws CmsException
Selects the appropriate launcher for a given file by analyzing the file's launcher id and calls the initlaunch() method to initiate the generating of the output.

Specified by:
showResource in class A_OpenCms
Parameters:
cms - CmsObject containing all document and user information
file - CmsFile object representing the selected file.
Throws:
CmsException - In case of problems acessing the resource.