[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 )
{