[RAT-230] Short Apache header is not accepted by apache-rat-plugin
o Added the short line as supplemental first license line.
o Added appropriate unit test.
git-svn-id: https://svn.apache.org/repos/asf/creadur/rat/trunk@1787361 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java b/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java
index 9897a52..a19d4a8 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20.java
@@ -26,10 +26,11 @@
*/
public final class ApacheSoftwareLicense20 extends SimplePatternBasedLicense {
public static final String FIRST_LICENSE_LINE = "Licensed under the Apache License, Version 2.0 (the \"License\")";
+ public static final String FIRST_LICENSE_LINE_SHORT = "Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.";
public static final String LICENSE_REFERENCE_LINE = "http://www.apache.org/licenses/LICENSE-2.0";
public ApacheSoftwareLicense20() {
super(MetaData.RAT_LICENSE_FAMILY_CATEGORY_DATUM_ASL, MetaData.RAT_LICENSE_FAMILY_NAME_DATUM_APACHE_LICENSE_VERSION_2_0,
- "", new String[]{FIRST_LICENSE_LINE, LICENSE_REFERENCE_LINE});
+ "", new String[]{FIRST_LICENSE_LINE, FIRST_LICENSE_LINE_SHORT, LICENSE_REFERENCE_LINE, });
}
}
diff --git a/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20ShortTest.java b/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20ShortTest.java
new file mode 100644
index 0000000..faa293d
--- /dev/null
+++ b/apache-rat-core/src/test/java/org/apache/rat/analysis/license/ApacheSoftwareLicense20ShortTest.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ */
+package org.apache.rat.analysis.license;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Test to see if short form license informations will be correctly recognized.
+ *
+ * @see https://www.apache.org/legal/src-headers.html#is-a-short-form-of-the-
+ * source-header-available
+ *
+ * @author Karl Heinz Marbaise
+ *
+ */
+public class ApacheSoftwareLicense20ShortTest {
+
+ public static final String SHORT_LICENSE = "Licensed to the Apache Software Foundation (ASF) "
+ + "under one or more contributor license agreements; and to You under the Apache License, Version 2.0.";
+
+ @Test
+ public void apacheShortLicenseShouldBeIdentified() {
+ ApacheSoftwareLicense20 worker = new ApacheSoftwareLicense20();
+ assertTrue(worker.matches(ApacheSoftwareLicense20.FIRST_LICENSE_LINE_SHORT));
+ }
+
+ @Test
+ public void apacheShortLicenseShouldBeIdentifiedWithDifferentPreAndPostFixes() throws Exception {
+ ApacheSoftwareLicense20 worker = new ApacheSoftwareLicense20();
+ assertTrue(worker.matches(SHORT_LICENSE));
+ assertTrue(worker.matches("# " + SHORT_LICENSE));
+ assertTrue(worker.matches("##" + SHORT_LICENSE));
+ assertTrue(worker.matches("##" + SHORT_LICENSE + "##"));
+ assertTrue(worker.matches("/* " + SHORT_LICENSE + "*/"));
+ assertTrue(worker.matches("/* " + SHORT_LICENSE + "*/"));
+ }
+
+}