Example usage for org.apache.maven.project MavenProject getLicenses

List of usage examples for org.apache.maven.project MavenProject getLicenses

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getLicenses.

Prototype

public List<License> getLicenses() 

Source Link

Usage

From source file:aQute.bnd.maven.reporter.plugin.entries.mavenproject.CommonInfoPlugin.java

private List<LicenseDTO> extractLicenses(MavenProject project) {
    List<LicenseDTO> licenses = new LinkedList<>();
    if (project.getLicenses() != null) {
        project.getLicenses().forEach(l -> {
            LicenseDTO license = new LicenseDTO();
            license.description = l.getComments();
            license.name = l.getName();/*from   w  w  w  .j a v a2  s  .co  m*/
            license.link = l.getUrl();
            licenses.add(license);
        });
    }
    return !licenses.isEmpty() ? licenses : null;
}

From source file:com.ardoq.mavenImport.MavenUtil.java

public void addLicense(MavenProject project, Map<String, Object> fields) {
    List<License> licenses = project.getLicenses();
    if (!licenses.isEmpty()) {
        String licenseString = "";
        for (License license : licenses) {
            licenseString += license.getName() + ", ";
        }//w  w w .j a v  a 2  s .c  om
        licenseString = licenseString.substring(0, licenseString.length() - 2);
        fields.put("license", licenseString);
    }
}

From source file:com.ardoq.mavenImport.ProjectSync.java

private String buildProjectDescription(MavenProject project) {
    // TODO: add url, organization, developers, contributors, mailing lists, etc..

    String description = "";
    if (project.getDescription() != null && project.getDescription().trim().length() > 0) {
        description += "#Description\n\n" + project.getDescription();
    }/* www.j  av a2 s  . c  o m*/

    if (!project.getLicenses().isEmpty()) {
        description += "\nLicenses\n----\n\n";
        for (License license : project.getLicenses()) {
            description += " * " + license.getName() + "\n";
        }
    }

    if (!project.getDevelopers().isEmpty()) {
        description += "\nDevelopers\n----\n\n";
        for (Developer developer : project.getDevelopers()) {
            description += " * " + developer.getName() + " (" + developer.getEmail() + ")\n";
        }
    }

    return description;
}

From source file:com.cloudbees.maven.license.ProcessMojo.java

License:Apache License

public void execute() throws MojoExecutionException {
    if (disableCheck)
        return;//from   w  w  w .j  a v  a2 s.  co m

    GroovyShell shell = createShell(LicenseScript.class);

    List<LicenseScript> comp = parseScripts(script, shell);

    if (generateLicenseHtml != null && generateLicenseXml == null) {// we need XML to be able to generate HTML
        try {
            generateLicenseXml = File.createTempFile("license", "xml");
            generateLicenseXml.deleteOnExit();
        } catch (IOException e) {
            throw new MojoExecutionException("Failed to generate a temporary file", e);
        }
    }

    if (generateLicenseXml != null)
        comp.add((LicenseScript) shell.parse(getClass().getResourceAsStream("xmlgen.groovy"), "xmlgen.groovy"));

    if (generateLicenseHtml != null)
        comp.add((LicenseScript) shell.parse(getClass().getResourceAsStream("htmlgen.groovy"),
                "htmlgen.groovy"));

    if (inlineScript != null)
        comp.add((LicenseScript) shell.parse(inlineScript, "inlineScript"));

    for (LicenseScript s : comp) {
        s.project = project;
        s.mojo = this;
        s.run(); // setup
    }

    List<MavenProject> dependencies = new ArrayList<MavenProject>();

    // run against the project itself
    for (LicenseScript s : comp) {
        s.runCompleter(new CompleterDelegate(project, project));
    }
    dependencies.add(project);

    try {
        Map<Artifact, MavenProject> models = new HashMap<Artifact, MavenProject>();

        for (Artifact a : (Set<Artifact>) project.getArtifacts()) {
            Artifact pom = artifactFactory.createProjectArtifact(a.getGroupId(), a.getArtifactId(),
                    a.getVersion());
            MavenProject model = projectBuilder.buildFromRepository(pom,
                    project.getRemoteArtifactRepositories(), localRepository);
            models.put(a, model);
        }

        // filter them out
        for (LicenseScript s : comp) {
            s.runFilter(new FilterDelegate(models));
        }

        // filter out optional components
        for (Iterator<Entry<Artifact, MavenProject>> itr = models.entrySet().iterator(); itr.hasNext();) {
            Entry<Artifact, MavenProject> e = itr.next();
            if (e.getKey().isOptional())
                itr.remove();
        }

        for (MavenProject e : models.values()) {
            // let the completion script intercept and process the licenses
            for (LicenseScript s : comp) {
                s.runCompleter(new CompleterDelegate(e, project));
            }
        }

        dependencies.addAll(models.values());
    } catch (ProjectBuildingException e) {
        throw new MojoExecutionException("Failed to parse into dependencies", e);
    }

    if (requireCompleteLicenseInfo) {
        List<MavenProject> missing = new ArrayList<MavenProject>();
        for (MavenProject d : dependencies) {
            if (d.getLicenses().isEmpty())
                missing.add(d);
        }
        if (!missing.isEmpty()) {
            StringBuilder buf = new StringBuilder(
                    "The following dependencies are missing license information:\n");
            for (MavenProject p : missing) {
                buf.append("  " + p.getGroupId() + ':' + p.getArtifactId() + ':' + p.getVersion());
                for (p = p.getParent(); p != null; p = p.getParent())
                    buf.append(" -> " + p.getGroupId() + ':' + p.getArtifactId() + ':' + p.getVersion());
                buf.append('\n');
            }
            buf.append(
                    "\nAdd/update your completion script to fill them, or run with -Dlicense.disableCheck to bypass the check.");
            throw new MojoExecutionException(buf.toString());
        }
    }

    for (LicenseScript s : comp) {
        s.runGenerator(new GeneratorDelegate(dependencies));
    }

    if (attach) {
        if (generateLicenseXml != null)
            projectHelper.attachArtifact(project, "license.xml", null, generateLicenseXml);
        if (generateLicenseHtml != null)
            projectHelper.attachArtifact(project, "license.html", null, generateLicenseHtml);
    }
}

