[MCHANGELOG-86] Error with outputEncoding parameter set to UTF-8
read the file as we write it



git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@769909 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/plugin/changelog/ChangeLog.java b/src/main/java/org/apache/maven/plugin/changelog/ChangeLog.java
index 8c6961c..d41920a 100644
--- a/src/main/java/org/apache/maven/plugin/changelog/ChangeLog.java
+++ b/src/main/java/org/apache/maven/plugin/changelog/ChangeLog.java
@@ -21,15 +21,18 @@
 
 // java imports
 
-import org.xml.sax.SAXException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
 
 /**
  * Change log task. It uses a ChangeLogGenerator and ChangeLogParser to create
@@ -61,9 +64,22 @@
         SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
 
         List changeLogSets = new ArrayList();
-
+        
         parser.parse( stream, new ChangeLogHandler( changeLogSets ) );
 
         return changeLogSets;
     }
+    
+    public static List loadChangedSets( Reader reader )
+        throws ParserConfigurationException, SAXException, IOException
+    {
+        SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
+
+        List changeLogSets = new ArrayList();
+
+        parser.parse( new InputSource( reader ), new ChangeLogHandler( changeLogSets ) );
+
+        return changeLogSets;
+    }    
+    
 } // end of ChangeLog
diff --git a/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java b/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java
index b22eea2..78a3373 100644
--- a/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java
+++ b/src/main/java/org/apache/maven/plugin/changelog/ChangeLogReport.java
@@ -19,6 +19,31 @@
  * under the License.
  */
 
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.StringTokenizer;
+
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.AbstractMavenReport;
@@ -42,36 +67,10 @@
 import org.apache.maven.settings.Settings;
 import org.codehaus.doxia.sink.Sink;
 import org.codehaus.doxia.site.renderer.SiteRenderer;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
 
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.ResourceBundle;
-import java.util.StringTokenizer;
-
 /**
  * Generate a changelog report.
  *
@@ -362,11 +361,12 @@
             {
                 try
                 {
-                    FileInputStream fIn = new FileInputStream( outputXML );
+                    //ReaderFactory.newReader( outputXML, outputEncoding );
+                    //FileInputStream fIn = new FileInputStream( outputXML );
 
                     getLog().info( "Using existing changelog.xml..." );
 
-                    changelogList = ChangeLog.loadChangedSets( fIn );
+                    changelogList = ChangeLog.loadChangedSets( ReaderFactory.newReader( outputXML, outputEncoding ) );
                 }
                 catch ( FileNotFoundException e )
                 {