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 20:14:23 UTC
svn commit: r777642 - in /incubator/rat/main/trunk/apache-rat-core/src:
main/java/org/apache/rat/api/ main/java/org/apache/rat/policy/
main/java/org/apache/rat/report/claim/impl/
main/java/org/apache/rat/report/claim/impl/xml/ main/java/org/apache/rat/...
Author: rdonkin
Date: Fri May 22 18:14:22 2009
New Revision: 777642
URL: http://svn.apache.org/viewvc?rev=777642&view=rev
Log:
RAT-53 License approval now stored in meta data. https://issues.apache.org/jira/browse/RAT-53
Removed:
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/LicenseApprovalClaim.java
Modified:
incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java
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/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/xml/XmlReportFactory.java
incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java?rev=777642&r1=777641&r2=777642&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/api/MetaData.java Fri May 22 18:14:22 2009
@@ -43,7 +43,7 @@
public static final String RAT_URL_DOCUMENT_CATEGORY = RAT_BASE_URL + "#FileCategory";
// Header Categories
- public static final String RAT_URL_HEADER_CATEGORY= RAT_BASE_URL + "#HeaderCategory";
+ public static final String RAT_URL_HEADER_CATEGORY = RAT_BASE_URL + "#HeaderCategory";
// License Family Categories
public static final String RAT_URL_LICENSE_FAMILY_CATEGORY= RAT_BASE_URL + "#LicenseFamilyCategory";
@@ -89,7 +89,14 @@
= new Datum(RAT_URL_LICENSE_FAMILY_NAME, RAT_LICENSE_FAMILY_NAME_VALUE_UNKNOWN);
// Header sample
- public static final String RAT_URL_HEADER_SAMPLE = RAT_BASE_URL + "HeaderSample";
+ public static final String RAT_URL_HEADER_SAMPLE = RAT_BASE_URL + "#HeaderSample";
+
+ // License Approval
+ public static final String RAT_URL_APPROVED_LICENSE = RAT_BASE_URL + "#ApprovedLicense";
+ public static final String RAT_APPROVED_LICENSE_VALUE_TRUE = Boolean.TRUE.toString();
+ public static final String RAT_APPROVED_LICENSE_VALUE_FALSE = Boolean.FALSE.toString();
+ public static final Datum RAT_APPROVED_LICENSE_DATIM_TRUE = new Datum(RAT_URL_APPROVED_LICENSE, RAT_APPROVED_LICENSE_VALUE_TRUE);
+ public static final Datum RAT_APPROVED_LICENSE_DATIM_FALSE = new Datum(RAT_URL_APPROVED_LICENSE, RAT_APPROVED_LICENSE_VALUE_FALSE);
private ContentType contentType;
/**
@@ -172,6 +179,23 @@
}
/**
+ * Gets the value of the first datum matching the given name.
+ * @param name not null
+ * @return the value of the matchin datum first added when there is any matching data,
+ * null otherwise
+ */
+ public String value(final String name) {
+ final Datum datum = get(name);
+ final String result;
+ if (datum == null) {
+ result = null;
+ } else {
+ result = datum.getValue();
+ }
+ return result;
+ }
+
+ /**
* Removes all data matching the given name.
* @param name not null
* @return true if any data match, false otherwise
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=777642&r1=777641&r2=777642&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 18:14:22 2009
@@ -19,15 +19,14 @@
package org.apache.rat.policy;
import java.util.Arrays;
-import java.util.Comparator;
import org.apache.rat.api.MetaData;
+import org.apache.rat.api.MetaData.Datum;
import org.apache.rat.document.IDocument;
import org.apache.rat.license.ILicenseFamily;
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.impl.LicenseApprovalClaim;
public class DefaultPolicy implements IClaimReporter {
private static final String[] APPROVED_LICENSES = {
@@ -49,22 +48,20 @@
}
return results;
}
-
- private final IClaimReporter reporter;
+ ;
private final String[] approvedLicenseNames;
private IDocument subject;
private boolean testedDocument = false;
- public DefaultPolicy(final IClaimReporter reporter) {
- this(reporter, APPROVED_LICENSES);
+ public DefaultPolicy() {
+ this(APPROVED_LICENSES);
}
- public DefaultPolicy(final IClaimReporter reporter, final ILicenseFamily[] approvedLicenses) {
- this(reporter, toNames(approvedLicenses));
+ public DefaultPolicy(final ILicenseFamily[] approvedLicenses) {
+ this(toNames(approvedLicenses));
}
- public DefaultPolicy(final IClaimReporter reporter, final String[] approvedLicenseNames) {
- this.reporter = reporter;
+ public DefaultPolicy(final String[] approvedLicenseNames) {
if (approvedLicenseNames == null) {
this.approvedLicenseNames = APPROVED_LICENSES;
} else {
@@ -86,14 +83,20 @@
if (nameDatum != null) {
final String name = nameDatum.getValue();
final boolean isApproved = Arrays.binarySearch(approvedLicenseNames, name) >= 0;
- reportLicenseApprovalClaim(subject, isApproved, reporter);
+ reportLicenseApprovalClaim(subject, isApproved);
}
testedDocument = true;
}
}
- public void reportLicenseApprovalClaim(final IDocument subject, final boolean isAcceptable, final IClaimReporter reporter) throws RatReportFailedException {
- reporter.claim(new LicenseApprovalClaim(subject, isAcceptable));
+ public void reportLicenseApprovalClaim(final IDocument subject, final boolean isAcceptable) throws RatReportFailedException {
+ final Datum datum;
+ if (isAcceptable) {
+ datum = MetaData.RAT_APPROVED_LICENSE_DATIM_TRUE;
+ } else {
+ datum = MetaData.RAT_APPROVED_LICENSE_DATIM_FALSE;
+ }
+ subject.getMetaData().set(datum);
}
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=777642&r1=777641&r2=777642&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 18:14:22 2009
@@ -22,7 +22,7 @@
// Does nothing
}
- protected void handleClaim(LicenseApprovalClaim pClaim) {
+ protected void handleApprovedLicenseClaim(String licenseApproved) {
// Does nothing
}
@@ -42,8 +42,6 @@
writeDocumentClaimsWhenNecessary(subject);
if (pClaim instanceof FileTypeClaim) {
handleClaim((FileTypeClaim) pClaim);
- } else if (pClaim instanceof LicenseApprovalClaim) {
- handleClaim((LicenseApprovalClaim) pClaim);
} else if (pClaim instanceof CustomClaim) {
handleClaim((CustomClaim) pClaim);
} else {
@@ -56,14 +54,30 @@
}
private void writeDocumentClaim(IDocument subject) {
- final MetaData.Datum headerCategoryDatum = subject.getMetaData().get(MetaData.RAT_URL_HEADER_CATEGORY);
+ final MetaData metaData = subject.getMetaData();
+ writeHeaderCategory(metaData);
+ writeLicenseFamilyName(metaData);
+ final MetaData.Datum approvedLicenseDatum = metaData.get(MetaData.RAT_URL_APPROVED_LICENSE);
+ if (approvedLicenseDatum != null) {
+ final String approvedLicense = approvedLicenseDatum.getValue();
+ if (approvedLicense != null) {
+ handleApprovedLicenseClaim(approvedLicense);
+ }
+ }
+ }
+
+ private void writeHeaderCategory(final MetaData metaData) {
+ final MetaData.Datum headerCategoryDatum = metaData.get(MetaData.RAT_URL_HEADER_CATEGORY);
if (headerCategoryDatum != null) {
final String headerCategory = headerCategoryDatum.getValue();
if (headerCategory != null) {
handleHeaderCategoryClaim(headerCategory);
}
}
- final MetaData.Datum licenseFamilyNameDatum = subject.getMetaData().get(MetaData.RAT_URL_LICENSE_FAMILY_NAME);
+ }
+
+ private void writeLicenseFamilyName(final MetaData metaData) {
+ final MetaData.Datum licenseFamilyNameDatum = metaData.get(MetaData.RAT_URL_LICENSE_FAMILY_NAME);
if (licenseFamilyNameDatum != null) {
final String licenseFamilyName = licenseFamilyNameDatum.getName();
if (licenseFamilyName != null) {
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=777642&r1=777641&r2=777642&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 18:14:22 2009
@@ -46,8 +46,8 @@
incMapValue(numsByFileType, pClaim.getType());
}
- protected void handleClaim(LicenseApprovalClaim pClaim) {
- if (pClaim.isApproved()) {
+ protected void handleApprovedLicenseClaim(String licenseApproved) {
+ if (MetaData.RAT_APPROVED_LICENSE_VALUE_TRUE.equals(licenseApproved)) {
numApproved++;
} else {
numUnApproved++;
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=777642&r1=777641&r2=777642&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 18:14:22 2009
@@ -26,7 +26,6 @@
import org.apache.rat.report.claim.IClaim;
import org.apache.rat.report.claim.IClaimReporter;
import org.apache.rat.report.claim.impl.FileTypeClaim;
-import org.apache.rat.report.claim.impl.LicenseApprovalClaim;
import org.apache.rat.report.xml.writer.IXmlWriter;
public class SimpleXmlClaimReporter implements IClaimReporter {
@@ -54,11 +53,6 @@
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(CustomClaim pClaim)
throws IOException, RatReportFailedException {
@@ -86,8 +80,6 @@
protected void handleClaim(IClaim pClaim) throws IOException, RatReportFailedException {
if (pClaim instanceof FileTypeClaim) {
handleClaim((FileTypeClaim) pClaim);
- } else if (pClaim instanceof LicenseApprovalClaim) {
- handleClaim((LicenseApprovalClaim) pClaim);
} else if (pClaim instanceof CustomClaim) {
handleClaim((CustomClaim) pClaim);
} else {
@@ -135,6 +127,18 @@
writeLicenseFamilyCategory(metaData);
writeHeaderCategory(metaData);
writeLicenseFamilyName(metaData);
+ writeApprovedLicense(metaData);
+
+ }
+
+ private void writeApprovedLicense(final MetaData metaData) throws IOException, RatReportFailedException {
+ final MetaData.Datum approvedLicenseDatum = metaData.get(MetaData.RAT_URL_APPROVED_LICENSE);
+ if (approvedLicenseDatum != null) {
+ final String approvedLicense = approvedLicenseDatum.getValue();
+ if (approvedLicense != null) {
+ writeClaim(LICENSE_APPROVAL_PREDICATE, approvedLicense, false);
+ }
+ }
}
private void writeLicenseFamilyName(final MetaData metaData) throws IOException, RatReportFailedException {
Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java?rev=777642&r1=777641&r2=777642&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/report/xml/XmlReportFactory.java Fri May 22 18:14:22 2009
@@ -54,8 +54,8 @@
} else {
reporter = new ClaimAggregator(new SimpleXmlClaimReporter(writer));
}
- final DefaultPolicy policy = new DefaultPolicy(reporter, approvedLicenses);
- final IClaimReporter[] reporters = {reporter, policy};
+ final DefaultPolicy policy = new DefaultPolicy(approvedLicenses);
+ final IClaimReporter[] reporters = {policy, reporter};
final ClaimReporterMultiplexer multiplexer = new ClaimReporterMultiplexer(reporters);
final IDocumentAnalyser analyser =
Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java?rev=777642&r1=777641&r2=777642&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/policy/DefaultPolicyTest.java Fri May 22 18:14:22 2009
@@ -23,8 +23,6 @@
import org.apache.rat.api.MetaData;
import org.apache.rat.document.IDocument;
import org.apache.rat.document.MockLocation;
-import org.apache.rat.report.claim.IClaim;
-import org.apache.rat.report.claim.impl.LicenseApprovalClaim;
import org.apache.rat.report.claim.impl.xml.CustomClaim;
import org.apache.rat.report.claim.impl.xml.MockClaimReporter;
@@ -33,11 +31,13 @@
MockClaimReporter reporter;
DefaultPolicy policy;
+ private IDocument subject;
protected void setUp() throws Exception {
super.setUp();
reporter = new MockClaimReporter();
- policy = new DefaultPolicy(reporter);
+ policy = new DefaultPolicy();
+ subject = new MockLocation("subject");
}
protected void tearDown() throws Exception {
@@ -45,7 +45,6 @@
}
public void testOtherPredicate() throws Exception {
- final IDocument subject = new MockLocation("subject");
final String predicate = "predicate";
final String object = "object";
policy.claim(new CustomClaim(subject, predicate, object, true));
@@ -53,61 +52,41 @@
}
public void testASLFamily() throws Exception {
- final IDocument subject = new MockLocation("subject");
subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0);
policy.report(subject);
policy.claim(null);
- assertEquals("Approved claim", 1, reporter.claims.size());
assertApproval(true);
}
private void assertApproval(boolean pApproved) {
- final IClaim claim = (IClaim) reporter.claims.get(0);
- assertApproval(pApproved, claim);
+ assertEquals(pApproved, MetaData.RAT_APPROVED_LICENSE_VALUE_TRUE.equals(subject.getMetaData().value(MetaData.RAT_URL_APPROVED_LICENSE)));
}
- 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 IDocument subject = new MockLocation("subject");
subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_OASIS_OPEN_LICENSE);
policy.report(subject);
policy.claim(null);
- assertEquals("Approved claim", 1, reporter.claims.size());
assertApproval(true);
}
public void testW3CFamily() throws Exception {
- final IDocument subject = new MockLocation("subject");
subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_SOFTWARE_COPYRIGHT);
policy.report(subject);
policy.claim(null);
- assertEquals("Approved claim", 1, reporter.claims.size());
assertApproval(true);
}
public void testW3CDocFamily() throws Exception {
- final IDocument subject = new MockLocation("subject");
subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_W3C_DOCUMENT_COPYRIGHT);
policy.report(subject);
policy.claim(null);
- assertEquals("Approved claim", 1, reporter.claims.size());
assertApproval(true);
}
public void testUnknownFamily() throws Exception {
- final IDocument subject = new MockLocation("subject");
subject.getMetaData().set(MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_UNKNOWN);
policy.report(subject);
policy.claim(null);
- assertEquals("Approved claim", 1, reporter.claims.size());
assertApproval(false);
}
}