HBASE-22338 LICENSE file only contains Apache 2.0 (#93)
Signed-off-by: Sean Busbey <busbey@apache.org>
diff --git a/hbase-connectors-assembly/pom.xml b/hbase-connectors-assembly/pom.xml
index af7356f..6e857d8 100755
--- a/hbase-connectors-assembly/pom.xml
+++ b/hbase-connectors-assembly/pom.xml
@@ -51,6 +51,38 @@
<build>
<plugins>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>negate-license-bundles-property</id>
+ <goals>
+ <goal>bsh-property</goal>
+ </goals>
+ <configuration>
+ <source>skip.license.check = !${license.bundles.dependencies};</source>
+ <properties>
+ <property>skip.license.check</property>
+ </properties>
+ </configuration>
+ </execution>
+ <!-- sets where to find the generated LICENSE files -->
+ <execution>
+ <id>create-license-file-path-property</id>
+ <goals>
+ <goal>regex-property</goal>
+ </goals>
+ <configuration>
+ <name>license.aggregate.path</name>
+ <value>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</value>
+ <regex>\\</regex>
+ <replacement>/</replacement>
+ <failIfNoMatch>false</failIfNoMatch>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
@@ -82,9 +114,11 @@
<phase>test</phase>
<goals>
<goal>build-classpath</goal>
+ <goal>copy-dependencies</goal>
</goals>
<configuration>
<outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
+ <outputDirectory>${project.build.directory}/dependency</outputDirectory>
</configuration>
</execution>
</executions>
@@ -119,6 +153,8 @@
</supplementalModelArtifacts>
<supplementalModels>
<supplementalModel>supplemental-models.xml</supplementalModel>
+ <!-- extra supplement data model overridden by hbase-connector -->
+ <supplementalModel>src/main/resources/supplemental-models.xml</supplementalModel>
</supplementalModels>
</configuration>
</execution>
@@ -151,6 +187,60 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>${buildnumber.maven.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>${enforcer.version}</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>extra-enforcer-rules</artifactId>
+ <version>${extra.enforcer.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>check-aggregate-license</id>
+ <!-- must check after LICENSE is built at 'generate-resources' -->
+ <phase>process-resources</phase>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <evaluateBeanshell>
+ <condition>
+ File license = new File("${license.aggregate.path}");
+
+ // Beanshell does not support try-with-resources,
+ // so we must close this scanner manually
+ Scanner scanner = new Scanner(license);
+
+ while (scanner.hasNextLine()) {
+ if (scanner.nextLine().startsWith("ERROR:")) {
+ scanner.close();
+ return false;
+ }
+ }
+ scanner.close();
+ return true;
+ </condition>
+ <message>
+ License errors detected, for more detail find ERROR in
+ ${license.aggregate.path}
+ </message>
+ </evaluateBeanshell>
+ </rules>
+ <skip>${skip.license.check}</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<!-- /end building aggregation of NOTICE files -->
</plugins>
</build>
diff --git a/hbase-connectors-assembly/src/main/assembly/hbase-connectors-bin.xml b/hbase-connectors-assembly/src/main/assembly/hbase-connectors-bin.xml
index c38c74b..1a3caf4 100755
--- a/hbase-connectors-assembly/src/main/assembly/hbase-connectors-bin.xml
+++ b/hbase-connectors-assembly/src/main/assembly/hbase-connectors-bin.xml
@@ -52,12 +52,22 @@
</moduleSets>
<files>
<file>
- <source>../LICENSE.txt</source>
- <outputDirectory>${file.separator}</outputDirectory>
+ <source>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</source>
+ <outputDirectory>.</outputDirectory>
+ <destName>LICENSE.txt</destName>
+ <lineEnding>unix</lineEnding>
</file>
<file>
- <source>../NOTICE.txt</source>
- <outputDirectory>${file.separator}</outputDirectory>
+ <source>${project.build.directory}/maven-shared-archive-resources/META-INF/NOTICE</source>
+ <outputDirectory>.</outputDirectory>
+ <destName>NOTICE.txt</destName>
+ <lineEnding>unix</lineEnding>
+ </file>
+ <file>
+ <source>${basedir}/src/main/resources/META-INF/LEGAL</source>
+ <outputDirectory>.</outputDirectory>
+ <destName>LEGAL</destName>
+ <lineEnding>unix</lineEnding>
</file>
<file>
<source>../README.md</source>
diff --git a/hbase-connectors-assembly/src/main/resources/supplemental-models.xml b/hbase-connectors-assembly/src/main/resources/supplemental-models.xml
new file mode 100644
index 0000000..4e2a7aa
--- /dev/null
+++ b/hbase-connectors-assembly/src/main/resources/supplemental-models.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<supplementalDataModels xmlns="http://maven.apache.org/supplemental-model/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
+<!-- this file is an extra supplement data model other than hbase-resource-bundle -->
+<!-- All of the below missing / ambiguous / full text license info verified at dependency source -->
+<!-- Dual licensed dependencies-->
+ <supplement>
+ <project>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ <licenses>
+ <license>
+ <name>CDDL 1.1</name>
+ <url>https://github.com/javaee/activation/blob/master/LICENSE.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+</supplementalDataModels>
diff --git a/pom.xml b/pom.xml
index 93bf757..4d9bc56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,6 +128,15 @@
<buildDate>${maven.build.timestamp}</buildDate>
<compileSource>1.8</compileSource>
<java.min.version>${compileSource}</java.min.version>
+ <!-- override on command line to have generated LICENSE files include
+ diagnostic info for verifying notice requirements -->
+ <license.debug.print.included>false</license.debug.print.included>
+ <license.bundles.dependencies>false</license.bundles.dependencies>
+ <license.bundles.logo>false</license.bundles.logo>
+ <license.bundles.bootstrap>false</license.bundles.bootstrap>
+ <license.bundles.jquery>false</license.bundles.jquery>
+ <buildnumber.maven.version>1.4</buildnumber.maven.version>
+
<maven.min.version>3.5.0</maven.min.version>
<hbase.version>2.4.9</hbase.version>
<exec.maven.version>1.6.0</exec.maven.version>
@@ -391,7 +400,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
- <version>1.4</version>
+ <version>${buildnumber.maven.version}</version>
<executions>
<execution>
<phase>validate</phase>