Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E33D319570 for ; Sun, 20 Mar 2016 20:12:04 +0000 (UTC) Received: (qmail 57417 invoked by uid 500); 20 Mar 2016 20:12:04 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 57339 invoked by uid 500); 20 Mar 2016 20:12:04 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 57330 invoked by uid 99); 20 Mar 2016 20:12:04 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Mar 2016 20:12:04 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 738CADFAEC; Sun, 20 Mar 2016 20:12:04 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bodewig@apache.org To: commits@commons.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: commons-compress git commit: COMPRESS-341 listing of 7z archives Date: Sun, 20 Mar 2016 20:12:04 +0000 (UTC) Repository: commons-compress Updated Branches: refs/heads/master f9334473b -> 9ff8334ff COMPRESS-341 listing of 7z archives Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/9ff8334f Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/9ff8334f Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/9ff8334f Branch: refs/heads/master Commit: 9ff8334ff25822f70a8313e14c8499891dc47688 Parents: f933447 Author: Stefan Bodewig Authored: Sun Mar 20 21:11:36 2016 +0100 Committer: Stefan Bodewig Committed: Sun Mar 20 21:11:36 2016 +0100 ---------------------------------------------------------------------- src/changes/changes.xml | 4 ++++ .../compress/archivers/sevenz/SevenZFile.java | 17 +++++++++++++++++ .../compress/archivers/sevenz/SevenZFileTest.java | 17 +++++++++++++++++ 3 files changed, 38 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/9ff8334f/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 809aa08..d9929f6 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -44,6 +44,10 @@ The type attribute can be add,update,fix,remove. + + New method SevenZFile.getEntries can be used to list the + contents of a 7z archive. + Native Memory Leak in Sevenz-DeflateDecoder. http://git-wip-us.apache.org/repos/asf/commons-compress/blob/9ff8334f/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java index 4a86dd2..3ea9369 100644 --- a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java +++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java @@ -157,6 +157,23 @@ public class SevenZFile implements Closeable { return entry; } + /** + * Returns meta-data of all archive entries. + * + *

This method only provides meta-data, the entries can not be + * used to read the contents, you still need to process all + * entries in order using {@link #getNextEntry} for that.

+ * + *

The content methods are only available for entries that have + * already been reached via {@link #getNextEntry}.

+ * + * @return meta-data of all archive entries. + * @since 1.11 + */ + public Iterable getEntries() { + return Arrays.asList(archive.files); + } + private Archive readHeaders(byte[] password) throws IOException { final byte[] signature = new byte[6]; file.readFully(signature); http://git-wip-us.apache.org/repos/asf/commons-compress/blob/9ff8334f/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java index a57d4cb..7ed4f11 100644 --- a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java +++ b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.Random; @@ -243,6 +244,22 @@ public class SevenZFileTest extends AbstractTestCase { } } + @Test + public void getEntriesOfUnarchiveTest() throws IOException { + SevenZFile sevenZFile = new SevenZFile(getFile("bla.7z")); + try { + Iterable entries = sevenZFile.getEntries(); + Iterator iter = entries.iterator(); + SevenZArchiveEntry entry = iter.next(); + assertEquals("test1.xml", entry.getName()); + entry = iter.next(); + assertEquals("test2.xml", entry.getName()); + assertFalse(iter.hasNext()); + } finally { + sevenZFile.close(); + } + } + private void test7zUnarchive(File f, SevenZMethod m, byte[] password) throws Exception { SevenZFile sevenZFile = new SevenZFile(f, password); try {