Class JumboPatchMaker


  • public class JumboPatchMaker
    extends org.apache.commons.io.DirectoryWalker
    Create a "jumbo" patch suitable for easier migration between maintenance revision of JCMS.

    Usage :

     JumboPatchMaker  jcms-6.0.war|jcms-6.0-directory  jcms-6.0-sp2.war|jcms-6.0-sp2-directory  patch-jcms-6.0-to-6.0-sp2.zip
     
    Technical note regarding the process :
    • Step 1 : war files are unzipped if needed, each webapp content is read to retrieve misc information (check it is a JCMS webapp, retrieve version, etc)
    • Step 2 : new or modified files from war 2 are copied in a temporary patch directory. Somes files are ignored (store.xml, webapp.prop, custom.prop, generated files, thumbnail, etc).
    • Step 3 : deleted files (between war 1 and war 2) are marked in the patch directory using an empty file.
    • Step 4 : reference file from war 2 (store.xml, custom.prop, webapp.prop) are copied in patch directory with suffix ".default"
    • Step 5 : zip file is created from temp directory.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.commons.io.DirectoryWalker

        org.apache.commons.io.DirectoryWalker.CancelException
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String REVISION  
      static int STATUS_BAD_PARAMETERS
      JumboPatchMaker exit code if invalid parameters were specified
      static int STATUS_ERROR
      JumboPatchMaker exit code in case any error occurs
      static int STATUS_OK
      JumboPatchMaker exit code when everything went fine
    • Constructor Summary

      Constructors 
      Constructor Description
      JumboPatchMaker()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean createPatch​(java.io.File war1File, java.io.File war2File, java.io.File destPatchFile)
      Create a patch from difference between war1 and war2 to the specified file.
      protected boolean handleDirectory​(java.io.File directory, int depth, java.util.Collection results)  
      protected void handleFile​(java.io.File file, int depth, java.util.Collection results)  
      static void main​(java.lang.String[] args)
      JumboPatchMaker main enty point
      • Methods inherited from class org.apache.commons.io.DirectoryWalker

        checkIfCancelled, filterDirectoryContents, handleCancelled, handleDirectoryEnd, handleDirectoryStart, handleEnd, handleIsCancelled, handleRestricted, handleStart, walk
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • STATUS_OK

        public static final int STATUS_OK
        JumboPatchMaker exit code when everything went fine
        See Also:
        Constant Field Values
      • STATUS_BAD_PARAMETERS

        public static final int STATUS_BAD_PARAMETERS
        JumboPatchMaker exit code if invalid parameters were specified
        See Also:
        Constant Field Values
      • STATUS_ERROR

        public static final int STATUS_ERROR
        JumboPatchMaker exit code in case any error occurs
        See Also:
        Constant Field Values
    • Constructor Detail

      • JumboPatchMaker

        public JumboPatchMaker()
    • Method Detail

      • createPatch

        public boolean createPatch​(java.io.File war1File,
                                   java.io.File war2File,
                                   java.io.File destPatchFile)
        Create a patch from difference between war1 and war2 to the specified file.
        Parameters:
        war1File - a war file or webapp directory (must be a JCMS webapp)
        war2File - a war file or webapp directory (must be a JCMS webapp with a higher version than war1File)
        destPatchFile - the zip File in which patch will be created, must NOT exists.
        Returns:
        true if the patch was created, false if any error occured.
      • handleDirectory

        protected boolean handleDirectory​(java.io.File directory,
                                          int depth,
                                          java.util.Collection results)
                                   throws java.io.IOException
        Overrides:
        handleDirectory in class org.apache.commons.io.DirectoryWalker
        Throws:
        java.io.IOException
      • handleFile

        protected void handleFile​(java.io.File file,
                                  int depth,
                                  java.util.Collection results)
                           throws java.io.IOException
        Overrides:
        handleFile in class org.apache.commons.io.DirectoryWalker
        Throws:
        java.io.IOException
      • main

        public static void main​(java.lang.String[] args)
        JumboPatchMaker main enty point
        Parameters:
        args - jumbo patch maker command line parameter