| <#-- |
| 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') > -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> |