package org.apache.maven.plugin.deb; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.transform.SnapshotTransformation; import org.apache.maven.plugin.AbstractMojo; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a> * @version $Id$ */ public abstract class AbstractDebMojo extends AbstractMojo { /** * @parameter expression="${project.artifact}" * @required * @readonly */ private Artifact artifact; /** * @parameter expression="${project.artifacts}" * @required * @readonly */ private Set artifacts; /** * @parameter */ private String classifier; /** * @parameter expression="${project.description}" */ private String description; /** * @parameter default-value="all" * @required */ private String architecture; /** * @parameter * @required */ private String maintainer; /** * @parameter */ private String packageName; /** * @parameter default-value="standard" * @required */ private String priority; /** * @parameter * @required */ private String section; /** * @parameter * @optional */ private int maintainerRevision; /** * A flag to indicate whether to generate the Depends: section in the control file. * * @parameter default-value="true" * @optional */ private boolean autoGenerateDepends; /** * @parameter * @optional */ private String debFileName; /** * @parameter */ private Set extraDependencies; /** * A flag to indicate whether to use fakeroot. * * @parameter default-value="true" * @optional */ protected boolean useFakeroot; /** * @component role="org.apache.maven.artifact.transform.ArtifactTransformation" roleHint="snapshot" */ private SnapshotTransformation snapshotTransformation; private DebTool debTool; // ---------------------------------------------------------------------- // Accessors // ---------------------------------------------------------------------- protected String getClassifier() { return classifier; } protected Artifact getArtifact() { return artifact; } protected DebTool getDebTool() { if ( debTool != null ) { return debTool; } debTool = new DebTool(); Set dependencies = new HashSet(); if ( autoGenerateDepends ) { for ( Iterator it = artifacts.iterator(); it.hasNext(); ) { Artifact artifact = (Artifact) it.next(); dependencies.add( new DebianDependency( artifact ) ); } } if ( extraDependencies != null ) { dependencies.addAll( extraDependencies ); } // TODO: This is using a private Maven API that might change. Perhaps use some reflection magic here. String timestamp = snapshotTransformation.getDeploymentTimestamp(); System.out.println("artifact = " + artifact); debTool. dependencies( dependencies ). mavenProject( artifact.getGroupId(), artifact.getArtifactId(), classifier, artifact.getVersion(), timestamp, artifact.isSnapshot() ). architecture( architecture ). description( description ). maintainer( maintainer ). packageName( packageName ). priority( priority ). section( section ). maintainerRevision( maintainerRevision ); return debTool; } }