org.opencms.staticexport
Class CmsAfterPublishStaticExportHandler

java.lang.Object
  extended by org.opencms.staticexport.A_CmsStaticExportHandler
      extended by org.opencms.staticexport.CmsAfterPublishStaticExportHandler
All Implemented Interfaces:
I_CmsStaticExportHandler
Direct Known Subclasses:
CmsAfterPublishMultiLanguageStaticExportHandler

public class CmsAfterPublishStaticExportHandler
extends A_CmsStaticExportHandler

Implementation for the I_CmsStaticExportHandler interface.

This handler exports all changes immediately after something is published.

Since:
6.0.0
Version:
$Revision: 1.34 $
Author:
Michael Moossen
See Also:
I_CmsStaticExportHandler

Field Summary
 
Fields inherited from class org.opencms.staticexport.A_CmsStaticExportHandler
m_busy
 
Constructor Summary
CmsAfterPublishStaticExportHandler()
           
 
Method Summary
 void doExportAfterPublish(java.util.List resources, I_CmsReport report)
          Does the actual static export.
protected  void exportAfterPublish(CmsUUID publishHistoryId, I_CmsReport report)
          Starts the static export on publish.
protected  boolean exportNonTemplateResources(CmsObject cms, java.util.List publishedResources, I_CmsReport report)
          Exports all non template resources found in a list of published resources.
protected  int exportTemplateResource(java.lang.String rfsName, java.lang.String vfsName, java.lang.StringBuffer cookies)
          Exports a single (template) resource specified by its vfsName and rsfName.
protected  void exportTemplateResources(CmsObject cms, java.util.List publishedTemplateResources, I_CmsReport report)
          Exports all template resources found in a list of published resources.
 java.util.List getAllResources(CmsObject cms)
          Returns all resources within the current OpenCms site that are not marked as internal.
protected  java.util.List getRelatedFilesToPurge(java.lang.String exportFileName, java.lang.String vfsName)
          Returns a list of related files to purge.
protected  java.util.List getRelatedResources(CmsObject cms, java.util.List publishedResources)
          Creates a list of CmsPublishedResource objects containing all related resources of the VFS tree.
protected  java.util.Set getSiblings(CmsObject cms, CmsPublishedResource pubResource)
          Returns all siblings of the published resource as list of CmsPublishedResource.
 void performEventPublishProject(CmsUUID publishHistoryId, I_CmsReport report)
          Scrubs files from the export folder that might have been changed.
protected  boolean readNonTemplateResourcesToExport(CmsObject cms, java.util.List publishedResources, java.util.List resourcesToExport)
          Returns all non template resources found in a list of published resources.
 
Methods inherited from class org.opencms.staticexport.A_CmsStaticExportHandler
addMovedLinkSources, getSiblingsList, isBusy, purgeFile, scrubExportFolders, scrubResource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsAfterPublishStaticExportHandler

public CmsAfterPublishStaticExportHandler()
Method Detail

doExportAfterPublish

public void doExportAfterPublish(java.util.List resources,
                                 I_CmsReport report)
                          throws CmsException,
                                 java.io.IOException,
                                 javax.servlet.ServletException
Does the actual static export.

Parameters:
resources - a list of CmsPublishedREsources to start the static export with
report - an I_CmsReport instance to print output message, or null to write messages to the log file
Throws:
CmsException - in case of errors accessing the VFS
java.io.IOException - in case of errors writing to the export output stream
javax.servlet.ServletException - in case of errors accessing the servlet

getAllResources

public java.util.List getAllResources(CmsObject cms)
                               throws CmsException
Returns all resources within the current OpenCms site that are not marked as internal.

The result list contains objects of type CmsPublishedResource.

Parameters:
cms - the cms context
Returns:
all resources within the current OpenCms site that are not marked as internal
Throws:
CmsException - if something goes wrong

performEventPublishProject

public void performEventPublishProject(CmsUUID publishHistoryId,
                                       I_CmsReport report)
Description copied from interface: I_CmsStaticExportHandler
Scrubs files from the export folder that might have been changed.

Specified by:
performEventPublishProject in interface I_CmsStaticExportHandler
Specified by:
performEventPublishProject in class A_CmsStaticExportHandler
Parameters:
publishHistoryId - the CmsUUID of the published project
report - an I_CmsReport instance to print output message, or null to write messages to the log file
See Also:
I_CmsStaticExportHandler.performEventPublishProject(org.opencms.util.CmsUUID, org.opencms.report.I_CmsReport)

