package org.codehaus.plexus.configuration.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class XmlPlexusConfigurationReader
implements PlexusConfigurationReader
{
public PlexusConfiguration read( InputStream inputStream )
throws IOException,
PlexusConfigurationException
{
return read( new InputStreamReader( inputStream, "UTF-8" ) );
}
public PlexusConfiguration read( Reader reader )
throws IOException,
PlexusConfigurationException
{
try
{
Xpp3Dom dom = Xpp3DomBuilder.build( reader );
return new XmlPlexusConfiguration( dom );
}
catch ( XmlPullParserException e )
{
throw new PlexusConfigurationException( "Failed to parse configuration resource!\nError was: \'"
+ e.getLocalizedMessage() + "\'", e );
}
}
}