All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.axway.grapes.maven.report.ModuleBuilder Maven / Gradle / Ivy

package org.axway.grapes.maven.report;

import org.apache.maven.model.License;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.axway.grapes.commons.datamodel.Artifact;
import org.axway.grapes.commons.datamodel.Dependency;
import org.axway.grapes.commons.datamodel.Module;
import org.axway.grapes.maven.resolver.ArtifactResolver;
import org.axway.grapes.maven.resolver.LicenseResolver;

import java.util.List;

/**
 * Data GrapesTranslator Implementation
 *
 * 

Ensures the transformation from Maven data model to Grapes data model.

* * @author jdcoffre */ public class ModuleBuilder { /** * Turn a maven project (Maven data model) into a module (Grapes data model) * * @param project MavenProject * @return Module */ public Module getModule(final MavenProject project, final LicenseResolver licenseResolver, final ArtifactResolver artifactResolver) throws MojoExecutionException { final Module module = GrapesTranslator.getGrapesModule(project); final List licenses = licenseResolver.resolve(project); /* Manage Artifacts */ final Artifact mainArtifact = GrapesTranslator.getGrapesArtifact(project.getArtifact()); addLicenses(mainArtifact, licenses); module.addArtifact(mainArtifact); // Get pom file if main artifact is not already a pom file if(!mainArtifact.getType().equals("pom")){ final Artifact pomArtifact = GrapesTranslator.getGrapesArtifact(project.getModel()); addLicenses(pomArtifact, licenses); module.addArtifact(pomArtifact); } for(int i = 0 ; i < project.getAttachedArtifacts().size() ; i++){ artifactResolver.resolveArtifact(project, project.getAttachedArtifacts().get(i)); final Artifact attachedArtifact = GrapesTranslator.getGrapesArtifact(project.getAttachedArtifacts().get(i)); // handle licenses addLicenses(attachedArtifact, licenses); module.addArtifact(attachedArtifact); } /* Manage Dependencies */ for(int i = 0 ; i < project.getDependencies().size() ; i++){ final Dependency dependency = GrapesTranslator.getGrapesDependency( artifactResolver.resolveArtifact(project, project.getDependencies().get(i)), project.getDependencies().get(i).getScope()); // handle licenses for(License license: licenseResolver.resolve( project, dependency.getTarget().getGroupId(), dependency.getTarget().getArtifactId(), dependency.getTarget().getVersion())){ dependency.getTarget().addLicense(license.getName()); } module.addDependency(dependency); } return module; } /** * Fill the artifact with the licenses name of the license list * @param mainArtifact Artifact * @param licenses List */ private void addLicenses(final Artifact mainArtifact, final List licenses) { for(License license: licenses){ mainArtifact.addLicense(license.getName()); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy