Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.opencms.launcher
Class A_CmsLauncher  view A_CmsLauncher download A_CmsLauncher.java

java.lang.Object
  extended bycom.opencms.launcher.A_CmsLauncher
All Implemented Interfaces:
com.opencms.core.I_CmsConstants, I_CmsLauncher, com.opencms.boot.I_CmsLogChannels
Direct Known Subclasses:
CmsDumpLauncher, CmsJavascriptLauncher, CmsLinkLauncher, CmsXmlLauncher

abstract class A_CmsLauncher
extends java.lang.Object
implements I_CmsLauncher, com.opencms.boot.I_CmsLogChannels, com.opencms.core.I_CmsConstants

Abstract OpenCms launcher class.

This class implements basic functionality for all OpenCms launchers. For each relevant file type (e.g. XML control files, plain text files, JavaScript files,...) a customized launcher has to be implemented.

Every extending class has to implement the abstract methods

The functionality of this class is

Version:
$Revision: 1.41 $ $Date: 2003/02/26 10:30:36 $

Field Summary
private static boolean C_DEBUG
          Boolean for additional debug output control
private static long m_lastFsCounterFile
          Value of the filesystem counter, when the last XML file clear cache was done.
private static long m_lastFsCounterTemplate
          Value of the filesystem counter, when the last template clear cache was done.
protected static I_CmsTemplateCache m_templateCache
          The template cache that holds all cached templates
 
Fields inherited from interface com.opencms.launcher.I_CmsLauncher
C_TYPE_DUMP, C_TYPE_JAVASCRIPT, C_TYPE_JSP, C_TYPE_LINK, C_TYPE_PDF, C_TYPE_VELOCITY, C_TYPE_XML
 
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
 
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
 
Constructor Summary
(package private) A_CmsLauncher()
           
 
Method Summary
protected  byte[] callCanonicalRoot(com.opencms.file.CmsObject cms, com.opencms.template.I_CmsTemplate templateClass, com.opencms.file.CmsFile masterTemplate, java.util.Hashtable parameters)
          Utility method used by the launcher implementation to give control to the CanonicalRoot.
 void clearCache()
          Method for clearing this launchers template cache.
static void clearLauncherCache(com.opencms.file.CmsObject cms)
          Clear the XML template cache that is maintained in the launcher.
private static void clearLauncherCache(com.opencms.file.CmsObject cms, boolean clearFiles, boolean clearTemplates)
          Compatibility method to ensure the legacy cache command line parameters are still supported.
protected  java.lang.String getClassName()
          Gets the name of the class in the form "[ClassName] " This can be used for error logging purposes.
abstract  int getLauncherId()
          Gets the ID that indicates the type of the launcher.
static I_CmsTemplateCache getTemplateCache()
          Gets a reference to the global template cache
protected  com.opencms.template.I_CmsTemplate getTemplateClass(com.opencms.file.CmsObject cms, java.lang.String classname)
          Calls the CmsClassManager to get an instance of the given template class.
 void handleException(com.opencms.file.CmsObject cms, java.lang.Exception e, java.lang.String errorText)
          Utility method to handle any occurence of an execption.
 void initlaunch(com.opencms.file.CmsObject cms, com.opencms.file.CmsFile file, java.lang.String startTemplateClass, com.opencms.core.A_OpenCms openCms)
          Start method called by the OpenCms system to show a resource.
protected abstract  void launch(com.opencms.file.CmsObject cms, com.opencms.file.CmsFile file, java.lang.String startTemplateClass, com.opencms.core.A_OpenCms openCms)
          Unitary method to start generating the output.
 void setOpenCms(com.opencms.core.A_OpenCms openCms)
          Sets the currently running OpenCms instance.
protected  void writeBytesToResponse(com.opencms.file.CmsObject cms, byte[] result)
          Writes a given byte array to the HttpServletRespose output stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

C_DEBUG

private static final boolean C_DEBUG
Boolean for additional debug output control

See Also:
Constant Field Values

m_lastFsCounterTemplate

private static long m_lastFsCounterTemplate
Value of the filesystem counter, when the last template clear cache was done.


m_lastFsCounterFile

