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;
}
}