com.opencms.file
Class CmsExport

java.lang.Object
  |
  +--com.opencms.file.CmsExport
All Implemented Interfaces:
I_CmsConstants, Serializable
Direct Known Subclasses:
CmsExportModuledata

public class CmsExport
extends Object
implements I_CmsConstants, Serializable

Provides the functionality to export files from the OpenCms VFS to a ZIP file.

The ZIP file written will contain a copy of all exported files with their contents. It will also contain a manifest.xml file in wich all meta-information about this files are stored, like permissions etc.

Version:
$Revision: 1.53 $ $Date: 2003/03/25 08:52:21 $
Author:
Andreas Schouten, Alexander Kandzior (a.kandzior@alkacon.com)
See Also:
Serialized Form

Field Summary
static String C_EXPORT_TAG_CHANNELS
           
static String C_EXPORT_TAG_FILES
           
static String C_EXPORT_TAG_MASTERS
           
protected  CmsObject m_cms
          The CmsObject to do the operations
protected  Document m_docXml
          The xml manifest-file
protected  Set m_exportedChannelIds
          The channelid and the resourceobject of the exported channels
protected  String m_exportFile
          The export ZIP file to store resources in
protected  boolean m_exportingModuleData
          Indicates if module data is exported
protected  ZipOutputStream m_exportZipStream
          The export ZIP stream to write resources to
protected  Element m_filesElement
          The xml element to store file information in
protected  Element m_mastersElement
          The xml-element to store masters information in
protected  I_CmsReport m_report
          The report for the log messages
 
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
CmsExport()
          Constructs a new uninitialized export, required for the module data export.
CmsExport(CmsObject cms, String exportFile, String[] resourcesToExport, boolean excludeSystem, boolean excludeUnchanged)
          Constructs a new export.
CmsExport(CmsObject cms, String exportFile, String[] resourcesToExport, boolean excludeSystem, boolean excludeUnchanged, Node moduleNode, boolean exportUserdata, long contentAge, I_CmsReport report)
          Constructs a new export.
 
Method Summary
protected  void addCdataElement(Document docXml, Element element, String name, String value)
          Adds a CDATA element to the XML document.
protected  void addElement(Document docXml, Element element, String name, String value)
          Adds a text element to the XML document.
protected  void closeExportFile()
          Closes the export ZIP file and saves the internal XML document for the manifest.
protected  void exportAllResources(String[] resourcesToExport)
          Exports all resources and possible sub-folders form the provided list of resources.
protected  void openExportFile(Node moduleNode)
          Opens the export ZIP file and initializes the internal XML document for the manifest.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

C_EXPORT_TAG_FILES

public static String C_EXPORT_TAG_FILES

C_EXPORT_TAG_CHANNELS

public static String C_EXPORT_TAG_CHANNELS

C_EXPORT_TAG_MASTERS

public static String C_EXPORT_TAG_MASTERS

m_exportingModuleData

protected boolean m_exportingModuleData
Indicates if module data is exported


m_exportFile

protected String m_exportFile
The export ZIP file to store resources in


m_exportZipStream

protected ZipOutputStream m_exportZipStream
The export ZIP stream to write resources to


m_cms

protected CmsObject m_cms
The CmsObject to do the operations


m_docXml

protected Document m_docXml
The xml manifest-file


m_filesElement

protected Element m_filesElement
The xml element to store file information in


m_mastersElement

protected Element m_mastersElement
The xml-element to store masters information in


m_report

protected I_CmsReport m_report
The report for the log messages


m_exportedChannelIds

protected Set m_exportedChannelIds
The channelid and the resourceobject of the exported channels

Constructor Detail

CmsExport

public CmsExport()
Constructs a new uninitialized export, required for the module data export.

See Also:
CmsExportModuledata

CmsExport

public CmsExport(CmsObject cms,
                 String exportFile,
                 String[] resourcesToExport,
                 boolean excludeSystem,
                 boolean excludeUnchanged)
          throws CmsException
Constructs a new export.

Parameters:
cms - the cmsObject to work with
exportFile - the file or folder to export to
resourcesToExport - the paths of folders and files to export
excludeSystem - if true, the system folder is excluded, if false all the resources in resourcesToExport are included
excludeUnchanged - true, if unchanged files should be excluded
Throws:
CmsException - if something goes wrong

CmsExport

public CmsExport(CmsObject cms,
                 String exportFile,
                 String[] resourcesToExport,
                 boolean excludeSystem,
                 boolean excludeUnchanged,
                 Node moduleNode,
                 boolean exportUserdata,
                 long contentAge,
                 I_CmsReport report)
          throws CmsException
Constructs a new export.

Parameters:
cms - the cmsObject to work with
exportFile - the file or folder to export to
resourcesToExport - the paths of folders and files to export
excludeSystem - if true, the system folder is excluded, if false all the resources in resourcesToExport are included
excludeUnchanged - true, if unchanged files should be excluded
exportUserdata - if true, the user and grou pdata will also be exported
report - to handle the log messages
Throws:
CmsException - if something goes wrong
Method Detail

openExportFile

protected void openExportFile(Node moduleNode)
                       throws CmsException
Opens the export ZIP file and initializes the internal XML document for the manifest.

Parameters:
moduleNode - optional modul node if a module is to be exported
Throws:
CmsException - if something goes wrong

closeExportFile

protected void closeExportFile()
                        throws CmsException
Closes the export ZIP file and saves the internal XML document for the manifest.

Throws:
CmsException - if something goes wrong

exportAllResources

protected void exportAllResources(String[] resourcesToExport)
                           throws CmsException
Exports all resources and possible sub-folders form the provided list of resources.

Parameters:
resourcesToExport - the list of resources to export
Throws:
CmsException - if something goes wrong

addCdataElement

protected void addCdataElement(Document docXml,
                               Element element,
                               String name,
                               String value)
Adds a CDATA element to the XML document.

Parameters:
docXml - Document to create the new element in
element - the element to add the subelement to
name - the name of the new subelement
value - the value of the element

addElement

protected void addElement(Document docXml,
                          Element element,
                          String name,
                          String value)
Adds a text element to the XML document.

Parameters:
docXml - Document to create the new element in
element - the element to add the subelement to
name - the name of the new subelement
value - the value of the element