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

Quick Search    Search Deep

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

java.lang.Object
  extended bycom.opencms.launcher.A_CmsLauncher
      extended bycom.opencms.launcher.CmsXmlLauncher
All Implemented Interfaces:
com.opencms.core.I_CmsConstants, I_CmsLauncher, com.opencms.boot.I_CmsLogChannels

public class CmsXmlLauncher
extends A_CmsLauncher
implements com.opencms.boot.I_CmsLogChannels, com.opencms.core.I_CmsConstants

OpenCms launcher class for XML templates.

This can be used generating output for XML body files using XML template and subtemplate technology.

The selected body should define a start template class using
<PAGE>
  <CLASS>...</CLASS>
</PAGE>

If no start template is defined, the class given by the parameters will be used. If even this is not defined, CmsXmlTemplate will be used to create output.

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

Field Summary
static java.lang.String C_ELEMENT_REPLACE
          Magic elemet replace name
protected static I_CmsTemplateCache m_templateCache
          The template cache that holds all cached templates
 
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
 
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
 
Constructor Summary
CmsXmlLauncher()
           
 
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.
protected  byte[] generateOutput(com.opencms.file.CmsObject cms, com.opencms.file.CmsFile file, java.lang.String startTemplateClass, com.opencms.core.I_CmsRequest req)
          Starts generating the output.
protected  java.lang.String getClassName()
          Gets the name of the class in the form "[ClassName] " This can be used for error logging purposes.
 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  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.
private  com.opencms.file.CmsFile loadMasterTemplateFile(com.opencms.file.CmsObject cms, java.lang.String templateName, com.opencms.template.CmsXmlControlFile doc)
          Internal utility method for checking and loading a given template file.
 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_ELEMENT_REPLACE

public static final java.lang.String C_ELEMENT_REPLACE
Magic elemet replace name

See Also:
Constant Field Values

m_templateCache

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

Constructor Detail

CmsXmlLauncher

public CmsXmlLauncher()
Method Detail

generateOutput

protected byte[] generateOutput(com.opencms.file.CmsObject cms,
                                com.opencms.file.CmsFile file,
                                java.lang.String startTemplateClass,
                                com.opencms.core.I_CmsRequest req)
                         throws com.opencms.core.CmsException
Starts generating the output. Calls the canonical root with the appropriate template class.


getLauncherId

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

Specified by:
getLauncherId in interface I_CmsLauncher
Specified by:
getLauncherId in class A_CmsLauncher

launch

protected 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.

Specified by:
launch in class A_CmsLauncher

loadMasterTemplateFile

private com.opencms.file.CmsFile loadMasterTemplateFile(com.opencms.file.CmsObject cms,
                                                        java.lang.String templateName,
                                                        com.opencms.template.CmsXmlControlFile doc)
                                                 throws com.opencms.core.CmsException
Internal utility method for checking and loading a given template file.


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.


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

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()).


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