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();
 


Reply via email to