ASTERIXDB-1105 - LICENSE per submodule

This is a good part of what we need to have a specific set of
dependencies per binary assembly. The main key here is using the
maven remote resources plugin, and supplemental resources to
fill in info from the POM of dependencies where it is lacking.
For things that aren't described in Maven dependencies,
like Javascript files, they are added as LICENSE fragments
that get included in binary assemblies.

Change-Id: I2a6c4fb809b6fcad578007b8f48bf8bce179cd83
Reviewed-on: https://asterix-gerrit.ics.uci.edu/520
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <imaxon@apache.org>
diff --git a/pom.xml b/pom.xml
index 0050275..9841913 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,7 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <root.dir>${basedir}</root.dir>
     <jvm.extraargs />
     <!-- Definition of tests in various categories which may be excluded -->
     <hanging.pregelix.tests>**/pregelix/**/FailureRecovery*.java</hanging.pregelix.tests>
@@ -112,7 +113,7 @@
         <version>0.11</version>
         <executions>
             <execution>
-                <phase>verify</phase>
+                <phase>validate</phase>
                 <goals>
                     <goal>check</goal>
                 </goals>
@@ -141,33 +142,35 @@
               <familyName>Apache License Version 2.0</familyName>
             </licenseFamily>
           </licenseFamilies>
+          <excludeSubProjects>false</excludeSubProjects>
           <excludes>
-           <exclude>**/algebricks-tests/src/test/resources/results/**</exclude>
-           <exclude>**/javascript/flot/*.js</exclude>
-           <exclude>**/javascript/jsplumb/*.js</exclude>
-           <exclude>**/javascript/jquery/*.js</exclude>
-           <exclude>**/javascript/adminconsole/*.js</exclude>
-           <exclude>**/stylesheet/jquery-ui/**</exclude>
-           <exclude>**/hyracks-dist/src/main/resources/conf/**</exclude>
-           <exclude>**/src/test/resources/data/**</exclude>
-           <exclude>**/src/test/resources/results/**</exclude>
-           <exclude>**/src/test/resources/expected/**</exclude>
-           <exclude>**/testcases/*.piglet</exclude>
-           <exclude>**/data/**/*.txt</exclude>
-           <exclude>**/data/**/*.tbl</exclude>
-           <exclude>**/data/**/*.ddl</exclude>
-           <exclude>**/data/**/*.tsv</exclude>
-           <exclude>**/actual/conf.xml</exclude>
-           <exclude>**/actual/customer_result/part-*</exclude>
-           <exclude>**/src/main/resources/conf/*</exclude>
-           <exclude>**/data/dfs/**</exclude>
-           <exclude>**/invIndex*/**</exclude>
-           <exclude>**/*.job</exclude>
-           <exclude>**/*.conf</exclude>
-           <exclude>**/src/main/resources/*.cleaned</exclude>
-           <exclude>**/ClusterControllerService/**</exclude>
-           <exclude>**/output/**</exclude>
+           <exclude>**/target/**</exclude>
            <exclude>**/*.iml</exclude>
+           <exclude>algebricks/algebricks-examples/piglet-example/testcases/*.piglet</exclude>
+           <exclude>algebricks/algebricks-tests/ClusterControllerService/logs/jobs/*.log</exclude>
+           <exclude>algebricks/algebricks-tests/data/simple/*.tbl</exclude>
+           <exclude>algebricks/algebricks-tests/data/tpch0.001/*.tbl</exclude>
+           <exclude>algebricks/algebricks-tests/data/tpch0.001/tpch.ddl</exclude>
+           <exclude>algebricks/algebricks-tests/src/test/resources/results/scanMicroSortWrite.out</exclude>
+           <exclude>ClusterControllerService/logs/jobs/*.log</exclude>
+           <exclude>hyracks/hyracks-client/ClusterControllerService/logs/jobs/*.log</exclude>
+           <exclude>hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/flot/*.js</exclude>
+           <exclude>hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/jsplumb/jquery.jsPlumb-1.3.5-all-min.js</exclude>
+           <exclude>hyracks/hyracks-dist/src/main/resources/conf/master</exclude>
+           <exclude>hyracks/hyracks-dist/src/main/resources/conf/slaves</exclude>
+           <exclude>hyracks/hyracks-examples/hyracks-integration-tests/data/*.txt</exclude>
+           <exclude>hyracks/hyracks-examples/hyracks-integration-tests/data/tpch0.001/*.tbl</exclude>
+           <exclude>hyracks/hyracks-examples/hyracks-integration-tests/data/tpch0.001/tpch.ddl</exclude>
+           <exclude>hyracks/hyracks-examples/hyracks-integration-tests/data/wordcount.tsv</exclude>
+           <exclude>hyracks/hyracks-examples/text-example/textserver/data/*.txt</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/actual/conf.xml</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/actual/customer_result/part-0</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/build/test/data/dfs/**</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/ClusterControllerService/logs/jobs/*.log</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/src/test/resources/data/customer.tbl</exclude>
+           <exclude>hyracks/hyracks-hdfs/hyracks-hdfs-core/src/test/resources/expected/part-0</exclude>
+           <exclude>hyracks/hyracks-storage-am-common/src/main/resources/dist.all.first.cleaned</exclude>
+           <exclude>hyracks/hyracks-storage-am-common/src/main/resources/dist.all.last.cleaned</exclude>
       </excludes>
         </configuration>
       </plugin>
@@ -217,6 +220,49 @@
               </execution>
           </executions>
       </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>2.7</version>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>${root.dir}/src/main/appended-resources</directory>
+                  <!-- <filtering>true</filtering> -->
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-remote-resources-plugin</artifactId>
+          <executions>
+              <execution>
+                  <goals>
+                      <goal>process</goal>
+                  </goals>
+                  <configuration>
+                      <resourceBundles combine.children="append">
+                          <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                          <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
+                      </resourceBundles>
+                  </configuration>
+              </execution>
+          </executions>
+      </plugin>
+      <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>