Author: krosenvold Date: Tue Dec 4 15:11:24 2012 New Revision: 1416982 URL: http://svn.apache.org/viewvc?rev=1416982&view=rev Log: Added ability to fine-control where resources are extracted
Modified: maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/util/ResourceExtractor.java Modified: maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/util/ResourceExtractor.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/util/ResourceExtractor.java?rev=1416982&r1=1416981&r2=1416982&view=diff ============================================================================== --- maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/util/ResourceExtractor.java (original) +++ maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/util/ResourceExtractor.java Tue Dec 4 15:11:24 2012 @@ -59,27 +59,32 @@ public class ResourceExtractor { public static File extractResourcePath(Class cl, String resourcePath, File tempDir, boolean alwaysExtract) throws IOException { File dest = new File(tempDir, resourcePath); + return extractResourceToDestination(cl, resourcePath, dest, alwaysExtract); + } + + public static File extractResourceToDestination(Class cl, String resourcePath, File destination, boolean alwaysExtract) + throws IOException { URL url = cl.getResource(resourcePath); if (url == null) throw new IllegalArgumentException("Resource not found: " + resourcePath); if ("jar".equalsIgnoreCase(url.getProtocol())) { File jarFile = getJarFileFromUrl(url); - extractResourcePathFromJar(cl, jarFile, resourcePath, dest); + extractResourcePathFromJar(cl, jarFile, resourcePath, destination); } else { try { File resourceFile = new File(new URI(url.toExternalForm())); if (!alwaysExtract) return resourceFile; if (resourceFile.isDirectory()) { - FileUtils.copyDirectoryStructure(resourceFile, dest); + FileUtils.copyDirectoryStructure(resourceFile, destination); } else { - FileUtils.copyFile(resourceFile, dest); + FileUtils.copyFile(resourceFile, destination); } } catch (URISyntaxException e) { throw new RuntimeException("Couldn't convert URL to File:" + url, e); } } - return dest; + return destination; } - + private static void extractResourcePathFromJar(Class cl, File jarFile, String resourcePath, File dest) throws IOException { ZipFile z = new ZipFile(jarFile, ZipFile.OPEN_READ); String zipStyleResourcePath = resourcePath.substring(1) + "/";