diff --git a/pom.xml b/pom.xml index ca9cc2b49..4c32f37c4 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,7 @@ + Curtis Rueden @@ -106,8 +107,7 @@ 3.5.4 - 7 - 1.7 + 8 1.3 @@ -245,12 +245,6 @@ provided - - org.codehaus.plexus - plexus-component-annotations - ${plexusComponentVersion} - - org.codehaus.plexus plexus-utils @@ -322,11 +316,6 @@ build-helper-maven-plugin 3.4.0 - - org.codehaus.plexus - plexus-component-metadata - ${plexusComponentVersion} - org.apache.maven.plugins maven-javadoc-plugin @@ -341,8 +330,8 @@ - + org.apache.maven.plugins maven-checkstyle-plugin @@ -381,15 +370,8 @@ - org.codehaus.plexus - plexus-component-metadata - - - - generate-metadata - - - + org.eclipse.sisu + sisu-maven-plugin diff --git a/src/main/java/org/codehaus/mojo/license/api/DefaultThirdPartyTool.java b/src/main/java/org/codehaus/mojo/license/api/DefaultThirdPartyTool.java index 6fd7514ce..6031a9776 100644 --- a/src/main/java/org/codehaus/mojo/license/api/DefaultThirdPartyTool.java +++ b/src/main/java/org/codehaus/mojo/license/api/DefaultThirdPartyTool.java @@ -22,6 +22,11 @@ * #L% */ +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +import javax.inject.Singleton; + import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; @@ -48,7 +53,6 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.License; -import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; import org.codehaus.mojo.license.LicenseMojoUtils; @@ -57,8 +61,7 @@ import org.codehaus.mojo.license.utils.MojoHelper; import org.codehaus.mojo.license.utils.SortedProperties; import org.codehaus.mojo.license.utils.UrlRequester; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; +import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.artifact.DefaultArtifactType; @@ -76,7 +79,8 @@ * @author Tony Chemit * @version $Id$ */ -@Component( role = ThirdPartyTool.class, hint = "default" ) +@Named +@Singleton public class DefaultThirdPartyTool implements ThirdPartyTool { @@ -112,22 +116,22 @@ public class DefaultThirdPartyTool /** * Maven Artifact Resolver repoSystem */ - @Requirement - private org.eclipse.aether.RepositorySystem aetherRepoSystem; + @Inject + private RepositorySystem aetherRepoSystem; - @Requirement - private MavenSession mavenSession; + @Inject + private Provider mavenSessionProvider; /** * Maven ProjectHelper. */ - @Requirement + @Inject private MavenProjectHelper projectHelper; /** * freeMarker helper. */ - private FreeMarkerHelper freeMarkerHelper = FreeMarkerHelper.newDefaultHelper(); + private final FreeMarkerHelper freeMarkerHelper = FreeMarkerHelper.newDefaultHelper(); /** * Maven project comparator. @@ -247,16 +251,13 @@ public SortedProperties loadThirdPartyDescriptorsForUnsafeMapping( Set } } + try { loadGlobalLicenses( topLevelDependencies, remoteRepositories, unsafeDependencies, licenseMap, unsafeProjects, result ); } - catch ( ArtifactNotFoundException e ) - { - throw new ThirdPartyToolException( "Failed to load global licenses", e ); - } - catch ( ArtifactResolutionException e ) + catch ( ArtifactNotFoundException | ArtifactResolutionException e ) { throw new ThirdPartyToolException( "Failed to load global licenses", e ); } @@ -312,21 +313,11 @@ public File resolvThirdPartyDescriptor( MavenProject project, List artifactCache, String encoding, File missingFile, - String missingFileUrl ) throws IOException, MojoExecutionException - { + String missingFileUrl ) throws IOException { Map snapshots = new HashMap<>(); synchronized ( artifactCache ) @@ -712,7 +702,7 @@ private void loadOneGlobalSet( SortedSet unsafeDependencies, Licen Map unsafeProjects, Artifact dep, List remoteRepositories, SortedProperties result ) - throws IOException, ArtifactNotFoundException, ArtifactResolutionException + throws IOException, ArtifactResolutionException { File propFile = resolveArtifact( dep.getGroupId(), dep.getArtifactId(), dep.getVersion(), dep.getType(), dep.getClassifier(), remoteRepositories ); @@ -745,15 +735,12 @@ private void loadOneGlobalSet( SortedSet unsafeDependencies, Licen /** * @param project not null - * @param localRepository not null - * @param repositories not null - * @return the resolved site descriptor - * @throws IOException if any + * @param remoteRepositories not null + * @return the resolved third party descriptor * @throws ArtifactResolutionException if any - * @throws ArtifactNotFoundException if any */ private File resolveThirdPartyDescriptor( MavenProject project, List remoteRepositories ) - throws IOException, ArtifactResolutionException, ArtifactNotFoundException + throws ArtifactResolutionException { File result; try @@ -792,7 +779,7 @@ private File resolveThirdPartyDescriptor( MavenProject project, List mavenSessionProvider; // CHECKSTYLE_OFF: MethodLength /** @@ -123,7 +127,7 @@ public SortedMap loadProjectDependencies( ResolvedProjectD } } ProjectBuildingRequest projectBuildingRequest - = new DefaultProjectBuildingRequest( mavenSession.getProjectBuildingRequest() ) + = new DefaultProjectBuildingRequest( mavenSessionProvider.get().getProjectBuildingRequest() ) .setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ) //We already have the relevant part of the dependency tree //Re-resolving risks including e.g. excluded artifacts diff --git a/src/main/java/org/codehaus/mojo/license/download/LicensedArtifactResolver.java b/src/main/java/org/codehaus/mojo/license/download/LicensedArtifactResolver.java index f5896f9aa..dd86f9fbf 100644 --- a/src/main/java/org/codehaus/mojo/license/download/LicensedArtifactResolver.java +++ b/src/main/java/org/codehaus/mojo/license/download/LicensedArtifactResolver.java @@ -22,6 +22,11 @@ * #L% */ +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +import javax.inject.Singleton; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,8 +46,6 @@ import org.codehaus.mojo.license.api.MavenProjectDependenciesConfigurator; import org.codehaus.mojo.license.api.ResolvedProjectDependencies; import org.codehaus.mojo.license.download.LicensedArtifact.Builder; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,7 +55,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = LicensedArtifactResolver.class, hint = "default" ) +@Named +@Singleton public class LicensedArtifactResolver { private static final Logger LOG = LoggerFactory.getLogger( LicensedArtifactResolver.class ); @@ -66,23 +70,19 @@ public class LicensedArtifactResolver /** * Project builder. */ - @Requirement + @Inject private ProjectBuilder mavenProjectBuilder; - @Requirement - private MavenSession mavenSession; + @Inject + private Provider mavenSessionProvider; // CHECKSTYLE_OFF: MethodLength /** * For a given {@code project}, obtain the universe of its dependencies after applying transitivity and filtering * rules given in the {@code configuration} object. Result is given in a map where keys are unique artifact id * - * @param dependencies the project dependencies * @param configuration the configuration - * @param localRepository local repository used to resolv dependencies * @param remoteRepositories remote repositories used to resolv dependencies - * @param cache a optional cache where to keep resolved dependencies - * @return the map of resolved dependencies indexed by their unique id. * @see MavenProjectDependenciesConfigurator */ public void loadProjectDependencies( ResolvedProjectDependencies artifacts, @@ -114,7 +114,7 @@ public void loadProjectDependencies( ResolvedProjectDependencies artifacts, final Map includeArtifacts = new HashMap<>(); ProjectBuildingRequest projectBuildingRequest - = new DefaultProjectBuildingRequest( mavenSession.getProjectBuildingRequest() ) + = new DefaultProjectBuildingRequest( mavenSessionProvider.get().getProjectBuildingRequest() ) .setRemoteRepositories( remoteRepositories ) .setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ) .setResolveDependencies( false ) diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/AptFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/AptFileHeaderTransformer.java index 439141f05..c7655e51b 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/AptFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/AptFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for apt format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "apt" ) +@Named("apt") +@Singleton public class AptFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/FreeMarkerFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/FreeMarkerFileHeaderTransformer.java index 2a9ae7626..5476d9bdb 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/FreeMarkerFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/FreeMarkerFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for freemarker format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "ftl" ) +@Named("ftl") +@Singleton public class FreeMarkerFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/HtmlFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/HtmlFileHeaderTransformer.java index efd2430ca..9b1908ee2 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/HtmlFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/HtmlFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for html format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.9 */ -@Component( role = FileHeaderTransformer.class, hint = "html" ) +@Named("html") +@Singleton public class HtmlFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/JavaFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/JavaFileHeaderTransformer.java index 199d5a72f..dd13e6f09 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/JavaFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/JavaFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for java format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "java" ) +@Named("java") +@Singleton public class JavaFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/JspFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/JspFileHeaderTransformer.java index 143762033..4ff9e58d1 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/JspFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/JspFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for jsp format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "jsp" ) +@Named("jsp") +@Singleton public class JspFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/MySqlFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/MySqlFileHeaderTransformer.java index b2a4e7d3b..751d0fe35 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/MySqlFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/MySqlFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for mysql format. @@ -33,7 +34,8 @@ * @author tchemit dev@tchemit.fr * @since 1.4 */ -@Component( role = FileHeaderTransformer.class, hint = "mysql" ) +@Named("mysql") +@Singleton public class MySqlFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/PhpFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/PhpFileHeaderTransformer.java index 6f2177f80..7e5dec650 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/PhpFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/PhpFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for PHP format. @@ -31,7 +32,8 @@ * @author kmorin kmorin@codelutin.com * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "php" ) +@Named("php") +@Singleton public class PhpFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/PropertiesFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/PropertiesFileHeaderTransformer.java index 044d09a84..54380c906 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/PropertiesFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/PropertiesFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for properties format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "properties" ) +@Named("properties") +@Singleton public class PropertiesFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/RstFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/RstFileHeaderTransformer.java index 2e575900d..4457cf984 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/RstFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/RstFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for apt format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "rst" ) +@Named("rst") +@Singleton public class RstFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/SqlFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/SqlFileHeaderTransformer.java index 431afa6a8..b56e9f949 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/SqlFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/SqlFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for sql format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "sql" ) +@Named("sql") +@Singleton public class SqlFileHeaderTransformer extends AbstractFileHeaderTransformer { diff --git a/src/main/java/org/codehaus/mojo/license/header/transformer/XmlFileHeaderTransformer.java b/src/main/java/org/codehaus/mojo/license/header/transformer/XmlFileHeaderTransformer.java index 0c9c26fb3..0bee8abd8 100644 --- a/src/main/java/org/codehaus/mojo/license/header/transformer/XmlFileHeaderTransformer.java +++ b/src/main/java/org/codehaus/mojo/license/header/transformer/XmlFileHeaderTransformer.java @@ -22,7 +22,8 @@ * #L% */ -import org.codehaus.plexus.component.annotations.Component; +import javax.inject.Named; +import javax.inject.Singleton; /** * Implementation of {@link FileHeaderTransformer} for xml format. @@ -30,7 +31,8 @@ * @author tchemit dev@tchemit.fr * @since 1.0 */ -@Component( role = FileHeaderTransformer.class, hint = "xml" ) +@Named("xml") +@Singleton public class XmlFileHeaderTransformer extends AbstractFileHeaderTransformer {