[NO ISSUE] Exclude licenses that are exclusively shadowed

Change-Id: I19eb0000e2977e85293fd7c2e67768a218062fe9
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17302
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
diff --git a/asterixdb/src/main/licenses/templates/asterix-license.ftl b/asterixdb/src/main/licenses/templates/asterix-license.ftl
index 434ce44..f9c969e 100644
--- a/asterixdb/src/main/licenses/templates/asterix-license.ftl
+++ b/asterixdb/src/main/licenses/templates/asterix-license.ftl
@@ -34,8 +34,11 @@
 <#list licenseMap as e>
    <#assign licenseUrl = e.getKey()/>
    <#assign entry = e.getValue()/>
-   <#assign projects = entry.projects/>
+   <#assign projects = entry.nonShadowedProjects/>
    <#assign license = entry.getLicense()/>
+   <#if projects?size == 0>
+     <#continue/>
+   </#if>
    <#if projects?size == 1>
    Component:
      <#assign isare = "is"/>
@@ -44,9 +47,6 @@
      <#assign isare = "are"/>
    </#if>
    <#list projects as p>
-     <#if p.shadowed>
-       <#continue/>
-     </#if>
        * ${p.name} (${p.groupId}:${p.artifactId}:${p.version})
      <#list p.locations as loc>
          - ${loc}${p.jarName}
diff --git a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/project/LicensedProjects.java b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/project/LicensedProjects.java
index f6f9f32..31b4a86 100644
--- a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/project/LicensedProjects.java
+++ b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/project/LicensedProjects.java
@@ -21,6 +21,7 @@
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
+import java.util.function.Predicate;
 
 import org.apache.hyracks.maven.license.LicenseSpec;
 
@@ -51,6 +52,11 @@
         return projects;
     }
 
+    public SortedSet<Project> getNonShadowedProjects() {
+        return projects.stream().filter(Predicate.not(Project::isShadowed))
+                .collect(() -> new TreeSet<>(Project.PROJECT_COMPARATOR), TreeSet::add, TreeSet::addAll);
+    }
+
     public void addProject(Project project) {
         projects.add(project);
     }