From source file:com.github.signed.sandboxes.maven.MyMojo.java

private void findLicenseInformation(Artifact artifact, File file)
        throws net.lingala.zip4j.exception.ZipException, IOException {
    getLog().info(artifact.getId());/*w  w  w .ja v  a2 s .c om*/

    MavenProject mavenProjectForArtifact = buildProjectFrom(artifact);
    List<License> licenses = mavenProjectForArtifact.getLicenses();

    boolean isCDDL = false;
    for (License license : licenses) {
        isCDDL = isCDDL || StringUtils.containsIgnoreCase(license.getName(), "cddl");
    }

    if (!isCDDL) {
        return;
    }

    String sub = artifact.getGroupId().replaceAll("\\.", "/") + "/" + artifact.getArtifactId() + "/"
            + artifact.getVersion();

    final File artifactDirectory = new File(outputDirectory, sub);
    FileUtils.forceMkdir(artifactDirectory);
    final SingleFileUnzip unzip = new SingleFileUnzip(artifact.getFile());

    zipDumper.dumpZipContent(file, new LegalRelevantFiles() {

        @Override
        public void licenseFile(FileHeader license) {
            getLog().info(license.getFileName());
            unzip.unzip(license, artifactDirectory);
        }

        @Override
        public void noticeFile(FileHeader notice) {
            getLog().info(notice.getFileName());
            unzip.unzip(notice, artifactDirectory);
        }
    });
}

From source file:com.googlecode.maven.licensevalidator.LicenseValidateMojo.java

License:Apache License

@Override
public void execute() throws MojoExecutionException {
    if (verbose) {
        getLog().info("Validating licenses");
    }//w  w w  .  j av  a2 s .  c  om

    final Set<Artifact> depArtifacts;
    if (includeTransitiveDependencies) {
        depArtifacts = project.getArtifacts();
    } else {
        depArtifacts = project.getDependencyArtifacts();
    }

    boolean someFailed = false;
    for (Artifact depArtifact : depArtifacts) {
        MavenProject depProject = null;
        try {
            depProject = projectBuilder.buildFromRepository(depArtifact, remoteRepositories, localRepository);
        } catch (ProjectBuildingException e) {
            throw new MojoExecutionException(
                    "Unable to build project: " + depArtifact.getDependencyConflictId(), e);
        }

        List<License> licenses = depProject.getLicenses();
        boolean failed = areLicensesBanned(depProject.getId(), licenses);
        someFailed |= failed;

        if (someFailed && failFast) {
            throw new MojoExecutionException("Failed license checks for dependency " + depProject.getId());
        }
    }

    if (someFailed) {
        throw new MojoExecutionException("Failed license checks for some dependencies");
    }
}

From source file:com.lewisd.maven.lint.rules.opensource.MissingLicenseRule.java

