Java tutorial
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 * * <p>Ensures the transformation from Maven data model to Grapes data model.</p> * * @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<License> 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<License> */ private void addLicenses(final Artifact mainArtifact, final List<License> licenses) { for (License license : licenses) { mainArtifact.addLicense(license.getName()); } } }