Interface ThirdPartyHelper

All Known Implementing Classes:
DefaultThirdPartyHelper

public interface ThirdPartyHelper
Helper class that provides common functionality required by both the mojos and the reports.
Since:
1.1
Author:
tchemit dev@tchemit.fr
  • Method Details

    • loadDependencies

      SortedMap<String,org.apache.maven.project.MavenProject> loadDependencies(MavenProjectDependenciesConfigurator configuration, ResolvedProjectDependencies dependencyArtifacts)
      Load all dependencies given the configuration as MavenProject.
      Parameters:
      configuration - the configuration of the project and include/exclude to do on its dependencies
      dependencyArtifacts - the dependency artifacts of the project
      Returns:
      the dictionary of loaded dependencies as MavenProject indexed by their gav.
    • loadThirdPartyDescriptorForUnsafeMapping

      SortedProperties loadThirdPartyDescriptorForUnsafeMapping(Set<org.apache.maven.artifact.Artifact> topLevelDependencies, SortedSet<org.apache.maven.project.MavenProject> unsafeDependencies, Collection<org.apache.maven.project.MavenProject> projects, LicenseMap licenseMap) throws ThirdPartyToolException, IOException
      Try to load maximum of unsafe license mapping using third-party descriptors (from maven repositories) and return it.
      Parameters:
      topLevelDependencies - project dependencies to scan for .license.properties files.
      unsafeDependencies - all unsafe dependencies
      projects - all projects where to read third parties descriptors
      licenseMap - license map where to store new licenses
      Returns:
      the map of loaded missing from the remote missing third party files
      Throws:
      ThirdPartyToolException - if any
      IOException - if any
    • loadUnsafeMapping

      SortedProperties loadUnsafeMapping(LicenseMap licenseMap, File missingFile, String missingFileUrl, SortedMap<String,org.apache.maven.project.MavenProject> projectDependencies) throws IOException, org.apache.maven.plugin.MojoExecutionException
      Load unsafe mapping for all dependencies with no license in their pom, we will load the missing file if it exists and also add all dependencies from licenseMap with no license known.
      Parameters:
      licenseMap - the license map of all dependencies.
      missingFile - location of an optional missing fille (says where you fix missing license).
      missingFileUrl - location of an optional missing file extension that can be downloaded from some resource hoster and that will be merged with the content of the missing file.
      projectDependencies - project dependencies used to detect which dependencies in the missing file are unknown to the project.
      Returns:
      the map of all unsafe mapping
      Throws:
      IOException - if could not load missing file
      org.apache.maven.plugin.MojoExecutionException
    • createLicenseMap

      LicenseMap createLicenseMap(SortedMap<String,org.apache.maven.project.MavenProject> dependencies)
      Creates a license map from given dependencies.
      Parameters:
      dependencies - dependencies to store in the license map
      Returns:
      the created license map fro the given dependencies
    • attachThirdPartyDescriptor

      void attachThirdPartyDescriptor(File file)
      Attach the third-party descriptor to the build.
      Parameters:
      file - location of the third-party descriptor
    • getProjectsWithNoLicense

      SortedSet<org.apache.maven.project.MavenProject> getProjectsWithNoLicense(LicenseMap licenseMap)
      Obtains all dependencies with no license form the given license map.
      Parameters:
      licenseMap - license map where to find
      Returns:
      all dependencies with no license
    • getArtifactCache

      SortedMap<String,org.apache.maven.project.MavenProject> getArtifactCache()
      Obtains the cache of loaded dependencies indexed by their gav.
      Returns:
      the cache of loaded dependencies indexed by their gav
    • createUnsafeMapping

      SortedProperties createUnsafeMapping(LicenseMap licenseMap, File missingFile, String missingFileUrl, boolean useRepositoryMissingFiles, SortedSet<org.apache.maven.project.MavenProject> unsafeDependencies, SortedMap<String,org.apache.maven.project.MavenProject> projectDependencies, Set<org.apache.maven.artifact.Artifact> dependencyArtifacts) throws org.apache.maven.project.ProjectBuildingException, IOException, ThirdPartyToolException, org.apache.maven.plugin.MojoExecutionException
      Loads unsafe mappings. Unsafe mappings are files that supply license metadata for artifacts that lack it in their POM models. It's called 'unsafe' because its safer to see actual metadata.

      There are three sources of this data:

      • the 'missing' file.
      • additional property files attached to artifacts; these have classifier=third-party and are expected to contain the license information the base artifact's dependencies. These are controlled by a parameter,
      • declared dependencies of type license.properties. These are in the same format, and provide global information.
      Parameters:
      licenseMap - license map to read
      missingFile - location of an optional missing file
      missingFileUrl - location of an optional missing file extension that can be downloaded from some resource hoster and that will be merged with the content of the missing file.
      useRepositoryMissingFiles - flag to use or not third-party descriptors via the 'third-party' classifier from maven repositories
      unsafeDependencies - all unsafe dependencies
      projectDependencies - all project dependencies
      dependencyArtifacts - all project dependency artifacts
      Returns:
      the loaded unsafe mapping
      Throws:
      org.apache.maven.project.ProjectBuildingException - if could not build some dependencies maven project
      IOException - if could not load missing file
      ThirdPartyToolException - if pb with third-party tool
      org.apache.maven.plugin.MojoExecutionException
    • mergeLicenses

      void mergeLicenses(List<String> licenseMerges, LicenseMap licenseMap) throws org.apache.maven.plugin.MojoFailureException
      Merges licenses.
      Parameters:
      licenseMerges - list of license mergeables (each entry is a list of licenses separated by |, the first one is the license to use for all the others of the entry).
      licenseMap - license map to merge
      Throws:
      org.apache.maven.plugin.MojoFailureException - if there is a bad license merge definition (says for example two license with same name)