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

Quick Search    Search Deep

com.opencms.file
Class CmsSynchronize  view CmsSynchronize download CmsSynchronize.java

java.lang.Object
  extended bycom.opencms.file.CmsSynchronize
All Implemented Interfaces:
com.opencms.core.I_CmsConstants

public class CmsSynchronize
extends java.lang.Object
implements com.opencms.core.I_CmsConstants

Holds the functionality to synchronize resources from the filesystem into the cms and back.

Version:
$Revision: 1.16 $ $Date: 2003/04/01 15:20:18 $

Field Summary
(package private) static int C_SYNC_NONE
          flag to synchronize no filesystem,
(package private) static int C_SYNC_SFS
          flag to synchronize the server filesystem
(package private) static int C_SYNC_SFSNEW
          flag to synchronize the server filesystem, rename the old file and copy the new file from VFS
(package private) static int C_SYNC_VFS
          flag to synchronize the virtual filesystem
private  CmsObject m_cms
          the CmsObject
private  CmsSynchronizeList m_synchronizeList
          the CmsSynchronizeList
private  java.lang.String m_synchronizePath
          the path in the server filesystem where the resource has to be synchronized
private  java.util.Hashtable m_vfsFiles
           
private  java.util.Hashtable m_vfsFolders
          Hashtables for folders and files of the resource in the virtual filesystem is needed to compare with folders and files in server filesystem
 
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
CmsSynchronize(CmsObject cms, java.lang.String resourceName)
          This constructs a new CmsImport-object which imports the resources.
 
Method Summary
private  int compareDate(java.lang.String resourceName, long vfsDate, long sfsDate)
          Compares the date of the resource in the virtual and the server filesystem with the date in the synchronize list
private  boolean copyServerFile(java.io.File fromFile, java.io.File toFile)
          this copies a file on the server filesystem
private  void createNewLocalFile(java.io.File newFile)
          Creates the new file on the SFS
private  boolean deleteDirectory(java.io.File delFolder)
          Deletes the folder and all subresources from SFS The folder has to be empty before it can be deleted
private  byte[] getFileBytes(java.io.File file)
          Returns a byte array containing the content of the file.
private  java.lang.String getFileType(java.lang.String filename)
          Gets the file type for the filename.
private  void synchronizeFile(CmsFile vfsFile)
          Synchronizes a file in the virtual or the server filesystem.
private  void synchronizeServer(java.lang.String resourceName)
          starts the synchronisation of the given resource
private  void synchronizeVirtual(java.lang.String resourceName)
          Read all resources from the server filesystem and compare it with the virtual filesystem.
private  void writeFileByte(byte[] content, java.io.File file)
          This writes the byte content of a resource to the file on the server filesystem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

C_SYNC_NONE

static final int C_SYNC_NONE
flag to synchronize no filesystem,

See Also:
Constant Field Values

C_SYNC_SFS

static final int C_SYNC_SFS
flag to synchronize the server filesystem

See Also:
Constant Field Values

C_SYNC_VFS

static final int C_SYNC_VFS
flag to synchronize the virtual filesystem

See Also:
Constant Field Values

C_SYNC_SFSNEW

static final int C_SYNC_SFSNEW
flag to synchronize the server filesystem, rename the old file and copy the new file from VFS

See Also:
Constant Field Values

m_synchronizePath

private java.lang.String m_synchronizePath
the path in the server filesystem where the resource has to be synchronized


m_cms

private CmsObject m_cms
the CmsObject


m_synchronizeList

private CmsSynchronizeList m_synchronizeList
the CmsSynchronizeList


m_vfsFolders

private java.util.Hashtable m_vfsFolders
Hashtables for folders and files of the resource in the virtual filesystem is needed to compare with folders and files in server filesystem


m_vfsFiles

private java.util.Hashtable m_vfsFiles
Constructor Detail

CmsSynchronize

public CmsSynchronize(CmsObject cms,
                      java.lang.String resourceName)
               throws com.opencms.core.CmsException
This constructs a new CmsImport-object which imports the resources.

Method Detail

synchronizeServer

private void synchronizeServer(java.lang.String resourceName)
                        throws com.opencms.core.CmsException
starts the synchronisation of the given resource


synchronizeVirtual

private void synchronizeVirtual(java.lang.String resourceName)
                         throws com.opencms.core.CmsException
Read all resources from the server filesystem and compare it with the virtual filesystem. Add folders and files that does not exist in VFS


synchronizeFile

private void synchronizeFile(CmsFile vfsFile)
                      throws com.opencms.core.CmsException
Synchronizes a file in the virtual or the server filesystem.


compareDate

private int compareDate(java.lang.String resourceName,
                        long vfsDate,
                        long sfsDate)
                 throws com.opencms.core.CmsException
Compares the date of the resource in the virtual and the server filesystem with the date in the synchronize list


createNewLocalFile

private void createNewLocalFile(java.io.File newFile)
                         throws com.opencms.core.CmsException
Creates the new file on the SFS


copyServerFile

private boolean copyServerFile(java.io.File fromFile,
                               java.io.File toFile)
this copies a file on the server filesystem


deleteDirectory

private boolean deleteDirectory(java.io.File delFolder)
Deletes the folder and all subresources from SFS The folder has to be empty before it can be deleted


getFileBytes

private byte[] getFileBytes(java.io.File file)
                     throws java.lang.Exception
Returns a byte array containing the content of the file.


getFileType

private java.lang.String getFileType(java.lang.String filename)
                              throws com.opencms.core.CmsException
Gets the file type for the filename.


writeFileByte

private void writeFileByte(byte[] content,
                           java.io.File file)
                    throws java.lang.Exception
This writes the byte content of a resource to the file on the server filesystem