diff --git a/pom.xml b/pom.xml
index 4aa9ed9..b01bb80 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,7 @@ under the License.
3.0
7
+ UTF-8
diff --git a/src/main/java/org/apache/maven/plugins/verifier/VerifierMojo.java b/src/main/java/org/apache/maven/plugins/verifier/VerifierMojo.java
index c093ec6..a925db5 100644
--- a/src/main/java/org/apache/maven/plugins/verifier/VerifierMojo.java
+++ b/src/main/java/org/apache/maven/plugins/verifier/VerifierMojo.java
@@ -19,10 +19,11 @@
* under the License.
*/
+import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
-import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -122,7 +123,7 @@ private VerificationResult verify()
{
VerificationResult results = new VerificationResult();
- try ( Reader reader = new FileReader( verificationFile ) )
+ try ( BufferedReader reader = Files.newBufferedReader( verificationFile.toPath(), StandardCharsets.UTF_8 ) )
{
VerificationsXpp3Reader xppReader = new VerificationsXpp3Reader();
Verifications verifications = xppReader.read( reader );
@@ -176,7 +177,8 @@ private boolean verifyFileContent( org.apache.maven.plugins.verifier.model.File
// Note: Very inefficient way as we load the whole file in memory. If you have a better
// idea, please submit it!
- Matcher matcher = pattern.matcher( FileUtils.fileRead( new File( fileCheck.getLocation() ) ) );
+ Matcher matcher = pattern.matcher(
+ FileUtils.fileRead( new File( fileCheck.getLocation() ), StandardCharsets.UTF_8.toString() ) );
if ( matcher.find() )
{
diff --git a/src/test/java/org/apache/maven/plugins/verifier/VerifierMojoTest.java b/src/test/java/org/apache/maven/plugins/verifier/VerifierMojoTest.java
index 0129ee3..1c5569c 100644
--- a/src/test/java/org/apache/maven/plugins/verifier/VerifierMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/verifier/VerifierMojoTest.java
@@ -216,4 +216,25 @@ public void print( VerificationResult result )
}
}
+ @Test
+ public void testCheckKoi8FileForContent()
+ throws Exception
+ {
+ VerifierMojo mojo = new VerifierMojo();
+ File file = getResourceFile("/FileExistsIncorrectEncoding.xml");
+ mojo.setBaseDir( file.getParentFile() );
+ mojo.setVerificationFile( file );
+ mojo.setVerificationResultPrinter( new VerificationResultPrinter()
+ {
+ public void print( VerificationResult result )
+ {
+ assertEquals( 0, result.getExistenceFailures().size() );
+ assertEquals( 0, result.getNonExistenceFailures().size() );
+ assertEquals( 1, result.getContentFailures().size() );
+ }
+ } );
+
+ mojo.execute();
+ }
+
}
diff --git a/src/test/resources/FileExistsIncorrectEncoding.xml b/src/test/resources/FileExistsIncorrectEncoding.xml
new file mode 100644
index 0000000..9254c82
--- /dev/null
+++ b/src/test/resources/FileExistsIncorrectEncoding.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ textInKOI-8-encoding.txt
+ кодировке
+
+
+
diff --git a/src/test/resources/textInKOI-8-encoding.txt b/src/test/resources/textInKOI-8-encoding.txt
new file mode 100644
index 0000000..f4a358a
--- /dev/null
+++ b/src/test/resources/textInKOI-8-encoding.txt
@@ -0,0 +1 @@
+óÏÏÂÝÅÎÉÅ × ËÏÄÉÒÏ×ËÅ ÎÅ UTF-8
\ No newline at end of file