@Override
public void invoke(MavenProject mavenProject, Map<String, Object> models, ResultCollector resultCollector) {
    final List<License> licenses = mavenProject.getLicenses();

    if (licenses.isEmpty()) {
        InputLocation location = mavenProject.getOriginalModel().getLocation("licences");
        resultCollector.addViolation(mavenProject, this, "missing <licenses/> information",
                location == null ? getEmptyLocation(mavenProject) : location);
    } else {//from  w  w  w . j a v  a 2  s.  c o m
        for (License license : licenses) {
            if (StringUtils.isEmpty(license.getName())) {
                resultCollector.addViolation(mavenProject, this, "missing <name> in <license/> information",
                        license.getLocation(""));
            }
            if (StringUtils.isEmpty(license.getUrl())) {
                resultCollector.addViolation(mavenProject, this, "missing <url> in <license/> information",
                        license.getLocation(""));
            }
        }
    }
}

From source file:com.microfocus.plugins.attribution.datamodel.services.impl.DependenciesServiceImpl.java

@Override
public List<ProjectDependency> getProjectDependencies(MavenProject project, Settings settings,
        ArtifactRepository localRepository, DependencyOverride[] dependencyOverrides) {
    List<ProjectDependency> projectDependencies = new ArrayList<ProjectDependency>();
    Map<String, DependencyOverride> projectDependencyOverrides = new HashMap<String, DependencyOverride>();

    if (dependencyOverrides != null) {
        for (DependencyOverride dependencyOverride : dependencyOverrides) {
            projectDependencyOverrides.put(dependencyOverride.getForDependency(), dependencyOverride);
        }/* w  w  w. j a  va 2  s. c  om*/
    }

    RepositoryUtils repoUtils = new RepositoryUtils(log, wagonManager, settings, mavenProjectBuilder, factory,
            resolver, project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(),
            localRepository, repositoryMetadataManager);
    DependencyNode dependencyNode = resolveProject(project);
    Dependencies dependencies = new Dependencies(project, dependencyNode, classesAnalyzer);

    try {
        List<Artifact> alldeps = dependencies.getAllDependencies();

        if (log.isInfoEnabled()) {
            System.out.print("[INFO] Reading dependency information from available repositories.");
        }

        for (Artifact artifact : alldeps) {
            MavenProject pluginProject = mavenProjectBuilder.buildFromRepository(artifact,
                    project.getRemoteArtifactRepositories(), localRepository);
            MavenProject artifactProject = repoUtils.getMavenProjectFromRepository(artifact);

            String projectUrl = pluginProject.getUrl();
            List<ProjectDependencyLicense> licenses = DependencyUtils
                    .toProjectLicenses(artifactProject.getLicenses());
            List<String> downloadUrls = new ArrayList<String>();

            for (ArtifactRepository artifactRepository : artifactProject.getRemoteArtifactRepositories()) {
                String downloadUrl = repoUtils.getDependencyUrlFromRepository(artifact, artifactRepository);
                if (dependencyExistsInRepo(repoUtils, artifactRepository, artifact)) {
                    downloadUrls.add(downloadUrl);
                }

                if (log.isInfoEnabled()) {
                    System.out.print('.');
                }
            }

            DependencyOverride dependencyOverride = projectDependencyOverrides
                    .get(artifact.getGroupId() + ":" + artifact.getArtifactId());
            if (dependencyOverride != null) {
                if (StringUtils.isNotBlank(dependencyOverride.getProjectUrl())) {
                    projectUrl = dependencyOverride.getProjectUrl();
                }

                if (StringUtils.isNotBlank(dependencyOverride.getDownloadUrl())) {
                    downloadUrls = Arrays.asList(dependencyOverride.getDownloadUrl());
                }

                if (dependencyOverride.getLicense() != null) {
                    licenses = Arrays.asList(dependencyOverride.getLicense());
                }
            }

            String name = StringUtils.defaultIfBlank(artifactProject.getName(), artifact.getArtifactId());

            ProjectDependency dependency = new ProjectDependency();
            dependency.setGroupId(artifact.getGroupId());
            dependency.setArtifactId(artifact.getArtifactId());
            dependency.setVersion(artifact.getVersion());
            dependency.setProjectUrl(projectUrl);
            dependency.setType(artifact.getType());
            dependency.setLicenses(licenses);
            dependency.setName(name);
            dependency.setDownloadUrls(downloadUrls);

            projectDependencies.add(dependency);
        }

        System.out.println(); // End with a carriage return, so normal logging can continue
    } catch (ProjectBuildingException e) {
        throw new DataModelException("An error occurred building the list of project dependencies.", e);
    }

    Collections.sort(projectDependencies, byName());

    return projectDependencies;
}

From source file:com.puresoltechnologies.maven.plugins.license.AbstractValidationMojo.java