exportAfterPublish

protected void exportAfterPublish(CmsUUID publishHistoryId,
                                  I_CmsReport report)
                           throws CmsException,
                                  java.io.IOException,
                                  javax.servlet.ServletException
Starts the static export on publish.

Exports all modified resources after a publish process into the real FS.

Parameters:
publishHistoryId - the publichHistoryId of the published project
report - an I_CmsReport instance to print output message, or null to write messages to the log file
Throws:
CmsException - in case of errors accessing the VFS
java.io.IOException - in case of erros writing to the export output stream
javax.servlet.ServletException - in case of errors accessing the servlet

exportNonTemplateResources

protected boolean exportNonTemplateResources(CmsObject cms,
                                             java.util.List publishedResources,
                                             I_CmsReport report)
                                      throws CmsException,
                                             java.io.IOException,
                                             javax.servlet.ServletException
Exports all non template resources found in a list of published resources.

Parameters:
cms - the current cms object
publishedResources - the list of published resources
report - an I_CmsReport instance to print output message, or null to write messages to the log file
Returns:
true if some template resources were found while looping the list of published resources
Throws:
CmsException - in case of errors accessing the VFS
java.io.IOException - in case of errors writing to the export output stream
javax.servlet.ServletException - in case of errors accessing the servlet

exportTemplateResource

protected int exportTemplateResource(java.lang.String rfsName,
                                     java.lang.String vfsName,
                                     java.lang.StringBuffer cookies)
                              throws java.io.IOException
Exports a single (template) resource specified by its vfsName and rsfName.

Parameters:
vfsName - the vfsName of the resource
rfsName - the target rfs name
cookies - cookies to keep the session
Returns:
the status of the http request used to perform the export
Throws:
java.io.IOException - if the http request fails

exportTemplateResources

protected void exportTemplateResources(CmsObject cms,
                                       java.util.List publishedTemplateResources,
                                       I_CmsReport report)
Exports all template resources found in a list of published resources.

Parameters:
cms - the cms context
publishedTemplateResources - list of potential candidates to export
report - an I_CmsReport instance to print output message, or null to write messages to the log file

getRelatedFilesToPurge

protected java.util.List getRelatedFilesToPurge(java.lang.String exportFileName,
                                                java.lang.String vfsName)
Description copied from class: A_CmsStaticExportHandler
Returns a list of related files to purge.

Specified by:
getRelatedFilesToPurge in class A_CmsStaticExportHandler
Parameters:
exportFileName - the previous exported rfs filename (already purged)
vfsName - the vfs name of the resource (to be used to compute more sofisticated sets of related files to purge
Returns:
a list of related files to purge
See Also:
A_CmsStaticExportHandler.getRelatedFilesToPurge(java.lang.String, java.lang.String)

getRelatedResources

protected java.util.List getRelatedResources(CmsObject cms,
                                             java.util.List publishedResources)
                                      throws CmsException
Creates a list of CmsPublishedResource objects containing all related resources of the VFS tree.

If the static export has been triggered by the OpenCms workplace, publishedResources is null and all resources in the VFS tree are returned.

If really an after publish static export is triggered, then only the related resources are returned.

Parameters:
cms - the current cms object
publishedResources - the list of published resources
Returns:
list of CmsPulishedResource objects containing all resources of the VFS tree
Throws:
CmsException - in case of errors accessing the VFS

getSiblings

protected java.util.Set getSiblings(CmsObject cms,
                                    CmsPublishedResource pubResource)
                             throws CmsException
Returns all siblings of the published resource as list of CmsPublishedResource.

Parameters:
cms - the cms object
pubResource - the published resource
Returns:
all siblings of the published resource
Throws:
CmsException - if something goes wrong

readNonTemplateResourcesToExport

protected boolean readNonTemplateResourcesToExport(CmsObject cms,
                                                   java.util.List publishedResources,
                                                   java.util.List resourcesToExport)
                                            throws CmsException
Returns all non template resources found in a list of published resources.

Parameters:
cms - the current cms object
publishedResources - the list of published resources
resourcesToExport - the list of non-template resources
Returns:
true if some template resources were found while looping the list of published resources
Throws:
CmsException - in case of errors accessing the VFS