package org.codehaus.mojo.buildinfo.util;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.codehaus.mojo.buildinfo.model.BuildInfo;
import org.codehaus.mojo.buildinfo.model.io.xpp3.BuildInfoXpp3Reader;
import org.codehaus.mojo.buildinfo.model.io.xpp3.BuildInfoXpp3Writer;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class BuildInfoUtils
{
private static final String STANDARD_FILENAME_FORMAT = "@artifactId@-@version@-buildinfo.xml";
public static File getStandardProjectBuildInfoFile( File outputDirectory, String artifactId, String version )
{
String filename = STANDARD_FILENAME_FORMAT;
filename = filename.replaceAll( "@artifactId@", artifactId );
filename = filename.replaceAll( "@version@", version );
return new File( outputDirectory, filename );
}
public static void writeXml( BuildInfo buildInfo, File outputFile )
throws IOException
{
BuildInfoXpp3Writer writer = new BuildInfoXpp3Writer();
FileWriter fWriter = null;
try
{
fWriter = new FileWriter( outputFile );
writer.write( fWriter, buildInfo );
}
finally
{
IOUtil.close( fWriter );
}
}
public static BuildInfo readXml( File inputFile )
throws IOException, BuildInfoConstructionException
{
BuildInfoXpp3Reader reader = new BuildInfoXpp3Reader();
FileReader fReader = null;
try
{
fReader = new FileReader( inputFile );
return reader.read( fReader );
}
catch ( XmlPullParserException e )
{
throw new BuildInfoConstructionException( "Error parsing buildinfo from XML file. Reason: " + e.getMessage(), e );
}
finally
{
IOUtil.close( fReader );
}
}
}