Author: hboutemy
Date: Tue Oct 16 14:26:43 2007
New Revision: 585265
URL: http://svn.apache.org/viewvc?rev=585265&view=rev
Log:
[MNG-2254] support XML file encoding when reading/writing settings and pom files
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
maven/components/trunk/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
Tue Oct 16 14:26:43 2007
@@ -26,14 +26,15 @@
import org.apache.maven.settings.validation.SettingsValidator;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.util.interpolation.PropertiesBasedValueSource;
import org.codehaus.plexus.util.interpolation.RegexBasedInterpolator;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.List;
@@ -49,7 +50,7 @@
private SettingsValidator validator;
/** @since 2.1 */
- public Settings buildSettings( MavenExecutionRequest request )
+ public Settings buildSettings( MavenExecutionRequest request )
throws IOException, XmlPullParserException
{
File userSettingsFile = request.getUserSettingsFile();
@@ -148,11 +149,11 @@
Settings settings = null;
- FileReader reader = null;
+ Reader reader = null;
try
{
- reader = new FileReader( settingsFile );
+ reader = ReaderFactory.newXmlReader( settingsFile );
SettingsXpp3Reader modelReader = new SettingsXpp3Reader();
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
(original)
+++
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Tue Oct 16 14:26:43 2007
@@ -78,15 +78,16 @@
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.logging.LoggerManager;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.URL;
@@ -211,7 +212,7 @@
public Model readModel( File file )
throws XmlPullParserException, IOException
{
- Reader reader = new FileReader( file );
+ Reader reader = ReaderFactory.newXmlReader( file );
try
{
@@ -252,8 +253,6 @@
Settings settings )
throws IOException
{
- Writer fileWriter = new FileWriter( file );
-
SettingsValidator settingsValidator = new DefaultSettingsValidator();
SettingsValidationResult validationResult =
settingsValidator.validate( settings );
@@ -271,6 +270,8 @@
String encoding = settings.getModelEncoding() != null ?
settings.getModelEncoding() : "UTF-8";
+ Writer fileWriter = new OutputStreamWriter( new FileOutputStream( file
), encoding );
+
Format format = Format.getPrettyFormat().setEncoding( encoding );
try
@@ -286,7 +287,7 @@
public static Settings readSettings( File file )
throws IOException, SettingsConfigurationException
{
- Reader fileReader = new FileReader( file );
+ Reader fileReader = ReaderFactory.newXmlReader( file );
SettingsValidator settingsValidator = new DefaultSettingsValidator();
@@ -795,7 +796,7 @@
{
try
{
- fileReader = new FileReader(
configuration.getUserSettingsFile() );
+ fileReader = ReaderFactory.newXmlReader(
configuration.getUserSettingsFile() );
result.setUserSettings( new SettingsXpp3Reader().read(
fileReader ) );
}
@@ -819,7 +820,7 @@
{
try
{
- fileReader = new FileReader(
configuration.getGlobalSettingsFile() );
+ fileReader = ReaderFactory.newXmlReader(
configuration.getGlobalSettingsFile() );
result.setGlobalSettings( new SettingsXpp3Reader().read(
fileReader ) );
}
Modified:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
(original)
+++
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
Tue Oct 16 14:26:43 2007
@@ -36,12 +36,13 @@
import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
import java.io.IOException;
+import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
import java.util.Iterator;
@@ -61,7 +62,7 @@
super.setUp();
basedir = System.getProperty( "basedir" );
-
+
if ( basedir == null )
{
basedir = new File( "." ).getCanonicalPath();
@@ -229,8 +230,8 @@
model.setBuild( new Build() );
model.getBuild().addPlugin( plugin );
- FileWriter writer = new FileWriter( pom );
- maven.writeModel( new FileWriter( pom ), model );
+ Writer writer = WriterFactory.newXmlWriter( pom );
+ maven.writeModel( writer, model );
writer.close();
/* execute maven */
@@ -248,8 +249,8 @@
/* Add the surefire plugin 2.3 to the pom */
plugin.setVersion( "2.3" );
- writer = new FileWriter( pom );
- maven.writeModel( new FileWriter( pom ), model );
+ writer = WriterFactory.newXmlWriter( pom );
+ maven.writeModel( writer, model );
writer.close();
/* execute Maven */
@@ -361,7 +362,7 @@
File file = new File( basedir, "target/model.xml" );
- Writer writer = new FileWriter( file );
+ Writer writer = WriterFactory.newXmlWriter( file );
maven.writeModel( writer, model );
@@ -389,10 +390,10 @@
File settingsFile = File.createTempFile( "embedder-test.settings.", ""
);
settingsFile.deleteOnExit();
- FileWriter writer = null;
+ Writer writer = null;
try
{
- writer = new FileWriter( settingsFile );
+ writer = WriterFactory.newXmlWriter( settingsFile );
new SettingsXpp3Writer().write( writer, s );
}
finally
@@ -422,10 +423,10 @@
File settingsFile = File.createTempFile( "embedder-test.settings.", ""
);
settingsFile.deleteOnExit();
- FileWriter writer = null;
+ Writer writer = null;
try
{
- writer = new FileWriter( settingsFile );
+ writer = WriterFactory.newXmlWriter( settingsFile );
new SettingsXpp3Writer().write( writer, s );
}
finally
@@ -461,10 +462,10 @@
MavenEmbedder.writeSettings( settingsFile, s );
- FileReader reader = null;
+ Reader reader = null;
try
{
- reader = new FileReader( settingsFile );
+ reader = ReaderFactory.newXmlReader( settingsFile );
Settings result = new SettingsXpp3Reader().read( reader );
assertEquals( localRepoPath, result.getLocalRepository() );
Modified:
maven/components/trunk/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
(original)
+++
maven/components/trunk/maven-profile/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
Tue Oct 16 14:26:43 2007
@@ -22,13 +22,14 @@
import org.apache.maven.profiles.io.xpp3.ProfilesXpp3Reader;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.util.interpolation.RegexBasedInterpolator;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
@@ -48,22 +49,22 @@
if ( profilesXml.exists() )
{
ProfilesXpp3Reader reader = new ProfilesXpp3Reader();
- FileReader fileReader = null;
+ Reader profileReader = null;
try
{
- fileReader = new FileReader( profilesXml );
-
+ profileReader = ReaderFactory.newXmlReader( profilesXml );
+
StringWriter sWriter = new StringWriter();
-
- IOUtil.copy( fileReader, sWriter );
-
+
+ IOUtil.copy( profileReader, sWriter );
+
String rawInput = sWriter.toString();
-
+
try
{
RegexBasedInterpolator interpolator = new
RegexBasedInterpolator();
interpolator.addValueSource( new EnvarBasedValueSource() );
-
+
rawInput = interpolator.interpolate( rawInput, "settings"
);
}
catch ( Exception e )
@@ -78,7 +79,7 @@
}
finally
{
- IOUtil.close( fileReader );
+ IOUtil.close( profileReader );
}
}
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Tue Oct 16 14:26:43 2007
@@ -70,16 +70,14 @@
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.FileReader;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
-import java.io.StringWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
@@ -128,8 +126,7 @@
*/
/**
- * @version $Id: DefaultMavenProjectBuilder.java,v 1.37 2005/03/08 01:55:22
- * trygvis Exp $
+ * @version $Id$
*/
public class DefaultMavenProjectBuilder
extends AbstractLogEnabled
@@ -995,7 +992,7 @@
Reader reader = null;
try
{
- reader = new FileReader( file );
+ reader = ReaderFactory.newXmlReader( file );
return readModel( projectId, file.getAbsolutePath(), reader,
strict );
}
catch ( FileNotFoundException e )
@@ -1020,15 +1017,11 @@
boolean strict )
throws IOException, InvalidProjectModelException
{
- StringWriter sw = new StringWriter();
+ String modelSource = IOUtil.toString( reader );
- IOUtil.copy( reader, sw );
-
- String modelSource = sw.toString();
-
- if ( modelSource.indexOf( "<modelVersion>4.0.0" ) < 0 )
+ if ( modelSource.indexOf( "<modelVersion>" + MAVEN_MODEL_VERSION ) < 0
)
{
- throw new InvalidProjectModelException( projectId, pomLocation,
"Not a v4.0.0 POM." );
+ throw new InvalidProjectModelException( projectId, pomLocation,
"Not a v" + MAVEN_MODEL_VERSION + " POM." );
}
StringReader sReader = new StringReader( modelSource );
@@ -1049,10 +1042,10 @@
boolean strict )
throws ProjectBuildingException
{
- InputStreamReader reader = null;
+ Reader reader = null;
try
{
- reader = new InputStreamReader( url.openStream() );
+ reader = ReaderFactory.newXmlReader( url.openStream() );
return readModel( projectId, url.toExternalForm(), reader, strict
);
}
catch ( IOException e )
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
Tue Oct 16 14:26:43 2007
@@ -39,12 +39,13 @@
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashSet;
@@ -188,11 +189,11 @@
}
Model model;
- FileReader reader = null;
+ Reader reader = null;
try
{
- reader = new FileReader( pomFile );
+ reader = ReaderFactory.newXmlReader( pomFile );
model = new MavenXpp3Reader().read( reader );
}
catch ( IOException e )
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
Tue Oct 16 14:26:43 2007
@@ -36,10 +36,11 @@
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.WriterFactory;
import java.io.File;
-import java.io.FileWriter;
import java.io.IOException;
+import java.io.Writer;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
@@ -103,10 +104,10 @@
File pomFile = File.createTempFile(
"DefaultModelLineageBuilder.test.", ".pom" );
pomFile.deleteOnExit();
- FileWriter writer = null;
+ Writer writer = null;
try
{
- writer = new FileWriter( pomFile );
+ writer = WriterFactory.newXmlWriter( pomFile );
new MavenXpp3Writer().write( writer, model );
}
@@ -475,12 +476,12 @@
File file )
throws IOException
{
- FileWriter writer = null;
+ Writer writer = null;
try
{
file.getParentFile().mkdirs();
- writer = new FileWriter( file );
+ writer = WriterFactory.newXmlWriter( file );
new MavenXpp3Writer().write( writer, model );
writer.flush();
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java?rev=585265&r1=585264&r2=585265&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
Tue Oct 16 14:26:43 2007
@@ -22,8 +22,8 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.AbstractMavenProjectTestCase;
+import org.codehaus.plexus.util.ReaderFactory;
-import java.io.FileReader;
import java.io.Reader;
import java.util.List;
@@ -219,7 +219,7 @@
private ModelValidationResult validate( String testName )
throws Exception
{
- Reader input = new FileReader( getFileForClasspathResource(
"validation/" + testName ) );
+ Reader input = ReaderFactory.newXmlReader(
getFileForClasspathResource( "validation/" + testName ) );
MavenXpp3Reader reader = new MavenXpp3Reader();