1 package org.nuiton.config; 2 3 /* 4 * #%L 5 * Nuiton Maven Report Plugin 6 * %% 7 * Copyright (C) 2012 - 2016 CodeLutin, Tony Chemit 8 * %% 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * #L% 23 */ 24 25 import org.apache.maven.plugins.annotations.Mojo; 26 import org.apache.maven.plugins.annotations.Parameter; 27 import org.apache.maven.plugins.annotations.ResolutionScope; 28 29 import java.util.HashSet; 30 import java.util.List; 31 32 /** 33 * Generates a report for declarated application config via the 34 * {@link ApplicationConfigProvider} mecanism. 35 * 36 * For each configuration, you can find all his options and actions. 37 * 38 * @author Tony - chemit@codelutin.com 39 * @since 2.6.10 40 */ 41 @Mojo(name = "config-report", 42 requiresProject = true, requiresReports = true, 43 requiresDependencyResolution = ResolutionScope.RUNTIME) 44 public class ApplicationConfigReport extends AbstractApplicationConfigReport { 45 46 /** 47 * List of all class-path elements. 48 * 49 * @since 2.6.10 50 */ 51 @Parameter(property = "project.runtimeClasspathElements", 52 required = true, readonly = true) 53 protected List<String> runtimeClasspathElements; 54 55 @Override 56 protected ClassLoader createClassLoader() { 57 return createClassLoader(new HashSet<String>(runtimeClasspathElements)); 58 } 59 60 }