Author: tcurdt Date: Wed Jan 7 05:48:42 2009 New Revision: 732334 URL: http://svn.apache.org/viewvc?rev=732334&view=rev Log: applied patches from Tim Pinet
https://issues.apache.org/jira/browse/SANDBOX-259 https://issues.apache.org/jira/browse/SANDBOX-258 Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveEntry.java commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveEntry.java commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/memory/MemoryArchiveEntry.java Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveEntry.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveEntry.java (original) +++ commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ArchiveEntry.java Wed Jan 7 05:48:42 2009 @@ -26,4 +26,6 @@ public String getName(); public long getSize(); + + public boolean isDirectory(); } Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveEntry.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveEntry.java (original) +++ commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveEntry.java Wed Jan 7 05:48:42 2009 @@ -69,4 +69,8 @@ public long getLength() { return length; } + + public boolean isDirectory() { + return false; + } } Modified: commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java (original) +++ commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/jar/JarArchiveInputStream.java Wed Jan 7 05:48:42 2009 @@ -32,7 +32,12 @@ } public ArchiveEntry getNextEntry() throws IOException { - return (ArchiveEntry)new JarArchiveEntry((ZipArchiveEntry)super.getNextEntry()); + ZipArchiveEntry entry = (ZipArchiveEntry)super.getNextEntry(); + if(entry == null){ + return null; + }else{ + return (ArchiveEntry)new JarArchiveEntry(entry); + } } public static boolean matches( byte[] signature ) { Modified: commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java (original) +++ commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java Wed Jan 7 05:48:42 2009 @@ -80,5 +80,28 @@ in.close(); } + + public void testJarUnarchiveAll() throws Exception { + final File input = new File(getClass().getClassLoader().getResource("bla.jar").getFile()); + final InputStream is = new FileInputStream(input); + final ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream("jar", is); + + ArchiveEntry entry = in.getNextEntry(); + while (entry != null) { + File archiveEntry = new File(dir, entry.getName()); + archiveEntry.getParentFile().mkdirs(); + if(entry.isDirectory()){ + archiveEntry.mkdir(); + entry = in.getNextEntry(); + continue; + } + OutputStream out = new FileOutputStream(archiveEntry); + IOUtils.copy(in, out); + out.close(); + entry = in.getNextEntry(); + } + + in.close(); + } } Modified: commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java (original) +++ commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java Wed Jan 7 05:48:42 2009 @@ -25,8 +25,6 @@ import java.io.InputStream; import java.io.OutputStream; -import junit.framework.TestCase; - import org.apache.commons.compress.AbstractTestCase; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.utils.IOUtils; Modified: commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/memory/MemoryArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/memory/MemoryArchiveEntry.java?rev=732334&r1=732333&r2=732334&view=diff ============================================================================== --- commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/memory/MemoryArchiveEntry.java (original) +++ commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/archivers/memory/MemoryArchiveEntry.java Wed Jan 7 05:48:42 2009 @@ -37,4 +37,9 @@ return 0; } + public boolean isDirectory() { + // TODO Auto-generated method stub + return false; + } + }