private static long m_lastFsCounterFile
Value of the filesystem counter, when the last XML file clear cache was done.


m_templateCache

protected static I_CmsTemplateCache m_templateCache
The template cache that holds all cached templates

Constructor Detail

A_CmsLauncher

A_CmsLauncher()
Method Detail

callCanonicalRoot

protected byte[] callCanonicalRoot(com.opencms.file.CmsObject cms,
                                   com.opencms.template.I_CmsTemplate templateClass,
                                   com.opencms.file.CmsFile masterTemplate,
                                   java.util.Hashtable parameters)
                            throws com.opencms.core.CmsException
Utility method used by the launcher implementation to give control to the CanonicalRoot. The CanonicalRoot will call the master template and return a byte array of the generated output.


clearCache

public void clearCache()
Method for clearing this launchers template cache.

Specified by:
clearCache in interface I_CmsLauncher

getClassName

protected java.lang.String getClassName()
Gets the name of the class in the form "[ClassName] " This can be used for error logging purposes.


getLauncherId

public abstract int getLauncherId()
Gets the ID that indicates the type of the launcher.

Specified by:
getLauncherId in interface I_CmsLauncher

getTemplateCache

public static I_CmsTemplateCache getTemplateCache()
Gets a reference to the global template cache


getTemplateClass

protected com.opencms.template.I_CmsTemplate getTemplateClass(com.opencms.file.CmsObject cms,
                                                              java.lang.String classname)
                                                       throws com.opencms.core.CmsException
Calls the CmsClassManager to get an instance of the given template class. The returned object is checked to be an implementing class of the interface I_CmsTemplate. If the template cache of the template class is not yet setted, this will be done, too.


handleException

public void handleException(com.opencms.file.CmsObject cms,
                            java.lang.Exception e,
                            java.lang.String errorText)
                     throws com.opencms.core.CmsException
Utility method to handle any occurence of an execption.

If the Exception is NO CmsException (i.e. it was not detected previously) it will be written to the logfile.

If the current user is the anonymous user, no further execption will be thrown, but a server error will be sent (we want to prevent the user from seeing any exeptions). Otherwise a new Exception will be thrown.


initlaunch

public void initlaunch(com.opencms.file.CmsObject cms,
                       com.opencms.file.CmsFile file,
                       java.lang.String startTemplateClass,
                       com.opencms.core.A_OpenCms openCms)
                throws com.opencms.core.CmsException
Start method called by the OpenCms system to show a resource.

In this method initial values valid for all launchers can be set and the _clearcache parameter is checked. After this the abstract method launch(...) is called to invoke the customized part of the launcher.

Specified by:
initlaunch in interface I_CmsLauncher

clearLauncherCache

private static void clearLauncherCache(com.opencms.file.CmsObject cms,
                                       boolean clearFiles,
                                       boolean clearTemplates)
Compatibility method to ensure the legacy cache command line parameters are still supported.


clearLauncherCache

public static void clearLauncherCache(com.opencms.file.CmsObject cms)
Clear the XML template cache that is maintained in the launcher. To use this method, call it on one of the classes that extend A_CmsLauncher (e.g. com.opencms.launcher.CmsXmlLauncher.clearLauncherCache()).


launch

protected abstract void launch(com.opencms.file.CmsObject cms,
                               com.opencms.file.CmsFile file,
                               java.lang.String startTemplateClass,
                               com.opencms.core.A_OpenCms openCms)
                        throws com.opencms.core.CmsException
Unitary method to start generating the output. Every launcher has to implement this method. In it possibly the selected file will be analyzed, and the Canonical Root will be called with the appropriate template class, template file and parameters. At least the canonical root's output must be written to the HttpServletResponse.


writeBytesToResponse

protected void writeBytesToResponse(com.opencms.file.CmsObject cms,
                                    byte[] result)
                             throws com.opencms.core.CmsException
Writes a given byte array to the HttpServletRespose output stream.


setOpenCms

public void setOpenCms(com.opencms.core.A_OpenCms openCms)
Sets the currently running OpenCms instance.

Specified by:
setOpenCms in interface I_CmsLauncher