blob: 4e3e209be768461ca8382d46c2fdbd0d2d379847 [file] [log] [blame]
<#--
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.
-->
<#--
#%L
License Maven Plugin
%%
Copyright (C) 2012 Codehaus, Tony Chemit
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Lesser Public License for more details.
You should have received a copy of the GNU General Lesser Public
License along with this program. If not, see
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
<#-- Format artifact "name (groupId:artifactId:version - url)" -->
<#function artifactFormat artifact>
<#if artifact.name?index_of('Unnamed') &gt; -1>
<#return artifact.artifactId + " (" + artifact.groupId + ":" + artifact.artifactId + ":" + artifact.version + " - " + (artifact.url!"no url defined") + ")">
<#else>
<#return artifact.name + " (" + artifact.groupId + ":" + artifact.artifactId + ":" + artifact.version + " - " + (artifact.url!"no url defined") + ")">
</#if>
</#function>
<#-- Create a key from provided licenses list, ordered alphabetically: "license A, license B, license C" -->
<#function licensesKey licenses>
<#local result = "">
<#list licenses?sort as license>
<#if license?contains("Apache License, Version 2.0")><#return "Apache License Version 2.0"></#if><#-- FIXME TODO overriding mapping-->
<#if license?lower_case?contains("apache")><#return license></#if>
<#if license?contains("Eclipse Public License")><#return license></#if>
<#if license?contains("Common Development and Distribution License")><#return license></#if>
<#local result=result + ", " + license>
</#list>
<#return result?substring(2)>
</#function>
<#-- Aggregate dependencies map for generated license key (support for multi-license) and convert artifacto to string -->
<#function aggregateLicenses dependencies>
<#assign aggregate = {}>
<#list dependencyMap as entry>
<#assign project = artifactFormat(entry.getKey())/>
<#assign licenses = entry.getValue()/>
<#assign key = licensesKey(licenses)/>
<#if aggregate[key]?? >
<#assign replacement = aggregate[key] + [project] />
<#assign aggregate = aggregate + {key:replacement} />
<#else>
<#assign aggregate = aggregate + {key:[project]} />
</#if>
</#list>
<#return aggregate>
</#function>
<#if dependencyMap?size == 0>
The project has no dependencies.
<#else>
<#assign aggregate = aggregateLicenses(dependencyMap)>
<#-- Print sorted aggregate licenses -->
<#list aggregate?keys?sort as licenses>
<#assign projects = aggregate[licenses]/>
${licenses}
<#-- Print sorded projects -->
<#list projects?sort as project>
* ${project}
</#list>
</#list>
</#if>