Package com.jalios.jcms.tools.patch
Class JumboPatchMaker
- java.lang.Object
-
- org.apache.commons.io.DirectoryWalker
-
- com.jalios.jcms.tools.patch.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.
-
-
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 specifiedstatic int
STATUS_ERROR
JumboPatchMaker exit code in case any error occursstatic 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
-
-
-
Field Detail
-
REVISION
public static final java.lang.String REVISION
- See Also:
- Constant Field Values
-
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
-
-
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 classorg.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 classorg.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
-
-