private Closeable exportExplodedWar(final boolean war, final VirtualFile file, final DeploymentUnit deploymentUnit) throws IOException { if (isExplodedWarInArchiveEar(war, file, deploymentUnit)) { File warContent = file.getPhysicalFile(); VFSUtils.recursiveCopy(file, warContent.getParentFile()); return VFS.mountReal(warContent, file); } return null; }
/** * Recursively copy a file or directory from one location to another. * * @param original the original file or directory * @param destDir the destination directory * @throws IOException if an I/O error occurs before the copy is complete */ public static void recursiveCopy(File original, File destDir) throws IOException { final String name = original.getName(); final File destFile = new File(destDir, name); if (original.isDirectory()) { destFile.mkdir(); for (File file : original.listFiles()) { recursiveCopy(file, destFile); } } else { final OutputStream os = new FileOutputStream(destFile); try { final InputStream is = new FileInputStream(original); copyStreamAndClose(is, os); } finally { // in case the input stream open fails safeClose(os); } } }
private Closeable exportExplodedWar(final boolean war, final VirtualFile file, final DeploymentUnit deploymentUnit) throws IOException { if (isExplodedWarInArchiveEar(war, file, deploymentUnit)) { File warContent = file.getPhysicalFile(); VFSUtils.recursiveCopy(file, warContent.getParentFile()); return VFS.mountReal(warContent, file); } return null; }
private Closeable exportExplodedWar(final boolean war, final VirtualFile file, final DeploymentUnit deploymentUnit) throws IOException { if (isExplodedWarInArchiveEar(war, file, deploymentUnit)) { File warContent = file.getPhysicalFile(); VFSUtils.recursiveCopy(file, warContent.getParentFile()); return VFS.mountReal(warContent, file); } return null; }
/** * Recursively copy a file or directory from one location to another. * * @param original the original file or directory * @param destDir the destination directory * @throws IOException if an I/O error occurs before the copy is complete */ public static void recursiveCopy(File original, VirtualFile destDir) throws IOException { final String name = original.getName(); final File destFile = destDir.getChild(name).getPhysicalFile(); if (original.isDirectory()) { destFile.mkdir(); for (File file : original.listFiles()) { recursiveCopy(file, destFile); } } else { final OutputStream os = new FileOutputStream(destFile); try { final InputStream is = new FileInputStream(original); copyStreamAndClose(is, os); } finally { // in case the input stream open fails safeClose(os); } } }
/** * Recursively copy a file or directory from one location to another. * * @param original the original virtual file or directory * @param destDir the destination directory * @throws IOException if an I/O error occurs before the copy is complete */ public static void recursiveCopy(VirtualFile original, File destDir) throws IOException { final String name = original.getName(); final File destFile = new File(destDir, name); if (original.isDirectory()) { destFile.mkdir(); for (VirtualFile file : original.getChildren()) { recursiveCopy(file, destFile); } } else { final OutputStream os = new FileOutputStream(destFile); try { final InputStream is = original.openStream(); copyStreamAndClose(is, os); } finally { // in case the input stream open fails safeClose(os); } } }
/** * Recursively copy a file or directory from one location to another. * * @param original the original virtual file or directory * @param destDir the destination virtual directory * @throws IOException if an I/O error occurs before the copy is complete */ public static void recursiveCopy(VirtualFile original, VirtualFile destDir) throws IOException { final String name = original.getName(); final File destFile = destDir.getChild(name).getPhysicalFile(); if (original.isDirectory()) { destFile.mkdir(); for (VirtualFile file : original.getChildren()) { recursiveCopy(file, destFile); } } else { final OutputStream os = new FileOutputStream(destFile); try { final InputStream is = original.openStream(); copyStreamAndClose(is, os); } finally { // in case the input stream open fails safeClose(os); } } }