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 11:41:31 UTC
svn commit: r777440 - in /incubator/rat/main/trunk/apache-rat-core/src:
main/java/org/apache/rat/policy/ main/java/org/apache/rat/report/analyser/
main/java/org/apache/rat/report/claim/
main/java/org/apache/rat/report/claim/impl/ main/java/org/apache/r...
Author: rdonkin
Date: Fri May 22 09:41:31 2009
New Revision: 777440
URL: http://svn.apache.org/viewvc?rev=777440&view=rev
Log:
RAT-53 Revise reporter interface to allow migration away from claims. https://issues.apache.org/jira/browse/RAT-53
Modified:
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.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/IClaim.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaimReporter.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/policy/DefaultPolicy.java Fri May 22 09:41:31 2009
@@ -22,6 +22,7 @@
import java.util.Comparator;
import org.apache.rat.analysis.Claims;
+import org.apache.rat.document.IDocument;
import org.apache.rat.license.Apache20LicenseFamily;
import org.apache.rat.license.ILicenseFamily;
import org.apache.rat.license.ModifiedBSDLicenseFamily;
@@ -55,6 +56,7 @@
private final IClaimReporter reporter;
private final LicenseFamilyName[] approvedLicenseNames;
+ private IDocument subject;
public DefaultPolicy(final IClaimReporter reporter) {
this(reporter, APPROVED_LICENSES);
@@ -87,7 +89,11 @@
if (pClaim instanceof LicenseFamilyClaim) {
final LicenseFamilyClaim lfc = (LicenseFamilyClaim) pClaim;
final boolean isApproved = Arrays.binarySearch(approvedLicenseNames, lfc.getLicenseFamilyName(), licenseFamilyComparator) >= 0;
- Claims.reportLicenseApprovalClaim(pClaim.getSubject(), isApproved, reporter);
+ Claims.reportLicenseApprovalClaim(subject, isApproved, reporter);
}
}
+
+ public void report(final IDocument subject) throws RatReportFailedException {
+ this.subject = subject;
+ }
}
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=777440&r1=777439&r2=777440&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 09:41:31 2009
@@ -54,20 +54,20 @@
}
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.report(document);
+ 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);
+ }
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/IClaim.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaim.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaim.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaim.java Fri May 22 09:41:31 2009
@@ -1,6 +1,5 @@
package org.apache.rat.report.claim;
-import org.apache.rat.document.IDocument;
@@ -10,8 +9,4 @@
* subject.
*/
public interface IClaim {
- /**
- * Returns the claims subject.
- */
- IDocument getSubject();
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaimReporter.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaimReporter.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/IClaimReporter.java Fri May 22 09:41:31 2009
@@ -18,9 +18,19 @@
*/
package org.apache.rat.report.claim;
+import org.apache.rat.document.IDocument;
import org.apache.rat.report.RatReportFailedException;
public interface IClaimReporter {
+
+ /**
+ * Starts a report on the given document.
+ * All claims concern this document until this is called next.
+ * @param subject not null
+ * @throws RatReportFailedException
+ */
+ void report(IDocument subject) throws RatReportFailedException;
+
/**
* States a claim.
* @param pClaim The claim to state.
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/AbstractClaimReporter.java Fri May 22 09:41:31 2009
@@ -1,5 +1,6 @@
package org.apache.rat.report.claim.impl;
+import org.apache.rat.document.IDocument;
import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
@@ -52,4 +53,6 @@
public void claim(IClaim pClaim) throws RatReportFailedException {
handleClaim(pClaim);
}
+
+ public void report(IDocument document) throws RatReportFailedException {}
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java Fri May 22 09:41:31 2009
@@ -3,6 +3,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.rat.document.IDocument;
import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.claim.ClaimStatistic;
import org.apache.rat.report.claim.IClaim;
@@ -84,4 +85,11 @@
reporter.claim(pClaim);
}
}
+
+ public void report(IDocument document) throws RatReportFailedException {
+ super.report(document);
+ if (reporter != null) {
+ reporter.report(document);
+ }
+ }
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java Fri May 22 09:41:31 2009
@@ -43,6 +43,7 @@
private static final String NAME = "name";
private final IXmlWriter writer;
private IDocument lastSubject;
+ private IDocument subject;
public SimpleXmlClaimReporter(final IXmlWriter writer) {
this.writer = writer;
@@ -110,7 +111,17 @@
}
public void claim(IClaim pClaim) throws RatReportFailedException {
- final IDocument subject = pClaim.getSubject();
+ try {
+ handleClaim(pClaim);
+ } catch (IOException e) {
+ throw new RatReportFailedException("XML writing failure: " + e.getMessage()
+ + " subject: " + subject + " claim type: "
+ + pClaim.getClass().getName(), e);
+ }
+ }
+
+ public void report(final IDocument subject) throws RatReportFailedException {
+ this.subject = subject;
try {
if (!(subject.equals(lastSubject))) {
if (lastSubject != null) {
@@ -118,12 +129,10 @@
}
writer.openElement("resource").attribute(NAME, subject.getName());
}
- handleClaim(pClaim);
lastSubject = subject;
} catch (IOException e) {
throw new RatReportFailedException("XML writing failure: " + e.getMessage()
- + " subject: " + subject + " claim type: "
- + pClaim.getClass().getName(), e);
+ + " subject: " + subject, e);
}
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java Fri May 22 09:41:31 2009
@@ -18,6 +18,7 @@
*/
package org.apache.rat.report.claim.util;
+import org.apache.rat.document.IDocument;
import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
@@ -39,4 +40,10 @@
}
}
+ public void report(IDocument document) throws RatReportFailedException {
+ final int length = reporters.length;
+ for (int i=0;i<length;i++) {
+ reporters[i].report(document);
+ }
+ }
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java Fri May 22 09:41:31 2009
@@ -21,6 +21,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.rat.document.IDocument;
import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
@@ -37,4 +38,7 @@
public CustomClaim getClaim(int index) {
return (CustomClaim) claims.get(index);
}
+
+ public void report(IDocument document) throws RatReportFailedException {
+ }
}
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java?rev=777440&r1=777439&r2=777440&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java Fri May 22 09:41:31 2009
@@ -43,6 +43,7 @@
final IDocument subject = new MockLocation("subject");
final String predicate = "predicate";
final String object = "object";
+ reporter.report(subject);
reporter.claim(new CustomClaim(subject, predicate, object, false));
assertEquals("Five calls made", 5, mockWriter.calls.size());
assertTrue("First call is open element 'resource'", mockWriter.isOpenElement("resource", 0));
@@ -63,6 +64,7 @@
final IDocument subject = new MockLocation("subject");
final String predicate = "predicate";
final String object = "object";
+ reporter.report(subject);
reporter.claim(new CustomClaim(subject, predicate, object, false));
assertEquals("Five calls made", 5, mockWriter.calls.size());
assertTrue("First call is open element 'resource'", mockWriter.isOpenElement("resource", 0));
@@ -71,6 +73,7 @@
assertTrue("Forth call is object attribute", mockWriter.isAttribute("name", object, 3));
assertTrue("Fifth call is close element", mockWriter.isCloseElement(4));
final IDocument subjectTwo = new MockLocation("another-subject");
+ reporter.report(subjectTwo);
reporter.claim(new CustomClaim(subjectTwo, predicate, object, false));
assertEquals("Another found calls made", 11, mockWriter.calls.size());
assertTrue("Sixth call is close element", mockWriter.isCloseElement(5));
@@ -85,6 +88,7 @@
final IDocument subject = new MockLocation("subject");
final String predicate = "predicate";
final String object = "object";
+ reporter.report(subject);
reporter.claim(new CustomClaim(subject, predicate, object, true));
assertEquals("Five calls made", 5, mockWriter.calls.size());
assertTrue("First call is open element 'resource'", mockWriter.isOpenElement("resource", 0));