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>&lt;?xml version='1.0'?&gt;\n" +
+"&lt;!--\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" +
+"--&gt;\n" +
+"&lt;document/&gt;\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));
     }