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/22 09:03:26 UTC
svn commit: r777410 - in /incubator/rat/main/trunk/apache-rat-core/src:
main/java/org/apache/rat/document/impl/
main/java/org/apache/rat/document/impl/guesser/
main/java/org/apache/rat/report/analyser/
main/java/org/apache/rat/report/claim/ test/java/o...
Author: rdonkin
Date: Fri May 22 07:03:25 2009
New Revision: 777410
URL: http://svn.apache.org/viewvc?rev=777410&view=rev
Log:
RAT-53 Simplify default analyser. https://issues.apache.org/jira/browse/RAT-53
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/guesser/ArchiveGuesser.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/analyser/DefaultAnalyserFactory.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/FileType.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.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=777410&r1=777409&r2=777410&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 Fri May 22 07:03:25 2009
@@ -63,4 +63,20 @@
public InputStream inputStream() throws IOException {
return new FileInputStream(file);
}
+
+ /**
+ * Representations suitable for logging.
+ * @return a <code>String</code> representation
+ * of this object.
+ */
+ public String toString()
+ {
+ return "FileDocument ( "
+ + "file = " + this.file + " "
+ + "name = " + this.name + " "
+ + "metaData = " + this.metaData + " "
+ + " )";
+ }
+
+
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java Fri May 22 07:03:25 2009
@@ -21,9 +21,8 @@
import java.util.Locale;
import org.apache.rat.document.IDocument;
-import org.apache.rat.document.IDocumentMatcher;
-public class ArchiveGuesser implements IDocumentMatcher {
+public class ArchiveGuesser {
public static final String[] ARCHIVE_EXTENSIONS = {
"jar", "gz",
@@ -32,7 +31,7 @@
"rar", "war",
};
- public boolean matches(final IDocument document) {
+ public static final boolean isArchive(final IDocument document) {
final String name = document.getName();
final boolean result = isArchive(name);
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java Fri May 22 07:03:25 2009
@@ -23,14 +23,13 @@
import java.util.Locale;
import org.apache.rat.document.IDocument;
-import org.apache.rat.document.IDocumentMatcher;
/**
* TODO: factor into MIME guesser and MIME->binary guesser
*/
-public class BinaryGuesser implements IDocumentMatcher {
+public class BinaryGuesser {
- private static boolean isBinary(IDocument document) {
+ private static boolean isBinaryDocument(IDocument document) {
boolean result = false;
Reader reader = null;
try
@@ -268,7 +267,7 @@
public static final int NON_ASCII_THREASHOLD = 256;
public static final int ASCII_CHAR_THREASHOLD = 8;
- public boolean matches(final IDocument document) {
+ public static final boolean isBinary(final IDocument document) {
// TODO: reimplement the binary test algorithm?
// TODO: more efficient to move into standard analysis
// TODO: then use binary as default
@@ -277,7 +276,7 @@
if (!result)
{
// try a taste
- result = isBinary(document);
+ result = isBinaryDocument(document);
}
return result;
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java Fri May 22 07:03:25 2009
@@ -22,9 +22,8 @@
import java.util.List;
import org.apache.rat.document.IDocument;
-import org.apache.rat.document.IDocumentMatcher;
-public class NoteGuesser implements IDocumentMatcher {
+public class NoteGuesser {
public static final String[] NOTE_FILE_NAMES = {
@@ -68,7 +67,7 @@
return result;
}
- public boolean matches(final IDocument document) {
+ public static final boolean isNote(final IDocument document) {
final String name = document.getName();
final boolean result = isNote(name);
return result;
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/analyser/DefaultAnalyserFactory.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/analyser/DefaultAnalyserFactory.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/analyser/DefaultAnalyserFactory.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/analyser/DefaultAnalyserFactory.java Fri May 22 07:03:25 2009
@@ -21,19 +21,13 @@
import org.apache.rat.analysis.IHeaderMatcher;
import org.apache.rat.document.IDocument;
import org.apache.rat.document.IDocumentAnalyser;
-import org.apache.rat.document.IDocumentMatcher;
import org.apache.rat.document.RatDocumentAnalysisException;
import org.apache.rat.document.impl.guesser.ArchiveGuesser;
import org.apache.rat.document.impl.guesser.BinaryGuesser;
import org.apache.rat.document.impl.guesser.NoteGuesser;
-import org.apache.rat.document.impl.util.ConditionalAnalyser;
-import org.apache.rat.document.impl.util.DocumentAnalyserMultiplexer;
-import org.apache.rat.document.impl.util.DocumentMatcherMultiplexer;
-import org.apache.rat.document.impl.util.MatchNegator;
+import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.claim.FileType;
-import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.impl.ArchiveFileTypeClaim;
import org.apache.rat.report.claim.impl.FileTypeClaim;
/**
@@ -41,95 +35,43 @@
*
*/
public class DefaultAnalyserFactory {
-
- public static final IDocumentAnalyser createArchiveTypeAnalyser(final IClaimReporter reporter) {
- return new AbstractSingleClaimAnalyser(reporter){
- protected IClaim toClaim(IDocument pDocument)
- throws RatDocumentAnalysisException {
- return new ArchiveFileTypeClaim(pDocument, pDocument.isComposite());
- }
- };
- }
-
- public static final IDocumentAnalyser createNoticeTypeAnalyser(final IClaimReporter reporter) {
- return new AbstractSingleClaimAnalyser(reporter){
- protected IClaim toClaim(IDocument pDocument)
- throws RatDocumentAnalysisException {
- return new FileTypeClaim(pDocument, FileType.NOTICE);
- }
- };
- }
-
- public static final IDocumentAnalyser createBinaryTypeAnalyser(final IClaimReporter reporter) {
- return new AbstractSingleClaimAnalyser(reporter){
- protected IClaim toClaim(IDocument pDocument)
- throws RatDocumentAnalysisException {
- return new FileTypeClaim(pDocument, FileType.BINARY);
- }
- };
- }
-
- public static final IDocumentAnalyser createStandardTypeAnalyser(final IClaimReporter reporter) {
- return new AbstractSingleClaimAnalyser(reporter){
- protected IClaim toClaim(IDocument pDocument)
- throws RatDocumentAnalysisException {
- return new FileTypeClaim(pDocument, FileType.STANDARD);
- }
- };
- }
-
- public static final IDocumentAnalyser createDefaultBinaryAnalyser(final IClaimReporter reporter) {
- final IDocumentAnalyser result = createBinaryTypeAnalyser(reporter);
- return result;
- }
-
- public static final IDocumentAnalyser createDefaultNoticeAnalyser(final IClaimReporter reporter) {
- final IDocumentAnalyser result = createNoticeTypeAnalyser(reporter);
- return result;
- }
-
- public static final IDocumentAnalyser createDefaultArchiveAnalyser(final IClaimReporter reporter) {
- return createArchiveTypeAnalyser(reporter);
- }
-
- public static final IDocumentAnalyser createDefaultStandardAnalyser(final IClaimReporter reporter,
- final IHeaderMatcher matcher) {
- final IDocumentAnalyser[] components = {
- createStandardTypeAnalyser(reporter),
- new DocumentHeaderAnalyser(matcher, reporter)
- };
- final DocumentAnalyserMultiplexer result = new DocumentAnalyserMultiplexer(components);
- return result;
- }
-
+
public static final IDocumentAnalyser createDefaultAnalyser(final IClaimReporter reporter,
final IHeaderMatcher matcher) {
- final IDocumentAnalyser binaryAnalyser = createDefaultBinaryAnalyser(reporter);
- final IDocumentAnalyser archiveAnalyser = createDefaultArchiveAnalyser(reporter);
- final IDocumentAnalyser noticeAnalyser = createDefaultNoticeAnalyser(reporter);
- final IDocumentAnalyser standardAnalyser = createDefaultStandardAnalyser(reporter, matcher);
-
- return createDefaultAnalyser(binaryAnalyser, archiveAnalyser, noticeAnalyser, standardAnalyser);
+ return new DefaultAnalyser(reporter, matcher);
}
+
+ private final static class DefaultAnalyser implements IDocumentAnalyser {
- public static IDocumentAnalyser createDefaultAnalyser(final IDocumentAnalyser binaryAnalyser, final IDocumentAnalyser archiveAnalyser, final IDocumentAnalyser noticeAnalyser, final IDocumentAnalyser standardAnalyser) {
- final IDocumentMatcher binaryGuesser = new BinaryGuesser();
- final IDocumentMatcher archiveGuesser = new ArchiveGuesser();
- final IDocumentMatcher noteGuesser = new NoteGuesser();
+ private final IClaimReporter reporter;
+ private final IHeaderMatcher matcher;
- return createDefaultAnalyser(binaryAnalyser, archiveAnalyser, noticeAnalyser, standardAnalyser, binaryGuesser, archiveGuesser, noteGuesser);
- }
+ public DefaultAnalyser(final IClaimReporter reporter, final IHeaderMatcher matcher) {
+ super();
+ this.reporter = reporter;
+ this.matcher = matcher;
+ }
- public static IDocumentAnalyser createDefaultAnalyser(final IDocumentAnalyser binaryAnalyser, final IDocumentAnalyser archiveAnalyser, final IDocumentAnalyser noticeAnalyser, final IDocumentAnalyser standardAnalyser, final IDocumentMatcher binaryGuesser, final IDocumentMatcher archiveGuesser, final IDocumentMatcher noteGuesser) {
- final IDocumentMatcher binaryMatcher = new ConditionalAnalyser(binaryGuesser, binaryAnalyser);
- final IDocumentMatcher noticeMatcher = new ConditionalAnalyser(noteGuesser, noticeAnalyser);
- final IDocumentMatcher archiveMatcher = new ConditionalAnalyser(archiveGuesser, archiveAnalyser);
- final IDocumentMatcher[] matchers = {noticeMatcher, archiveMatcher, binaryMatcher};
- final IDocumentMatcher specialDocumentMatcher = new DocumentMatcherMultiplexer(matchers);
- final IDocumentMatcher documentMatcher = new MatchNegator(specialDocumentMatcher);
-
- final ConditionalAnalyser result = new ConditionalAnalyser(documentMatcher, standardAnalyser);
- return result;
+ public void analyse(IDocument document) throws RatDocumentAnalysisException {
+ final FileType type;
+ if (NoteGuesser.isNote(document)) {
+ type = FileType.NOTICE;
+ } else if (ArchiveGuesser.isArchive(document)) {
+ type = FileType.ARCHIVE;
+ } else if (BinaryGuesser.isBinary(document)) {
+ type = FileType.BINARY;
+ } else {
+ type = FileType.STANDARD;
+ final DocumentHeaderAnalyser headerAnalyser = new DocumentHeaderAnalyser(matcher, reporter);
+ headerAnalyser.analyse(document);
+ }
+
+ try {
+ reporter.claim(new FileTypeClaim(document, type));
+ } catch (RatReportFailedException e) {
+ throw new RatReportAnalysisResultException(e);
+ }
+ }
}
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/FileType.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/FileType.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/FileType.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/FileType.java Fri May 22 07:03:25 2009
@@ -6,6 +6,16 @@
* for possible file types.
*/
public class FileType {
+
+ public static final String TYPE_STANDARD = "standard";
+ public static final String TYPE_BINARY = "binary";
+ public static final String TYPE_NOTICE = "notice";
+ public static final String TYPE_ARCHIVE = "archive";
+ public static final String TYPE_UNKNOWN = "?????";
+ public static final String TYPE_GENERATED = "GEN ";
+
+ public static final String RAT_FILE_CATEGORY ="http://org/apache/rat/meta-data#FileCategory";
+
private final String name;
/**
@@ -33,10 +43,10 @@
return getName().equals(((FileType) pOther).getName());
}
- public static final FileType GENERATED = new FileType("GEN ");
- public static final FileType UNKNOWN = new FileType("?????");
- public static final FileType ARCHIVE = new FileType("archive");
- public static final FileType NOTICE = new FileType("notice");
- public static final FileType BINARY = new FileType("binary");
- public static final FileType STANDARD = new FileType("standard");
+ public static final FileType GENERATED = new FileType(TYPE_GENERATED);
+ public static final FileType UNKNOWN = new FileType(TYPE_UNKNOWN);
+ public static final FileType ARCHIVE = new FileType(TYPE_ARCHIVE);
+ public static final FileType NOTICE = new FileType(TYPE_NOTICE);
+ public static final FileType BINARY = new FileType(TYPE_BINARY);
+ public static final FileType STANDARD = new FileType(TYPE_STANDARD);
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/ArchiveGuesserTest.java Fri May 22 07:03:25 2009
@@ -36,12 +36,12 @@
public void testMatches() {
- assertTrue(guesser.matches(new MockDocument("42.jar")));
- assertTrue(guesser.matches(new MockDocument("42.tar.gz")));
- assertTrue(guesser.matches(new MockDocument("42.zip")));
- assertTrue(guesser.matches(new MockDocument("42.tar")));
- assertTrue(guesser.matches(new MockDocument("42.bz")));
- assertTrue(guesser.matches(new MockDocument("42.bz2")));
+ assertTrue(guesser.isArchive(new MockDocument("42.jar")));
+ assertTrue(guesser.isArchive(new MockDocument("42.tar.gz")));
+ assertTrue(guesser.isArchive(new MockDocument("42.zip")));
+ assertTrue(guesser.isArchive(new MockDocument("42.tar")));
+ assertTrue(guesser.isArchive(new MockDocument("42.bz")));
+ assertTrue(guesser.isArchive(new MockDocument("42.bz2")));
}
public void testIsArchive() {
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/BinaryGuesserTest.java Fri May 22 07:03:25 2009
@@ -35,18 +35,18 @@
}
public void testMatches() {
- assertTrue(guesser.matches(new MockDocument("image.png")));
- assertTrue(guesser.matches(new MockDocument("image.pdf")));
- assertTrue(guesser.matches(new MockDocument("image.gif")));
- assertTrue(guesser.matches(new MockDocument("image.giff")));
- assertTrue(guesser.matches(new MockDocument("image.tif")));
- assertTrue(guesser.matches(new MockDocument("image.tiff")));
- assertTrue(guesser.matches(new MockDocument("image.jpg")));
- assertTrue(guesser.matches(new MockDocument("image.jpeg")));
- assertTrue(guesser.matches(new MockDocument("image.exe")));
- assertTrue(guesser.matches(new MockDocument("Whatever.class")));
- assertTrue(guesser.matches(new MockDocument("data.dat")));
- assertTrue(guesser.matches(new MockDocument("libicudata.so.34.")));
+ assertTrue(guesser.isBinary(new MockDocument("image.png")));
+ assertTrue(guesser.isBinary(new MockDocument("image.pdf")));
+ assertTrue(guesser.isBinary(new MockDocument("image.gif")));
+ assertTrue(guesser.isBinary(new MockDocument("image.giff")));
+ assertTrue(guesser.isBinary(new MockDocument("image.tif")));
+ assertTrue(guesser.isBinary(new MockDocument("image.tiff")));
+ assertTrue(guesser.isBinary(new MockDocument("image.jpg")));
+ assertTrue(guesser.isBinary(new MockDocument("image.jpeg")));
+ assertTrue(guesser.isBinary(new MockDocument("image.exe")));
+ assertTrue(guesser.isBinary(new MockDocument("Whatever.class")));
+ assertTrue(guesser.isBinary(new MockDocument("data.dat")));
+ assertTrue(guesser.isBinary(new MockDocument("libicudata.so.34.")));
}
public void testIsBinary() {
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/document/impl/guesser/NoteGuesserTest.java Fri May 22 07:03:25 2009
@@ -35,12 +35,12 @@
}
public void testMatches() {
- assertTrue(guesser.matches(new MockDocument("LICENSE")));
- assertTrue(guesser.matches(new MockDocument("LICENSE.txt")));
- assertTrue(guesser.matches(new MockDocument("NOTICE")));
- assertTrue(guesser.matches(new MockDocument("NOTICE.txt")));
- assertTrue(guesser.matches(new MockDocument("README")));
- assertTrue(guesser.matches(new MockDocument("README.txt")));
+ assertTrue(guesser.isNote(new MockDocument("LICENSE")));
+ assertTrue(guesser.isNote(new MockDocument("LICENSE.txt")));
+ assertTrue(guesser.isNote(new MockDocument("NOTICE")));
+ assertTrue(guesser.isNote(new MockDocument("NOTICE.txt")));
+ assertTrue(guesser.isNote(new MockDocument("README")));
+ assertTrue(guesser.isNote(new MockDocument("README.txt")));
}
public void testIsNote() {
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java Fri May 22 07:03:25 2009
@@ -22,8 +22,13 @@
import java.io.StringWriter;
import junit.framework.TestCase;
+
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.document.IDocument;
import org.apache.rat.document.IDocumentAnalyser;
import org.apache.rat.document.impl.MonolithicFileDocument;
+import org.apache.rat.report.claim.IClaimReporter;
import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
@@ -31,12 +36,22 @@
StringWriter out;
SimpleXmlClaimReporter reporter;
+ IHeaderMatcher matcherStub;
protected void setUp() throws Exception {
super.setUp();
out = new StringWriter();
XmlWriter writer = new XmlWriter(out);
reporter = new SimpleXmlClaimReporter(writer);
+ matcherStub = new IHeaderMatcher() {
+
+ public boolean match(IDocument subject, String line, IClaimReporter reporter) throws RatHeaderAnalysisException {
+ return false;
+ }
+
+ public void reset() {
+ }
+ };
}
protected void tearDown() throws Exception {
@@ -45,30 +60,50 @@
public void testStandardTypeAnalyser() throws Exception {
- MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/elements/Text.txt"));
- IDocumentAnalyser analyser = DefaultAnalyserFactory.createStandardTypeAnalyser(reporter);
+ MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/resources/elements/Text.txt"));
+ IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(reporter, matcherStub);
analyser.analyse(document);
- assertEquals("Open standard element", "<resource name='src/test/elements/Text.txt'><type name='standard'/>", out.toString());
+ assertEquals("Open standard element", "<resource name='src/test/resources/elements/Text.txt'><header-sample>/*\n" +
+ " * Licensed to the Apache Software Foundation (ASF) under one\n" +
+ " * or more contributor license agreements. See the NOTICE file\n" +
+ " * distributed with this work for additional information\n" +
+ " * regarding copyright ownership. The ASF licenses this file\n" +
+ " * to you under the Apache License, Version 2.0 (the \"License\");\n" +
+ " * you may not use this file except in compliance with the License.\n" +
+ " * You may obtain a copy of the License at\n" +
+ " *\n" +
+ " * http://www.apache.org/licenses/LICENSE-2.0\n" +
+ " *\n" +
+ " * Unless required by applicable law or agreed to in writing,\n" +
+ " * software distributed under the License is distributed on an\n" +
+ " * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+ " * KIND, either express or implied. See the License for the\n" +
+ " * specific language governing permissions and limitations\n" +
+ " * under the License. \n" +
+ " */\n" +
+ "\n" +
+ " \n" +
+ "</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/>", out.toString());
}
public void testNoteTypeAnalyser() throws Exception {
MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/elements/LICENSE"));
- IDocumentAnalyser analyser = DefaultAnalyserFactory.createNoticeTypeAnalyser(reporter);
+ IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(reporter, matcherStub);
analyser.analyse(document);
assertEquals("Open note element", "<resource name='src/test/elements/LICENSE'><type name='notice'/>", out.toString());
}
public void testBinaryTypeAnalyser() throws Exception {
MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/elements/Image.png"));
- IDocumentAnalyser analyser = DefaultAnalyserFactory.createBinaryTypeAnalyser(reporter);
+ IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(reporter, matcherStub);
analyser.analyse(document);
- assertEquals("Open note element", "<resource name='src/test/elements/Image.png'><type name='binary'/>", out.toString());
+ assertEquals("Open binary element", "<resource name='src/test/elements/Image.png'><type name='binary'/>", out.toString());
}
public void testArchiveTypeAnalyser() throws Exception {
MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/elements/Dummy.jar"));
- IDocumentAnalyser analyser = DefaultAnalyserFactory.createArchiveTypeAnalyser(reporter);
+ IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(reporter, matcherStub);
analyser.analyse(document);
- assertEquals("Open note element", "<resource name='src/test/elements/Dummy.jar'><type name='archive'/><archive-type name='unreadable'/>", out.toString());
+ assertEquals("Open archive element", "<resource name='src/test/elements/Dummy.jar'><type name='archive'/>", out.toString());
}
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java Fri May 22 07:03:25 2009
@@ -79,7 +79,7 @@
"</resource>" +
"<resource name='" + elementsPath + "/Xml.xml'><type name='standard'/>" +
"</resource>" +
- "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/><archive-type name='readable'/></resource>" +
+ "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/></resource>" +
"</rat-report>", output);
assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
assertEquals("Binary files", new Integer(1), statistic.getFileTypeMap().get(FileType.BINARY));
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java?rev=777410&r1=777409&r2=777410&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java Fri May 22 07:03:25 2009
@@ -25,8 +25,12 @@
import junit.framework.TestCase;
import org.apache.rat.DirectoryWalker;
+import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.analysis.RatHeaderAnalysisException;
+import org.apache.rat.document.IDocument;
import org.apache.rat.document.IDocumentAnalyser;
import org.apache.rat.report.analyser.DefaultAnalyserFactory;
+import org.apache.rat.report.claim.IClaimReporter;
import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
import org.apache.rat.report.xml.writer.IXmlWriter;
import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
@@ -45,11 +49,16 @@
writer = new XmlWriter(out);
writer.startDocument();
final SimpleXmlClaimReporter reporter = new SimpleXmlClaimReporter(writer);
- IDocumentAnalyser archiveAnalyser = DefaultAnalyserFactory.createArchiveTypeAnalyser(reporter);
- IDocumentAnalyser binaryAnalyser = DefaultAnalyserFactory.createBinaryTypeAnalyser(reporter);
- IDocumentAnalyser noticeAnalyser = DefaultAnalyserFactory.createNoticeTypeAnalyser(reporter);
- IDocumentAnalyser standardAnalyser = DefaultAnalyserFactory.createStandardTypeAnalyser(reporter);
- IDocumentAnalyser analyser =DefaultAnalyserFactory.createDefaultAnalyser(binaryAnalyser, archiveAnalyser, noticeAnalyser, standardAnalyser);
+ final IHeaderMatcher matcher = new IHeaderMatcher() {
+
+ public boolean match(IDocument subject, String line, IClaimReporter reporter) throws RatHeaderAnalysisException {
+ return false;
+ }
+
+ public void reset() {
+ }
+ };
+ IDocumentAnalyser analyser = DefaultAnalyserFactory.createDefaultAnalyser(reporter, matcher);
report = new XmlReport(writer, analyser);
}
@@ -75,11 +84,59 @@
"<resource name='" + elementsPath + "/Image.png'><type name='binary'/></resource>" +
"<resource name='" + elementsPath + "/LICENSE'><type name='notice'/></resource>" +
"<resource name='" + elementsPath + "/NOTICE'><type name='notice'/></resource>" +
- "<resource name='" + elementsPath + "/Source.java'><type name='standard'/></resource>" +
- "<resource name='" + elementsPath + "/Text.txt'><type name='standard'/></resource>" +
- "<resource name='" + elementsPath + "/Xml.xml'><type name='standard'/></resource>" +
- "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/><archive-type name='readable'/></resource>" +
- "<resource name='" + elementsPath + "/sub/Empty.txt'><type name='standard'/></resource>" +
+ "<resource name='" + elementsPath + "/Source.java'><header-sample>package elements;\n" +
+"\n" +
+"/*\n" +
+" * This file does intentionally *NOT* contain an ASL license header,\n" +
+" * because it is used in the test suite.\n" +
+" */\n" +
+"public class Source {\n" +
+"\n" +
+"}\n" + "</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+ "<resource name='" + elementsPath + "/Text.txt'><header-sample>/*\n" +
+" * Licensed to the Apache Software Foundation (ASF) under one\n" +
+" * or more contributor license agreements. See the NOTICE file\n" +
+" * distributed with this work for additional information\n" +
+" * regarding copyright ownership. The ASF licenses this file\n" +
+" * to you under the Apache License, Version 2.0 (the \"License\");\n" +
+" * you may not use this file except in compliance with the License.\n" +
+" * You may obtain a copy of the License at\n" +
+" *\n" +
+" * http://www.apache.org/licenses/LICENSE-2.0\n" +
+" *\n" +
+" * Unless required by applicable law or agreed to in writing,\n" +
+" * software distributed under the License is distributed on an\n" +
+" * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+" * KIND, either express or implied. See the License for the\n" +
+" * specific language governing permissions and limitations\n" +
+" * under the License. \n" +
+" */\n" +
+"\n" +
+" \n" +
+"</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+ "<resource name='" + elementsPath + "/Xml.xml'><header-sample><?xml version='1.0'?>\n" +
+"<!--\n" +
+" Licensed to the Apache Software Foundation (ASF) under one *\n" +
+" or more contributor license agreements. See the NOTICE file *\n" +
+" distributed with this work for additional information *\n" +
+" regarding copyright ownership. The ASF licenses this file *\n" +
+" to you under the Apache License, Version 2.0 (the *\n" +
+" \"License\"); you may not use this file except in compliance *\n" +
+" with the License. You may obtain a copy of the License at *\n" +
+" *\n" +
+" http://www.apache.org/licenses/LICENSE-2.0 *\n" +
+" *\n" +
+" Unless required by applicable law or agreed to in writing, *\n" +
+" software distributed under the License is distributed on an *\n" +
+" \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *\n" +
+" KIND, either express or implied. See the License for the *\n" +
+" specific language governing permissions and limitations *\n" +
+" under the License. *\n" +
+"-->\n" +
+"<document/>\n" +
+"</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
+ "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/></resource>" +
+ "<resource name='" + elementsPath + "/sub/Empty.txt'><header-sample>\n</header-sample><header-type name='?????'/><license-family name='?????'/><type name='standard'/></resource>" +
"</rat-report>", output);
assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
}