/**
 * Loads the artifact recursively./*from   ww  w  . ja v a2  s.c o m*/
 * 
 * @param artifact
 * @param recursive
 *            specified whether all dependencies should be loaded
 *            recursively.
 * @param skipTestScope
 *            specified whether to skip test scoped artifacts or not.
 * @return A {@link DependencyTree} object is returned.
 * @throws MojoExecutionException
 *             is thrown if anything unexpected goes wrong.
 */
private DependencyTree loadArtifacts(int depth, DependencyTree parentDependencyTree, Artifact artifact,
        boolean recursive, boolean skipTestScope, boolean skipProvidedScope, boolean skipOptionals)
        throws MojoExecutionException {
    Log log = getLog();
    MavenProject parentArtifactProject;
    try {
        parentArtifactProject = mavenProjectBuilder.buildFromRepository(artifact, remoteArtifactRepositories,
                localRepository);
    } catch (ProjectBuildingException e) {
        log.warn("Could not load artifacts recursively. For artifact '" + ArtifactUtilities.toString(artifact)
                + "' the project creation failed.", e);
        return null;
    }
    @SuppressWarnings("unchecked")
    List<Dependency> dependencies = parentArtifactProject.getDependencies();
    @SuppressWarnings("unchecked")
    List<License> licenses = parentArtifactProject.getLicenses();
    DependencyTree dependencyTree = new DependencyTree(artifact, licenses);
    if (parentDependencyTree != null) {
        parentDependencyTree.addDependency(dependencyTree);
    }
    if ((dependencies != null) && ((recursive) || (artifact == mavenProject.getArtifact()))) {
        for (Dependency dependency : dependencies) {
            StringBuffer buffer = new StringBuffer();
            if (log.isDebugEnabled()) {
                for (int i = 0; i < depth; i++) {
                    buffer.append("    ");
                }
                buffer.append("\\-> ");
                log.debug(buffer.toString() + ArtifactUtilities.toString(dependency));
            }
            if (skipTestScope && Artifact.SCOPE_TEST.equals(dependency.getScope())) {
                if (log.isDebugEnabled()) {
                    log.debug(buffer.toString() + " >> test scope is skipped");
                }
                continue;
            }
            if (skipProvidedScope && Artifact.SCOPE_PROVIDED.equals(dependency.getScope())) {
                if (log.isDebugEnabled()) {
                    log.debug(buffer.toString() + " >> provided scope is skipped");
                }
                continue;
            }
            if (skipOptionals && dependency.isOptional()) {
                if (log.isDebugEnabled()) {
                    log.debug(buffer.toString() + " >> optional is skipped");
                }
                continue;
            }
            if (hasCycle(dependencyTree, dependency)) {
                if (log.isDebugEnabled()) {
                    log.debug(buffer.toString() + " >> cylce found and needs to be skipped");
                }
                continue;
            }
            Artifact dependencyArtifact = DependencyUtilities.buildArtifact(artifact, dependency);
            loadArtifacts(depth + 1, dependencyTree, dependencyArtifact, recursive, skipTestScope,
                    skipProvidedScope, skipOptionals);
        }
    }
    return dependencyTree;
}

From source file:com.soebes.maven.plugins.licenseverifier.AbstractLicenseVerifierPlugIn.java

License:Apache License

/**
 * Get all their dependencies and put the information
 * into the intermediate list of licenses.
 *
 * @param depArtifacts/*from w  ww .j av  a 2s.  com*/
 * @throws MojoExecutionException
 */
protected List<LicenseInformation> getDependArtifacts(Set<?> depArtifacts) throws MojoExecutionException {

    List<LicenseInformation> licenseInformations = new ArrayList<LicenseInformation>();

    for (Iterator<?> depArtIter = depArtifacts.iterator(); depArtIter.hasNext();) {
        Artifact depArt = (Artifact) depArtIter.next();

        LicenseInformation li = new LicenseInformation();

        //store the artifact about which the following license information
        //will be extracted.
        li.setArtifact(depArt);
        MavenProject depProject = null;
        try {
            depProject = projectBuilder.buildFromRepository(depArt, remoteRepositories, localRepository, true);
        } catch (ProjectBuildingException e) {
            throw new MojoExecutionException("Unable to build project: " + depArt.getDependencyConflictId(), e);
        }

        //Set the project of the current license information
        li.setProject(depProject);

        //Add all licenses of the particular artifact to it's other informations.
        List<?> licenses = depProject.getLicenses();
        Iterator<?> licenseIter = licenses.iterator();
        while (licenseIter.hasNext()) {
            License license = (License) licenseIter.next();
            li.addLicense(license);
        }
        licenseInformations.add(li);
    }
    return licenseInformations;
}