You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by jo...@apache.org on 2009/03/16 01:17:49 UTC
svn commit: r754798 [2/2] - in
/incubator/rat/main/branches/rat-output-semantics:
apache-rat-core/src/main/java/org/apache/rat/
apache-rat-core/src/main/java/org/apache/rat/analysis/
apache-rat-core/src/main/java/org/apache/rat/analysis/generation/ apa...
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporter.java Mon Mar 16 00:17:47 2009
@@ -20,25 +20,106 @@
import java.io.IOException;
+import org.apache.rat.document.IResource;
import org.apache.rat.report.RatReportFailedException;
+import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
+import org.apache.rat.report.claim.impl.ArchiveFileTypeClaim;
+import org.apache.rat.report.claim.impl.FileTypeClaim;
+import org.apache.rat.report.claim.impl.LicenseApprovalClaim;
+import org.apache.rat.report.claim.impl.LicenseFamilyClaim;
+import org.apache.rat.report.claim.impl.LicenseHeaderClaim;
import org.apache.rat.report.xml.writer.IXmlWriter;
public class SimpleXmlClaimReporter implements IClaimReporter {
+ public static final String LICENSE_APPROVAL_PREDICATE = "license-approval";
+ public static final String LICENSE_FAMILY_PREDICATE = "license-family";
+ public static final String HEADER_SAMPLE_PREDICATE = "header-sample";
+ public static final String HEADER_TYPE_PREDICATE = "header-type";
+ public static final String FILE_TYPE_PREDICATE = "type";
+ public static final String ARCHIVE_TYPE_PREDICATE = "archive-type";
+ public static final String ARCHIVE_TYPE_UNREADABLE = "unreadable";
+ public static final String ARCHIVE_TYPE_READABLE = "readable";
private static final String NAME = "name";
private final IXmlWriter writer;
- private ISubject lastSubject;
+ private IResource lastSubject;
public SimpleXmlClaimReporter(final IXmlWriter writer) {
this.writer = writer;
}
+
+ protected void handleClaim(ArchiveFileTypeClaim pClaim)
+ throws IOException, RatReportFailedException {
+ handleClaim((FileTypeClaim) pClaim);
+ writeClaim(ARCHIVE_TYPE_PREDICATE, pClaim.isReadable() ? ARCHIVE_TYPE_READABLE : ARCHIVE_TYPE_UNREADABLE, false);
+ }
+
+ protected void handleClaim(FileTypeClaim pClaim)
+ throws IOException, RatReportFailedException {
+ writeClaim(FILE_TYPE_PREDICATE, pClaim.getType().getName(), false);
+ }
+
+ protected void handleClaim(LicenseApprovalClaim pClaim)
+ throws IOException, RatReportFailedException {
+ writeClaim(LICENSE_APPROVAL_PREDICATE, Boolean.toString(pClaim.isApproved()), false);
+ }
+
+ protected void handleClaim(LicenseFamilyClaim pClaim)
+ throws IOException, RatReportFailedException {
+ handleClaim((LicenseHeaderClaim) pClaim);
+ writeClaim(LICENSE_FAMILY_PREDICATE, pClaim.getLicenseFamilyName().getName(), false);
+ }
+
+ protected void handleClaim(LicenseHeaderClaim pClaim)
+ throws IOException, RatReportFailedException {
+ writeClaim(HEADER_SAMPLE_PREDICATE, pClaim.getHeaderSample(), true);
+ writeClaim(HEADER_TYPE_PREDICATE, pClaim.getLicenseFamilyCode().getName(), false);
+ }
+
+ protected void handleClaim(CustomClaim pClaim)
+ throws IOException, RatReportFailedException {
+ writeClaim(pClaim.getPredicate(), pClaim.getObject(), pClaim.isLiteral());
+ }
+
+ /**
+ * Writes a single claim to the XML file.
+ * @param pPredicate The claims predicate.
+ * @param pObject The claims object.
+ * @param pLiteral Whether to write the object as an element (true),
+ * or an attribute (false).
+ * @throws IOException An I/O error occurred while writing the claim.
+ * @throws RatReportFailedException Another error occurred while writing the claim.
+ */
+ protected void writeClaim(String pPredicate, String pObject, boolean pLiteral)
+ throws IOException, RatReportFailedException {
+ if (pLiteral) {
+ writer.openElement(pPredicate).content(pObject).closeElement();
+ } else {
+ writer.openElement(pPredicate).attribute(NAME, pObject).closeElement();
+ }
+ }
- public void claim(ISubject subject, IPredicate predicate,
- IObject object, boolean isLiteral) throws RatReportFailedException {
+ protected void handleClaim(IClaim pClaim) throws IOException, RatReportFailedException {
+ if (pClaim instanceof ArchiveFileTypeClaim) {
+ handleClaim((ArchiveFileTypeClaim) pClaim);
+ } else if (pClaim instanceof FileTypeClaim) {
+ handleClaim((FileTypeClaim) pClaim);
+ } else if (pClaim instanceof LicenseApprovalClaim) {
+ handleClaim((LicenseApprovalClaim) pClaim);
+ } else if (pClaim instanceof LicenseFamilyClaim) {
+ handleClaim((LicenseFamilyClaim) pClaim);
+ } else if (pClaim instanceof LicenseHeaderClaim) {
+ handleClaim((LicenseHeaderClaim) pClaim);
+ } else if (pClaim instanceof CustomClaim) {
+ handleClaim((CustomClaim) pClaim);
+ } else {
+ throw new IllegalStateException("Invalid claim type: " + pClaim.getClass().getName());
+ }
+ }
+
+ public void claim(IClaim pClaim) throws RatReportFailedException {
+ final IResource subject = pClaim.getSubject();
try {
if (!(subject.equals(lastSubject))) {
if (lastSubject != null) {
@@ -46,14 +127,12 @@
}
writer.openElement("resource").attribute(NAME, subject.getName());
}
- if (isLiteral) {
- writer.openElement(predicate.getName()).content(object.getValue()).closeElement();
- } else {
- writer.openElement(predicate.getName()).attribute(NAME, object.getValue()).closeElement();
- }
+ handleClaim(pClaim);
lastSubject = subject;
} catch (IOException e) {
- throw new RatReportFailedException("XML writing failure: " + e.getMessage() + " subject: " + subject + " predicate: " + predicate, e);
+ throw new RatReportFailedException("XML writing failure: " + e.getMessage()
+ + " subject: " + subject + " claim type: "
+ + pClaim.getClass().getName(), e);
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexer.java Mon Mar 16 00:17:47 2009
@@ -19,10 +19,8 @@
package org.apache.rat.report.claim.util;
import org.apache.rat.report.RatReportFailedException;
+import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
public class ClaimReporterMultiplexer implements IClaimReporter {
@@ -33,12 +31,11 @@
this.reporters = reporters;
}
- public void claim(ISubject subject, IPredicate predicate,
- IObject object, boolean isLiteral)
+ public void claim(IClaim pClaim)
throws RatReportFailedException {
final int length = reporters.length;
for (int i=0;i<length;i++) {
- reporters[i].claim(subject, predicate, object, isLiteral);
+ reporters[i].claim(pClaim);
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java Mon Mar 16 00:17:47 2009
@@ -19,12 +19,16 @@
package org.apache.rat.report.xml;
import org.apache.rat.analysis.IHeaderMatcher;
+import org.apache.rat.document.IDocument;
import org.apache.rat.document.IDocumentAnalyser;
import org.apache.rat.license.ILicenseFamily;
import org.apache.rat.policy.DefaultPolicy;
import org.apache.rat.report.RatReport;
+import org.apache.rat.report.RatReportFailedException;
import org.apache.rat.report.analyser.DefaultAnalyserFactory;
+import org.apache.rat.report.claim.ClaimStatistic;
import org.apache.rat.report.claim.IClaimReporter;
+import org.apache.rat.report.claim.impl.ClaimAggregator;
import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
import org.apache.rat.report.claim.util.ClaimReporterMultiplexer;
import org.apache.rat.report.xml.writer.IXmlWriter;
@@ -34,25 +38,45 @@
*
*/
public class XmlReportFactory {
-
public static final RatReport createStandardReport(final IXmlWriter writer,
- final IHeaderMatcher matcher) {
- return createStandardReport(writer, matcher, null);
+ final IHeaderMatcher matcher, ClaimStatistic pStatistic) {
+ return createStandardReport(writer, matcher, null, pStatistic);
}
public static final RatReport createStandardReport(final IXmlWriter writer,
- final IHeaderMatcher matcher, final ILicenseFamily[] approvedLicenses) {
+ final IHeaderMatcher matcher, final ILicenseFamily[] approvedLicenses,
+ final ClaimStatistic pStatistic) {
// TODO: this isn't very elegant :-/
// TODO: should really pass in analysers but this means injecting reporter
- final SimpleXmlClaimReporter reporter = new SimpleXmlClaimReporter(writer);
+ final IClaimReporter reporter;
+ if (pStatistic == null) {
+ reporter = new SimpleXmlClaimReporter(writer);
+ } else {
+ reporter = new ClaimAggregator(new SimpleXmlClaimReporter(writer));
+ }
final DefaultPolicy policy = new DefaultPolicy(reporter, approvedLicenses);
final IClaimReporter[] reporters = {reporter, policy};
final ClaimReporterMultiplexer multiplexer = new ClaimReporterMultiplexer(reporters);
final IDocumentAnalyser analyser =
DefaultAnalyserFactory.createDefaultAnalyser(multiplexer, matcher);
-
+
final RatReport result = new XmlReport(writer, analyser);
- return result;
+ if (pStatistic == null) {
+ return result;
+ }
+ return new RatReport(){
+ public void endReport() throws RatReportFailedException {
+ result.endReport();
+ ((ClaimAggregator) reporter).fillClaimStatistic(pStatistic);
+ }
+ public void report(IDocument pDocument)
+ throws RatReportFailedException {
+ result.report(pDocument);
+ }
+ public void startReport() throws RatReportFailedException {
+ result.startReport();
+ }
+ };
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/MockLicenseMatcher.java Mon Mar 16 00:17:47 2009
@@ -21,8 +21,8 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.rat.document.IResource;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.ISubject;
public class MockLicenseMatcher implements IHeaderMatcher {
@@ -30,7 +30,7 @@
public int resets = 0;
public boolean result = true;
- public boolean match(ISubject subject, String line, IClaimReporter reporter) {
+ public boolean match(IResource subject, String line, IClaimReporter reporter) {
lines.add(line);
return result;
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/GeneratedLicenseNotRequiredTest.java Mon Mar 16 00:17:47 2009
@@ -22,8 +22,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class GeneratedLicenseNotRequiredTest extends TestCase {
@@ -43,7 +43,7 @@
}
public void testMatch() throws Exception {
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
assertFalse("Does not match regex", license.match(subject, "Not at all", reporter));
assertTrue("Matches regex", license.match(subject, "This is Generated", reporter));
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/generation/JavaDocLicenseNotRequiredTest.java Mon Mar 16 00:17:47 2009
@@ -24,8 +24,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
import org.apache.rat.test.utils.Resources;
@@ -64,7 +64,7 @@
boolean result = false;
BufferedReader in = new BufferedReader(new FileReader(file));
String line = in.readLine();
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
while (line != null && !result) {
result = license.match(subject, line, reporter);
line = in.readLine();
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20Test.java Mon Mar 16 00:17:47 2009
@@ -20,8 +20,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class ApacheSoftwareLicense20Test extends TestCase {
@@ -53,7 +53,7 @@
public void testMatch() throws Exception {
ApacheSoftwareLicense20 worker = new ApacheSoftwareLicense20();
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
assertTrue(worker.match(subject, ApacheSoftwareLicense20.FIRST_LICENSE_LINE, reporter));
assertTrue(worker.match(subject, " Licensed under the Apache License, Version 2.0 (the \"License\");", reporter));
assertTrue(worker.match(subject, "Licensed under the Apache License, Version 2.0 (the \"License\");", reporter));
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/OASISLicenseTest.java Mon Mar 16 00:17:47 2009
@@ -23,8 +23,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
import org.apache.rat.test.utils.Resources;
@@ -68,7 +68,7 @@
BufferedReader in = new BufferedReader(new StringReader(LICENSE));
String line = in.readLine();
boolean result = false;
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
while (line != null) {
result = license.match(subject, line, reporter);
line = in.readLine();
@@ -83,7 +83,7 @@
BufferedReader in = Resources.getBufferedResourceReader("elements/Source.java");
String line = in.readLine();
boolean result = false;
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
while (line != null) {
result = license.match(subject, line, reporter);
line = in.readLine();
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/license/W3CLicenseTest.java Mon Mar 16 00:17:47 2009
@@ -20,8 +20,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class W3CLicenseTest extends TestCase {
@@ -49,7 +49,7 @@
}
public void testMatch() throws Exception {
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL, reporter));
assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL_COMMENTED, reporter));
assertTrue("Expected matcher to return license", license.match(subject, COPYRIGHT_URL_XML, reporter));
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/analysis/util/MatcherMultiplexerTest.java Mon Mar 16 00:17:47 2009
@@ -22,8 +22,8 @@
import org.apache.rat.analysis.IHeaderMatcher;
import org.apache.rat.analysis.MockLicenseMatcher;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class MatcherMultiplexerTest extends TestCase {
@@ -53,7 +53,7 @@
public void testMatcherLine() throws Exception {
matcherOne.result = false;
matcherTwo.result = false;
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
multiplexer.match(subject, LINE_ONE, reporter);
assertEquals("One line", 1, matcherOne.lines.size());
assertEquals("Same as line passed", LINE_ONE, matcherOne.lines.get(0));
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/document/MockLocation.java Mon Mar 16 00:17:47 2009
@@ -27,6 +27,10 @@
this("name", "url");
}
+ public MockLocation(String name) {
+ this(name, "url");
+ }
+
public MockLocation(String name, String url) {
super();
this.name = name;
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java Mon Mar 16 00:17:47 2009
@@ -21,20 +21,21 @@
import junit.framework.TestCase;
import org.apache.rat.analysis.Claims;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.license.Apache20LicenseFamily;
import org.apache.rat.license.OASISLicenseFamily;
import org.apache.rat.license.W3CDocumentLicenseFamily;
import org.apache.rat.license.W3CSoftwareLicenseFamily;
-import org.apache.rat.report.claim.BaseObject;
-import org.apache.rat.report.claim.BasePredicate;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.LicenseApprovalObject;
+import org.apache.rat.report.claim.IClaim;
+import org.apache.rat.report.claim.LicenseFamilyCode;
import org.apache.rat.report.claim.LicenseFamilyName;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.report.claim.impl.LicenseApprovalClaim;
+import org.apache.rat.report.claim.impl.LicenseFamilyClaim;
+import org.apache.rat.report.claim.impl.xml.CustomClaim;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
+
public class DefaultPolicyTest extends TestCase {
MockClaimReporter reporter;
@@ -51,65 +52,78 @@
}
public void testOtherPredicate() throws Exception {
- final ISubject subject = new MockSubject("subject");
- final IPredicate predicate = new BasePredicate("predicate");
- final IObject object = new BaseObject("object");
- policy.claim(subject, predicate, object, true);
+ final IResource subject = new MockLocation("subject");
+ final String predicate = "predicate";
+ final String object = "object";
+ policy.claim(new CustomClaim(subject, predicate, object, true));
assertEquals("No claim", 0, reporter.claims.size());
}
public void testASLFamily() throws Exception {
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, Apache20LicenseFamily.APACHE_SOFTWARE_LICENSE_NAME, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, Apache20LicenseFamily.APACHE_SOFTWARE_LICENSE_NAME, Claims.ASL_CODE, ""));
assertEquals("Approved claim", 1, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.TRUE, false), reporter.claims.get(0));
+ assertApproval(true);
+ }
+
+ private void assertApproval(boolean pApproved) {
+ final IClaim claim = (IClaim) reporter.claims.get(0);
+ assertApproval(pApproved, claim);
+ }
+
+ private void assertApproval(boolean pApproved, final IClaim claim) {
+ assertTrue("Expected LicenseApprovalClaim, got " + claim.getClass().getName(), claim instanceof LicenseApprovalClaim);
+ if (pApproved) {
+ assertTrue("Expected Approval", ((LicenseApprovalClaim) claim).isApproved());
+ } else {
+ assertFalse("Expected Decline", ((LicenseApprovalClaim) claim).isApproved());
+ }
}
public void testOASISFamily() throws Exception {
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, OASISLicenseFamily.OASIS_OPEN_LICENSE_NAME, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, OASISLicenseFamily.OASIS_OPEN_LICENSE_NAME, Claims.OASIS_CODE, ""));
assertEquals("Approved claim", 1, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.TRUE, false), reporter.claims.get(0));
+ assertApproval(true);
}
public void testW3CFamily() throws Exception {
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, W3CSoftwareLicenseFamily.W3C_SOFTWARE_COPYRIGHT_NAME, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, W3CSoftwareLicenseFamily.W3C_SOFTWARE_COPYRIGHT_NAME, Claims.W3C_CODE, ""));
assertEquals("Approved claim", 1, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.TRUE, false), reporter.claims.get(0));
+ assertApproval(true);
}
public void testW3CDocFamily() throws Exception {
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, W3CDocumentLicenseFamily.W3C_DOCUMENT_COPYRIGHT_NAME, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, W3CDocumentLicenseFamily.W3C_DOCUMENT_COPYRIGHT_NAME, Claims.W3CD_CODE, ""));
assertEquals("Approved claim", 1, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.TRUE, false), reporter.claims.get(0));
+ assertApproval(true);
}
public void testUnknownFamily() throws Exception {
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, LicenseFamilyName.UNKNOWN_LICENSE_FAMILY, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, LicenseFamilyName.UNKNOWN_LICENSE_FAMILY, LicenseFamilyCode.UNKNOWN, ""));
assertEquals("Approved claim", 1, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.FALSE, false), reporter.claims.get(0));
+ assertApproval(false);
}
public void testCustomNames() throws Exception {
reporter = new MockClaimReporter();
LicenseFamilyName[] custom = {new LicenseFamilyName("Example")};
policy = new DefaultPolicy(reporter, custom);
- final ISubject subject = new MockSubject("subject");
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, LicenseFamilyName.UNKNOWN_LICENSE_FAMILY, true);
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, W3CDocumentLicenseFamily.W3C_DOCUMENT_COPYRIGHT_NAME, true);
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, W3CSoftwareLicenseFamily.W3C_SOFTWARE_COPYRIGHT_NAME, true);
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, Apache20LicenseFamily.APACHE_SOFTWARE_LICENSE_NAME, true);
+ final IResource subject = new MockLocation("subject");
+ policy.claim(new LicenseFamilyClaim(subject, LicenseFamilyName.UNKNOWN_LICENSE_FAMILY, LicenseFamilyCode.UNKNOWN, ""));
+ policy.claim(new LicenseFamilyClaim(subject, W3CDocumentLicenseFamily.W3C_DOCUMENT_COPYRIGHT_NAME, Claims.W3CD_CODE, ""));
+ policy.claim(new LicenseFamilyClaim(subject, W3CSoftwareLicenseFamily.W3C_SOFTWARE_COPYRIGHT_NAME, Claims.W3C_CODE, ""));
+ policy.claim(new LicenseFamilyClaim(subject, Apache20LicenseFamily.APACHE_SOFTWARE_LICENSE_NAME, Claims.ASL_CODE, ""));
assertEquals("Four unapproved claims", 4, reporter.claims.size());
- assertEquals("Four unapproved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.FALSE, false), reporter.claims.get(0));
- assertEquals("Four unapproved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.FALSE, false), reporter.claims.get(1));
- assertEquals("Four unapproved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.FALSE, false), reporter.claims.get(2));
- assertEquals("Four unapproved claim", new MockClaimReporter.Claim(subject, Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.FALSE, false), reporter.claims.get(3));
- policy.claim(subject, Claims.LICENSE_FAMILY_PREDICATE, custom[0], true);
+ assertApproval(false, (IClaim) reporter.claims.get(0));
+ assertApproval(false, (IClaim) reporter.claims.get(1));
+ assertApproval(false, (IClaim) reporter.claims.get(2));
+ assertApproval(false, (IClaim) reporter.claims.get(3));
+ policy.claim(new LicenseFamilyClaim(subject, custom[0], new LicenseFamilyCode("EXAMP"), ""));
assertEquals("Approved claim", 5, reporter.claims.size());
- assertEquals("Approved claim", new MockClaimReporter.Claim(subject,
- Claims.LICENSE_APPROVAL_PREDICATE, LicenseApprovalObject.TRUE, false), reporter.claims.get(4));
+ assertApproval(true, (IClaim) reporter.claims.get(4));
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/AnalyserFactoryTest.java Mon Mar 16 00:17:47 2009
@@ -69,6 +69,6 @@
MonolithicFileDocument document = new MonolithicFileDocument(new File("src/test/elements/Dummy.jar"));
IDocumentAnalyser analyser = DefaultAnalyserFactory.createArchiveTypeAnalyser(reporter);
analyser.analyse(document);
- assertEquals("Open note element", "<resource name='src/test/elements/Dummy.jar'><type name='archive'/>", out.toString());
+ assertEquals("Open note element", "<resource name='src/test/elements/Dummy.jar'><type name='archive'/><archive-type name='unreadable'/>", out.toString());
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/HeaderCheckWorkerTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/HeaderCheckWorkerTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/HeaderCheckWorkerTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/HeaderCheckWorkerTest.java Mon Mar 16 00:17:47 2009
@@ -24,9 +24,8 @@
import junit.framework.TestCase;
import org.apache.rat.analysis.license.ApacheSoftwareLicense20;
-import org.apache.rat.report.analyser.HeaderCheckWorker;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class HeaderCheckWorkerTest extends TestCase {
@@ -42,7 +41,7 @@
}
public void testIsFinished() throws Exception {
- final ISubject subject = new MockSubject("subject");
+ final IResource subject = new MockLocation("subject");
HeaderCheckWorker worker = new HeaderCheckWorker(new StringReader(""), new ApacheSoftwareLicense20(), reporter, subject);
assertFalse(worker.isFinished());
worker.read();
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserAnalyseTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserAnalyseTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserAnalyseTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserAnalyseTest.java Mon Mar 16 00:17:47 2009
@@ -23,6 +23,7 @@
import junit.framework.TestCase;
+import org.apache.rat.document.IDocumentAnalyser;
import org.apache.rat.document.impl.zip.ZipFileDocument;
import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
@@ -30,40 +31,33 @@
public class ReadableArchiveAnalyserAnalyseTest extends TestCase {
- StringWriter out;
- ReadableArchiveAnalyser analyser;
-
- protected void setUp() throws Exception {
- super.setUp();
- out = new StringWriter();
- XmlWriter writer = new XmlWriter(out);
- analyser = new ReadableArchiveAnalyser(new SimpleXmlClaimReporter(writer));
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
public void testVisitReadableArchive() throws Exception {
- final File dummyJar = Resources.getResourceFile("elements/dummy.jar");
+ final StringWriter out = new StringWriter();
+ final IDocumentAnalyser analyser = newAnalyser(out);
+ final File dummyJar = Resources.getResourceFile("elements/dummy.jar");
ZipFileDocument document = new ZipFileDocument(dummyJar);
analyser.analyse(document);
assertEquals("Readable attribute set",
"<resource name='"
+ dummyJar.getPath().replace('/', File.separatorChar)
- + "'><archive-type name='readable'/>", out.toString());
+ + "'><type name='archive'/><archive-type name='readable'/>", out.toString());
+ }
+
+ private IDocumentAnalyser newAnalyser(final StringWriter out) {
+ final XmlWriter writer = new XmlWriter(out);
+ final SimpleXmlClaimReporter reporter = new SimpleXmlClaimReporter(writer);
+ return DefaultAnalyserFactory.createArchiveTypeAnalyser(reporter);
}
public void testVisitUnreadableArchive() throws Exception {
+ final StringWriter out = new StringWriter();
+ final IDocumentAnalyser analyser = newAnalyser(out);
String name = "src/test/artifacts/dummy.tar.gz";
ZipFileDocument document = new ZipFileDocument((new File(name)));
analyser.analyse(document);
assertEquals("Readable attribute unset",
"<resource name='"
+ name.replace('/', File.separatorChar)
- + "'><archive-type name='unreadable'/>", out.toString());
-
+ + "'><type name='archive'/><archive-type name='unreadable'/>", out.toString());
}
-
-
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/analyser/ReadableArchiveAnalyserTest.java Mon Mar 16 00:17:47 2009
@@ -18,36 +18,32 @@
*/
package org.apache.rat.report.analyser;
+import junit.framework.TestCase;
+
import org.apache.rat.document.MockArchiveDocument;
import org.apache.rat.document.MockDocument;
import org.apache.rat.document.MockDocumentCollection;
+import org.apache.rat.report.claim.IClaim;
+import org.apache.rat.report.claim.impl.ArchiveFileTypeClaim;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
-import junit.framework.TestCase;
public class ReadableArchiveAnalyserTest extends TestCase {
-
- MockClaimReporter reporter;
- ReadableArchiveAnalyser analyser;
-
- protected void setUp() throws Exception {
- super.setUp();
- reporter = new MockClaimReporter();
- analyser = new ReadableArchiveAnalyser(reporter);
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
+ private final AbstractSingleClaimAnalyser newAnalyser() {
+ final MockClaimReporter reporter = new MockClaimReporter();
+ return (AbstractSingleClaimAnalyser) DefaultAnalyserFactory.createArchiveTypeAnalyser(reporter);
}
public void testUnreadableArchiveToObject() throws Exception {
MockDocument document = new MockDocument();
- assertEquals("Document is unreadable", ReadableArchiveAnalyser.UNREADABLE_ARCHIVE_VALUE,
- analyser.toObject(document));
+ final IClaim claim = newAnalyser().toClaim(document);
+ assertTrue("Expected ArchiveFileTypeClaim", claim instanceof ArchiveFileTypeClaim);
+ assertFalse("Expected unreadable archive", ((ArchiveFileTypeClaim) claim).isReadable());
}
public void testReadableArchiveToObject() throws Exception {
MockArchiveDocument document = new MockArchiveDocument("whatever", new MockDocumentCollection());
- assertEquals("Document is readable", ReadableArchiveAnalyser.READABLE_ARCHIVE_VALUE,
- analyser.toObject(document));
+ final IClaim claim = newAnalyser().toClaim(document);
+ assertTrue("Expected ArchiveFileTypeClaim", claim instanceof ArchiveFileTypeClaim);
+ assertTrue("Expected readable archive", ((ArchiveFileTypeClaim) claim).isReadable());
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/MockClaimReporter.java Mon Mar 16 00:17:47 2009
@@ -22,48 +22,19 @@
import java.util.List;
import org.apache.rat.report.RatReportFailedException;
+import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
public class MockClaimReporter implements IClaimReporter {
public List claims = new ArrayList();
- public void claim(ISubject subject, IPredicate predicate,
- IObject object, boolean isLiteral)
+ public void claim(IClaim pClaim)
throws RatReportFailedException {
- claims.add(new Claim(subject, predicate, object, isLiteral));
+ claims.add(pClaim);
}
- public Claim getClaim(int index) {
- return (Claim) claims.get(index);
- }
-
- public static class Claim {
- public final ISubject subject;
- public final IPredicate predicate;
- public final IObject object;
- public final boolean isLiteral;
-
- public Claim(final ISubject subject, final IPredicate predicate, final IObject object, final boolean isLiteral) {
- this.subject = subject;
- this.predicate = predicate;
- this.object = object;
- this.isLiteral = isLiteral;
- }
-
- public boolean equals(Object obj) {
- boolean result = false;
- if (obj instanceof Claim) {
- Claim claim = (Claim) obj;
- result = subject.equals(claim.subject) && predicate.equals(claim.predicate)
- && object.equals(claim.object) && isLiteral == claim.isLiteral;
- }
- return result;
- }
-
-
+ public CustomClaim getClaim(int index) {
+ return (CustomClaim) claims.get(index);
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/impl/xml/SimpleXmlClaimReporterTest.java Mon Mar 16 00:17:47 2009
@@ -20,12 +20,8 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.BaseObject;
-import org.apache.rat.report.claim.BasePredicate;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.xml.MockXmlWriter;
public class SimpleXmlClaimReporterTest extends TestCase {
@@ -44,57 +40,57 @@
}
public void testClaimsAboutOneResource() throws Exception {
- final ISubject subject = new MockSubject("subject");
- final IPredicate predicate = new BasePredicate("predicate");
- final IObject object = new BaseObject("object");
- reporter.claim(subject, predicate, object, false);
+ final IResource subject = new MockLocation("subject");
+ final String predicate = "predicate";
+ final String object = "object";
+ 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));
assertTrue("Second call is name attribute", mockWriter.isAttribute("name", subject.getName(), 1));
- assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate.getName(), 2));
- assertTrue("Forth call is object attribute", mockWriter.isAttribute("name", object.getValue(), 3));
+ assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate, 2));
+ assertTrue("Forth call is object attribute", mockWriter.isAttribute("name", object, 3));
assertTrue("Fifth call is close element", mockWriter.isCloseElement(4));
- final IPredicate predicateTwo = new BasePredicate("another-predicate");
- final IObject objectTwo = new BaseObject("another-object");
- reporter.claim(subject, predicateTwo, objectTwo, false);
+ final String predicateTwo = "another-predicate";
+ final String objectTwo = "another-object";
+ reporter.claim(new CustomClaim(subject, predicateTwo, objectTwo, false));
assertEquals("Another three calls made", 8, mockWriter.calls.size());
- assertTrue("Sixth call is predicate element", mockWriter.isOpenElement(predicateTwo.getName(), 5));
- assertTrue("Seventh call is object attribute", mockWriter.isAttribute("name", objectTwo.getValue(), 6));
+ assertTrue("Sixth call is predicate element", mockWriter.isOpenElement(predicateTwo, 5));
+ assertTrue("Seventh call is object attribute", mockWriter.isAttribute("name", objectTwo, 6));
assertTrue("Eighth call is close element", mockWriter.isCloseElement(7));
}
public void testClaimsAboutTwoResource() throws Exception {
- final ISubject subject = new MockSubject("subject");
- final IPredicate predicate = new BasePredicate("predicate");
- final IObject object = new BaseObject("object");
- reporter.claim(subject, predicate, object, false);
+ final IResource subject = new MockLocation("subject");
+ final String predicate = "predicate";
+ final String object = "object";
+ 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));
assertTrue("Second call is name attribute", mockWriter.isAttribute("name", subject.getName(), 1));
- assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate.getName(), 2));
- assertTrue("Forth call is object attribute", mockWriter.isAttribute("name", object.getValue(), 3));
+ assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate, 2));
+ assertTrue("Forth call is object attribute", mockWriter.isAttribute("name", object, 3));
assertTrue("Fifth call is close element", mockWriter.isCloseElement(4));
- final ISubject subjectTwo = new MockSubject("another-subject");
- reporter.claim(subjectTwo, predicate, object, false);
+ final IResource subjectTwo = new MockLocation("another-subject");
+ 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));
assertTrue("Seventh call is open element 'resource'", mockWriter.isOpenElement("resource", 6));
assertTrue("Eighth call is name attribute", mockWriter.isAttribute("name", subjectTwo.getName(), 7));
- assertTrue("Nineth call is predicate element", mockWriter.isOpenElement(predicate.getName(), 8));
- assertTrue("Tenth call is object attribute", mockWriter.isAttribute("name", object.getValue(), 9));
+ assertTrue("Nineth call is predicate element", mockWriter.isOpenElement(predicate, 8));
+ assertTrue("Tenth call is object attribute", mockWriter.isAttribute("name", object, 9));
assertTrue("Eleventh call is close element", mockWriter.isCloseElement(10));
}
public void testLiteralClaim() throws Exception {
- final ISubject subject = new MockSubject("subject");
- final IPredicate predicate = new BasePredicate("predicate");
- final IObject object = new BaseObject("object");
- reporter.claim(subject, predicate, object, true);
+ final IResource subject = new MockLocation("subject");
+ final String predicate = "predicate";
+ final String object = "object";
+ 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));
assertTrue("Second call is name attribute", mockWriter.isAttribute("name", subject.getName(), 1));
- assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate.getName(), 2));
- assertTrue("Forth call is object content", mockWriter.isContent(object.getValue(), 3));
+ assertTrue("Third call is predicate element", mockWriter.isOpenElement(predicate, 2));
+ assertTrue("Forth call is object content", mockWriter.isContent(object, 3));
assertTrue("Fifth call is close element", mockWriter.isCloseElement(4));
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexerTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexerTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexerTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/claim/util/ClaimReporterMultiplexerTest.java Mon Mar 16 00:17:47 2009
@@ -20,13 +20,10 @@
import junit.framework.TestCase;
-import org.apache.rat.report.claim.BaseObject;
-import org.apache.rat.report.claim.BasePredicate;
+import org.apache.rat.document.IResource;
+import org.apache.rat.document.MockLocation;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.IObject;
-import org.apache.rat.report.claim.IPredicate;
-import org.apache.rat.report.claim.ISubject;
-import org.apache.rat.report.claim.MockSubject;
+import org.apache.rat.report.claim.impl.xml.CustomClaim;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
public class ClaimReporterMultiplexerTest extends TestCase {
@@ -50,22 +47,22 @@
}
public void testClaim() throws Exception {
- final ISubject subject = new MockSubject("subject");
- final IPredicate predicate = new BasePredicate("predicate");
- final ISubject otherSubject = new MockSubject("another subject");
- final IPredicate otherPredicate = new BasePredicate("another predicate");
- final IObject object = new BaseObject("object");
- final IObject otherObject = new BaseObject("another object");
- multiplexer.claim(subject, predicate, object, true);
- MockClaimReporter.Claim claimOne = new MockClaimReporter.Claim(subject, predicate, object, true);
+ final IResource subject = new MockLocation("subject");
+ final String predicate = "predicate";
+ final IResource otherSubject = new MockLocation("another subject");
+ final String otherPredicate = "another predicate";
+ final String object = "object";
+ final String otherObject = "another object";
+ multiplexer.claim(new CustomClaim(subject, predicate, object, true));
+ CustomClaim claimOne = new CustomClaim(subject, predicate, object, true);
assertEquals("Claim reported", 1 , reporterOne.claims.size());
assertEquals("Claim reported", claimOne, reporterOne.claims.get(0));
assertEquals("Claim reported", 1 , reporterTwo.claims.size());
assertEquals("Claim reported", claimOne, reporterTwo.claims.get(0));
assertEquals("Claim reported", 1 , reporterThree.claims.size());
assertEquals("Claim reported", claimOne, reporterThree.claims.get(0));
- multiplexer.claim(otherSubject, otherPredicate, otherObject, false);
- MockClaimReporter.Claim claimTwo = new MockClaimReporter.Claim(otherSubject, otherPredicate, otherObject, false);
+ multiplexer.claim(new CustomClaim(otherSubject, otherPredicate, otherObject, false));
+ CustomClaim claimTwo = new CustomClaim(otherSubject, otherPredicate, otherObject, false);
assertEquals("Claim reported", 2, reporterOne.claims.size());
assertEquals("Claim reported", claimTwo, reporterOne.claims.get(1));
assertEquals("Claim reported", 2, reporterTwo.claims.size());
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportFactoryTest.java Mon Mar 16 00:17:47 2009
@@ -27,6 +27,8 @@
import org.apache.rat.DirectoryWalker;
import org.apache.rat.analysis.MockLicenseMatcher;
import org.apache.rat.report.RatReport;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.apache.rat.report.claim.FileType;
import org.apache.rat.report.xml.writer.IXmlWriter;
import org.apache.rat.report.xml.writer.impl.base.XmlWriter;
import org.apache.rat.test.utils.Resources;
@@ -58,7 +60,8 @@
final String elementsPath = Resources.getResourceDirectory("elements/Source.java");
final MockLicenseMatcher mockLicenseMatcher = new MockLicenseMatcher();
DirectoryWalker directory = new DirectoryWalker(new File(elementsPath), IGNORE_EMPTY);
- RatReport report = XmlReportFactory.createStandardReport(writer, mockLicenseMatcher);
+ final ClaimStatistic statistic = new ClaimStatistic();
+ RatReport report = XmlReportFactory.createStandardReport(writer, mockLicenseMatcher, statistic);
report.startReport();
report(directory, report);
report.endReport();
@@ -79,5 +82,9 @@
"<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/><archive-type name='readable'/></resource>" +
"</rat-report>", output);
assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
+ assertEquals("Binary files", new Integer(1), statistic.getFileTypeMap().get(FileType.BINARY));
+ assertEquals("Notice files", new Integer(2), statistic.getFileTypeMap().get(FileType.NOTICE));
+ assertEquals("Standard files", new Integer(3), statistic.getFileTypeMap().get(FileType.STANDARD));
+ assertEquals("Archives", new Integer(1), statistic.getFileTypeMap().get(FileType.ARCHIVE));
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-core/src/test/java/org/apache/rat/report/xml/XmlReportTest.java Mon Mar 16 00:17:47 2009
@@ -78,7 +78,7 @@
"<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'/></resource>" +
+ "<resource name='" + elementsPath + "/dummy.jar'><type name='archive'/><archive-type name='readable'/></resource>" +
"<resource name='" + elementsPath + "/sub/Empty.txt'><type name='standard'/></resource>" +
"</rat-report>", output);
assertTrue("Is well formed", XmlUtils.isWellFormedXml(output));
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java Mon Mar 16 00:17:47 2009
@@ -22,7 +22,7 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.io.PrintWriter;
+import java.io.Writer;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -42,6 +42,7 @@
import org.apache.rat.license.ILicenseFamily;
import org.apache.rat.report.IReportable;
import org.apache.rat.report.RatReportFailedException;
+import org.apache.rat.report.claim.ClaimStatistic;
import org.codehaus.plexus.util.DirectoryScanner;
@@ -333,12 +334,12 @@
* @throws MojoExecutionException
* Another error occurred while creating the report.
*/
- protected void createReport( PrintWriter out, InputStream style ) throws MojoExecutionException, MojoFailureException
+ protected ClaimStatistic createReport( Writer out, InputStream style ) throws MojoExecutionException, MojoFailureException
{
HeaderMatcherMultiplexer m = new HeaderMatcherMultiplexer( getLicenseMatchers() );
try
{
- Report.report( out, getResources(), style, m, getApprovedLicenseNames() );
+ return Report.report( out, getResources(), style, m, getApprovedLicenseNames() );
}
catch ( TransformerConfigurationException e )
{
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java Mon Mar 16 00:17:47 2009
@@ -20,31 +20,13 @@
*/
import java.io.File;
-import java.io.FileOutputStream;
+import java.io.FileWriter;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.net.URL;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.rat.Defaults;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
+import org.apache.rat.report.claim.ClaimStatistic;
/**
* Run RAT to perform a violation check.
@@ -66,53 +48,30 @@
* @parameter expression="${rat.numUnapprovedLicenses}" default-value="0"
*/
private int numUnapprovedLicenses;
-
- private URL getStylesheetURL()
- {
- URL url = Thread.currentThread().getContextClassLoader().getResource( "org/apache/rat/mp/identity.xsl" );
- if ( url == null )
- {
- throw new IllegalStateException( "Failed to locate stylesheet" );
- }
- return url;
- }
- private Document getRawReport()
+ private ClaimStatistic getRawReport()
throws MojoExecutionException, MojoFailureException
{
- URL url = getStylesheetURL();
- InputStream style = null;
+ FileWriter fw = null;
try
{
- style = url.openStream();
- final StringWriter sw = new StringWriter();
- createReport( new PrintWriter( sw ), style );
- style.close();
- style = null;
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware( true );
- dbf.setValidating( false );
- return dbf.newDocumentBuilder().parse( new InputSource( new StringReader( sw.toString() ) ) );
+ fw = new FileWriter( reportFile );
+ final ClaimStatistic statistic = createReport( fw, Defaults.getDefaultStyleSheet() );
+ fw.close();
+ fw = null;
+ return statistic;
}
catch ( IOException e )
{
throw new MojoExecutionException( e.getMessage(), e );
}
- catch ( SAXException e )
- {
- throw new MojoExecutionException( e.getMessage(), e );
- }
- catch ( ParserConfigurationException e )
- {
- throw new MojoExecutionException( e.getMessage(), e );
- }
finally
{
- if ( style != null )
+ if ( fw != null )
{
try
{
- style.close();
+ fw.close();
}
catch ( Throwable t )
{
@@ -135,92 +94,16 @@
File parent = reportFile.getParentFile();
parent.mkdirs();
- final Document report = getRawReport();
- FileOutputStream fos = null;
- try
- {
- fos = new FileOutputStream( reportFile );
- Transformer t = TransformerFactory.newInstance().newTransformer( new StreamSource( Defaults.getDefaultStyleSheet() ) );
- t.transform( new DOMSource( report ), new StreamResult( fos ) );
- fos.close();
- fos = null;
- }
- catch ( TransformerException e )
- {
- throw new MojoExecutionException( "Failed to create file " + reportFile + ": " + e.getMessage(), e );
- }
- catch ( IOException e )
- {
- throw new MojoExecutionException( "Failed to create file " + reportFile + ": " + e.getMessage(), e );
- }
- finally
- {
- if ( fos != null )
- {
- try
- {
- fos.close();
- }
- catch ( Throwable t )
- {
- // Ignore me
- }
- }
- }
-
+ final ClaimStatistic report = getRawReport();
check( report );
}
-
- private void count( RatStatistics pStatistics, Node node )
- {
- for ( Node child = node.getFirstChild(); child != null; child = child.getNextSibling() )
- {
- switch ( child.getNodeType() )
- {
- case Node.ELEMENT_NODE:
- final Element e = (Element) child;
- final String uri = e.getNamespaceURI();
- if ( uri == null || uri.length() == 0 )
- {
- final String localName = e.getLocalName();
- if ( "license-approval".equals( localName ) )
- {
- if ( Boolean.valueOf( e.getAttribute( "name" ) ).booleanValue() )
- {
- pStatistics.setNumApprovedLicenses( pStatistics.getNumApprovedLicenses() + 1 );
- }
- else
- {
- pStatistics.setNumUnapprovedLicenses( pStatistics.getNumUnapprovedLicenses() + 1 );
- }
- }
- }
- count( pStatistics, child );
- break;
- case Node.DOCUMENT_FRAGMENT_NODE:
- count( pStatistics, child );
- break;
- default:
- break;
- }
- }
- }
-
- protected void check( Document document )
- throws MojoFailureException
- {
- RatStatistics statistics = new RatStatistics();
- count( statistics, document );
- check( statistics );
- }
-
- protected void check( RatStatistics statistics )
+ protected void check( ClaimStatistic statistics )
throws MojoFailureException
{
- if ( numUnapprovedLicenses < statistics.getNumUnapprovedLicenses() )
+ if ( numUnapprovedLicenses < statistics.getNumUnApproved() )
{
- throw new RatCheckException( "Too many unapproved licenses: " + statistics.getNumUnapprovedLicenses() );
+ throw new RatCheckException( "Too many unapproved licenses: " + statistics.getNumUnApproved() );
}
}
}
Modified: incubator/rat/main/branches/rat-output-semantics/apache-rat-tasks/src/test/java/org/example/Matcher.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/branches/rat-output-semantics/apache-rat-tasks/src/test/java/org/example/Matcher.java?rev=754798&r1=754797&r2=754798&view=diff
==============================================================================
--- incubator/rat/main/branches/rat-output-semantics/apache-rat-tasks/src/test/java/org/example/Matcher.java (original)
+++ incubator/rat/main/branches/rat-output-semantics/apache-rat-tasks/src/test/java/org/example/Matcher.java Mon Mar 16 00:17:47 2009
@@ -19,8 +19,8 @@
import org.apache.rat.analysis.IHeaderMatcher;
import org.apache.rat.analysis.RatHeaderAnalysisException;
import org.apache.rat.analysis.license.BaseLicense;
+import org.apache.rat.document.IResource;
import org.apache.rat.report.claim.IClaimReporter;
-import org.apache.rat.report.claim.ISubject;
import org.apache.rat.report.claim.LicenseFamilyCode;
import org.apache.rat.report.claim.LicenseFamilyName;
@@ -31,7 +31,7 @@
}
public void reset() {}
- public boolean match(ISubject subject, String line, IClaimReporter reporter) throws RatHeaderAnalysisException {
+ public boolean match(IResource subject, String line, IClaimReporter reporter) throws RatHeaderAnalysisException {
reportOnLicense(subject, reporter);
return true;
}