From 7660cd1c04349411ecdd9e0ba68a0dad62931d0b Mon Sep 17 00:00:00 2001 From: Artem Krosheninnikov Date: Mon, 13 Jan 2020 15:34:55 +0300 Subject: [PATCH 1/2] [MVERIFIER-38] Define encoding for FileReader --- .../maven/plugins/verifier/VerifierMojo.java | 10 ++++--- .../plugins/verifier/VerifierMojoTest.java | 21 +++++++++++++++ .../resources/FileExistsIncorrectEncoding.xml | 27 +++++++++++++++++++ src/test/resources/textInKOI-8-encoding.txt | 1 + 4 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 src/test/resources/FileExistsIncorrectEncoding.xml create mode 100644 src/test/resources/textInKOI-8-encoding.txt 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 From d7ff6c4fec58861ed18ecc67b310c45b89207f9c Mon Sep 17 00:00:00 2001 From: Artem Krosheninnikov Date: Mon, 17 Feb 2020 01:04:49 +0300 Subject: [PATCH 2/2] [MVERIFIER-38] define enconding in pom --- pom.xml | 1 + 1 file changed, 1 insertion(+) 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