public static void copyDirectory(File sourceLocation , File targetLocation) throws IOException {
        copyDirectory(sourceLocation, targetLocation, -1);
    }
Copies all files and subdirectories (infinitely recursively) in a directory to another.
Any existing files are overwritten.

@param sourceLocation the source directory
@param targetLocation the target directory
@throws IOException if copying any file fails. This will typically result in some files being copied and
        others not, i.e this method is not exception safe
vespajlib/src/main/java/com/yahoo/io/IOUtils.java