You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by rd...@apache.org on 2009/05/18 23:55:20 UTC
svn commit: r776110 - in /incubator/rat/main/trunk:
apache-rat-core/src/main/java/org/apache/rat/document/impl/
apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/
apache-rat-plugin/src/main/java/org/apache/rat/mp/
apache-rat-tasks/src/main...
Author: rdonkin
Date: Mon May 18 21:55:20 2009
New Revision: 776110
URL: http://svn.apache.org/viewvc?rev=776110&view=rev
Log:
No need to convert zip files to an object model to work out whether they can be read
Modified:
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipDocumentFactory.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipFileDocument.java
incubator/rat/main/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java
incubator/rat/main/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java?rev=776110&r1=776109&r2=776110&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/FileDocument.java Mon May 18 21:55:20 2009
@@ -42,12 +42,7 @@
}
public boolean isComposite() {
- try {
- ZipDocumentFactory.load(file);
- return true;
- } catch (IOException e) {
- return false;
- }
+ return ZipDocumentFactory.isZip(file);
}
public Reader reader() throws IOException {
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipDocumentFactory.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipDocumentFactory.java?rev=776110&r1=776109&r2=776110&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipDocumentFactory.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipDocumentFactory.java Mon May 18 21:55:20 2009
@@ -20,82 +20,30 @@
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
import java.util.zip.ZipFile;
-import org.apache.commons.collections.EnumerationUtils;
-
-import org.apache.rat.document.IDocumentCollection;
-
public class ZipDocumentFactory {
- public static final IDocumentCollection load(File file) throws IOException {
+ public static final boolean isZip(File file) {
ZipFile zip = null;
try {
zip = new ZipFile(file);
- final Collection documents = new ArrayList();
- final Collection subdirectories = new ArrayList();
-
- final Collection directories = new ArrayList();
- final List entries = EnumerationUtils.toList(zip.entries());
- for (Iterator it=entries.iterator();it.hasNext();) {
- final ZipEntry entry = (ZipEntry) it.next();
- final boolean isDirectory = entry.isDirectory();
- final boolean topLevel = ZipUtils.isTopLevel(entry);
- if (isDirectory) {
- ZipDirectory directory = createDirectory(entry, entries, directories, zip);
- if (topLevel) {
- subdirectories.add(directory);
- }
- directories.add(directory);
- } else if (topLevel){
- documents.add(new ZipDocument(entry, zip));
- }
- }
- for (Iterator it=directories.iterator();it.hasNext();) {
- ZipDirectory directory = (ZipDirectory) it.next();
- directory.addSubDirectories(directories);
- }
-
- final IDocumentCollection result = new ZipRootDirectory(zip, subdirectories, documents);
- return result;
+ zip.entries();
+ return true;
+ } catch (ZipException e) {
+ return false;
+ } catch (IOException e) {
+ return false;
} finally {
if (zip != null) {
- zip.close();
- }
- }
- }
-
- private static ZipDirectory createDirectory(ZipEntry entry,
- List entries, Collection directories, ZipFile zip) {
- final String stem = ZipUtils.getStem(entry);
- final Collection subdirectories = new ArrayList();
- final Collection documents = new ArrayList();
-
- for(Iterator it=entries.iterator();it.hasNext();) {
- ZipEntry otherEntry = (ZipEntry) it.next();
- if (!otherEntry.equals(entry))
- {
- final String otherStem = ZipUtils.getStem(otherEntry);
- if (stem.equals(otherStem)) {
- if (otherEntry.isDirectory()) {
- ZipDirectory subDirectory
- = createDirectory(otherEntry, entries,directories, zip);
- subdirectories.add(subDirectory);
- directories.add(subDirectory);
- } else {
- ZipDocument document = new ZipDocument(otherEntry, zip);
- documents.add(document);
- }
+ try {
+ zip.close();
+ } catch (Throwable t) {
+ // Swallow
}
}
}
-
- final ZipDirectory result = new ZipDirectory(entry, subdirectories, documents);
- return result;
}
+
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipFileDocument.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipFileDocument.java?rev=776110&r1=776109&r2=776110&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipFileDocument.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/zip/ZipFileDocument.java Mon May 18 21:55:20 2009
@@ -47,12 +47,7 @@
public boolean isComposite() {
- try {
- ZipDocumentFactory.load(file);
- return true;
- } catch (IOException e) {
- return false;
- }
+ return ZipDocumentFactory.isZip(file);
}
public String getName() {
Modified: incubator/rat/main/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java?rev=776110&r1=776109&r2=776110&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java (original)
+++ incubator/rat/main/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/FilesReportable.java Mon May 18 21:55:20 2009
@@ -80,12 +80,7 @@
}
public boolean isComposite() {
- try {
- ZipDocumentFactory.load( file );
- return true;
- } catch (IOException e) {
- return false;
- }
+ return ZipDocumentFactory.isZip(file);
}
public Reader reader() throws IOException
Modified: incubator/rat/main/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java?rev=776110&r1=776109&r2=776110&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java (original)
+++ incubator/rat/main/trunk/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/ResourceCollectionContainer.java Mon May 18 21:55:20 2009
@@ -96,11 +96,7 @@
if (resource instanceof FileResource) {
final FileResource fileResource = (FileResource) resource;
final File file = fileResource.getFile();
- try {
- return ZipDocumentFactory.load(file) != null;
- } catch (IOException e) {
- return false;
- }
+ return ZipDocumentFactory.isZip(file);
}
return false;
}