blob: 4b1ffcedea157d87eedba8a90a3675aa1075527b [file] [log] [blame]
package plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.model.Model;
import org.codehaus.plexus.util.IOUtil;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* @goal validate
* @phase validate
*/
public class Mojo3563
extends AbstractMojo
{
/**
* @parameter default-value="${project}"
*/
private MavenProject project;
/**
* @parameter
* @required
*/
private File foo;
public void execute() throws MojoExecutionException, MojoFailureException {
Model model = project.getModel();
String property = model.getProperties().getProperty("test");
if (property == null) {
throw new MojoExecutionException("Could not find property.");
}
File testFile = new File(property.substring(property.indexOf(":") + 1));
if (!testFile.exists()) {
throw new MojoExecutionException("Test file does not exist: File = " + testFile.getAbsolutePath() + "Property = " + property);
}
getLog().info("Property = " + property);
File f = new File( project.getBuild().getOutputDirectory(), "foo.txt" );
getLog().info( "Creating test file using project.getBuild().getDirectory(): " + f );
String testValue = "" + System.currentTimeMillis();
FileWriter w = null;
try
{
f.getParentFile().mkdirs();
w = new FileWriter( f );
w.write( testValue );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Failed to write test file.", e );
}
finally
{
IOUtil.close( w );
}
getLog().info( "Attempting to read test file using path from plugin parameter: " + foo );
BufferedReader r = null;
try
{
r = new BufferedReader( new FileReader( foo ) );
if ( !testValue.equals( r.readLine() ) )
{
throw new MojoExecutionException( "Test file: " + foo + " has wrong contents." );
}
}
catch ( IOException e )
{
throw new MojoExecutionException( "Failed to read test file.", e );
}
finally
{
IOUtil.close( r );
}
}
}