diff options
23 files changed, 88 insertions, 91 deletions
diff --git a/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java b/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java index df25831ea..7550bbabc 100644 --- a/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java +++ b/fop-core/src/main/codegen/unicode/java/org/apache/fop/hyphenation/UnicodeClasses.java @@ -87,7 +87,7 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); int maxChar; maxChar = Character.MAX_VALUE; @@ -189,7 +189,7 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); URI inuri = unidata.resolve("Blocks.txt"); InputStream inis = null; @@ -199,7 +199,7 @@ public final class UnicodeClasses { } else if (scheme.equals("http")) { inis = inuri.toURL().openStream(); } - InputStreamReader insr = new InputStreamReader(inis, "utf-8"); + InputStreamReader insr = new InputStreamReader(inis, StandardCharsets.UTF_8); BufferedReader inbr = new BufferedReader(insr); Map blocks = new HashMap(); for (String line = inbr.readLine(); line != null; line = inbr.readLine()) { @@ -221,7 +221,7 @@ public final class UnicodeClasses { } else if (scheme.equals("http")) { inis = inuri.toURL().openStream(); } - insr = new InputStreamReader(inis, "utf-8"); + insr = new InputStreamReader(inis, StandardCharsets.UTF_8); inbr = new BufferedReader(insr); int maxChar; maxChar = Character.MAX_VALUE; @@ -306,10 +306,10 @@ public final class UnicodeClasses { } f.createNewFile(); FileOutputStream fw = new FileOutputStream(f); - OutputStreamWriter ow = new OutputStreamWriter(fw, "utf-8"); + OutputStreamWriter ow = new OutputStreamWriter(fw, StandardCharsets.UTF_8); FileInputStream inis = new FileInputStream(in); - InputStreamReader insr = new InputStreamReader(inis, "utf-8"); + InputStreamReader insr = new InputStreamReader(inis, StandardCharsets.UTF_8); BufferedReader inbr = new BufferedReader(insr); ow.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); diff --git a/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java b/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java index b82dbee97..3e56bdd13 100644 --- a/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java +++ b/fop-core/src/main/java/org/apache/fop/datatypes/URISpecification.java @@ -19,7 +19,7 @@ package org.apache.fop.datatypes; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; /** @@ -130,13 +130,9 @@ public final class URISpecification { //Note: this may not be accurate for some very special cases. sb.append(ch); } else { - try { - byte[] utf8 = Character.toString(ch).getBytes("UTF-8"); - for (byte anUtf8 : utf8) { - appendEscape(sb, anUtf8); - } - } catch (UnsupportedEncodingException e) { - throw new Error("Incompatible JVM. UTF-8 not supported."); + byte[] utf8 = Character.toString(ch).getBytes(StandardCharsets.UTF_8); + for (byte anUtf8 : utf8) { + appendEscape(sb, anUtf8); } } } diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java index 790e885bc..5e85e926a 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/FontFileReader.java @@ -21,6 +21,7 @@ package org.apache.fop.fonts.truetype; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import org.apache.commons.io.IOUtils; @@ -292,9 +293,8 @@ public class FontFileReader { byte[] tmp = new byte[len]; System.arraycopy(file, current, tmp, 0, len); current += len; - final String encoding; - encoding = "UTF-16BE"; //Use this for all known encoding IDs for now - return new String(tmp, encoding); + //Use this for all known encoding IDs for now + return new String(tmp, StandardCharsets.UTF_16BE); } /** diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java index 2ea2ed823..40185abed 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java @@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -203,7 +204,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { writeBytes(cffReader.getHeader()); //Name Index - writeIndex(Arrays.asList(embedFontName.getBytes("UTF-8"))); + writeIndex(Arrays.asList(embedFontName.getBytes(StandardCharsets.UTF_8))); Offsets offsets = new Offsets(); @@ -355,7 +356,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { int sidAStringIndex = stringIndexData.size() + 390; int sidB = dictEntry.getOperands().get(1).intValue(); if (sidB > 390) { - stringIndexData.add("Identity".getBytes("UTF-8")); + stringIndexData.add("Identity".getBytes(StandardCharsets.UTF_8)); } int sidBStringIndex = stringIndexData.size() + 390; byte[] cidEntryByteData = dictEntry.getByteData(); @@ -407,7 +408,7 @@ public class OTFSubSetFile extends OTFSubSetWriter { if (index < cffReader.getStringIndex().getNumObjects()) { byte[] value = cffReader.getStringIndex().getValue(index); if (mbFont != null) { - mbFont.mapUsedGlyphName(v, new String(value, "UTF-8")); + mbFont.mapUsedGlyphName(v, new String(value, StandardCharsets.UTF_8)); } gidToSID.put(v, stringIndexData.size() + 391); stringIndexData.add(value); diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java index d018f5bf2..9bc248331 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/SVGGlyphData.java @@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -54,7 +55,8 @@ public class SVGGlyphData { public String getDataURL(int height) { try { String modifiedSVG = updateTransform(svg, height); - return DataURLUtil.createDataURL(new ByteArrayInputStream(modifiedSVG.getBytes("UTF-8")), "image/svg"); + return DataURLUtil.createDataURL( + new ByteArrayInputStream(modifiedSVG.getBytes(StandardCharsets.UTF_8)), "image/svg"); } catch (IOException | TransformerException | SAXException | ParserConfigurationException e) { throw new RuntimeException(e); } diff --git a/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java b/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java index 6bf3391e6..4a8a30086 100644 --- a/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java +++ b/fop-core/src/main/java/org/apache/fop/hyphenation/PatternParser.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.net.MalformedURLException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import javax.xml.parsers.SAXParserFactory; @@ -489,7 +490,7 @@ public class PatternParser extends DefaultHandler implements PatternConsumer { PrintStream p = null; if (args.length > 1) { FileOutputStream f = new FileOutputStream(args[1]); - p = new PrintStream(f, false, "utf-8"); + p = new PrintStream(f, false, StandardCharsets.UTF_8.name()); pp.setTestOut(p); } pp.parse(args[0]); diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java index 7ebb0ffd6..c2080f0d0 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFDocument.java @@ -23,6 +23,7 @@ package org.apache.fop.pdf; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -847,13 +848,13 @@ public class PDFDocument { } try { MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] thedigest = md.digest(key.getBytes("UTF-8")); + byte[] thedigest = md.digest(key.getBytes(StandardCharsets.UTF_8)); StringBuilder hex = new StringBuilder(); for (byte b : thedigest) { hex.append(String.format("%02x", b)); } return hex.toString(); - } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { + } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java index edebbb23a..7517646e5 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFEncryptionJCE.java @@ -21,7 +21,7 @@ package org.apache.fop.pdf; import java.io.IOException; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.MessageDigest; @@ -332,19 +332,15 @@ public final class PDFEncryptionJCE extends PDFObject implements PDFEncryption { protected byte[] preparePassword(String password) { int finalLength = 32; byte[] preparedPassword = new byte[finalLength]; - try { - byte[] passwordBytes = password.getBytes("UTF-8"); - if (passwordBytes.length >= finalLength) { - System.arraycopy(passwordBytes, 0, preparedPassword, 0, finalLength); - } else { - System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); - System.arraycopy(padding, 0, preparedPassword, passwordBytes.length, finalLength - - passwordBytes.length); - } - return preparedPassword; - } catch (UnsupportedEncodingException e) { - throw new UnsupportedOperationException(e); + byte[] passwordBytes = password.getBytes(StandardCharsets.UTF_8); + if (passwordBytes.length >= finalLength) { + System.arraycopy(passwordBytes, 0, preparedPassword, 0, finalLength); + } else { + System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); + System.arraycopy(padding, 0, preparedPassword, passwordBytes.length, finalLength + - passwordBytes.length); } + return preparedPassword; } void run() { @@ -548,20 +544,16 @@ public final class PDFEncryptionJCE extends PDFObject implements PDFEncryption { protected byte[] preparePassword(String password) { byte[] passwordBytes; byte[] preparedPassword; - try { - // the password needs to be normalized first but we are bypassing that step for now - passwordBytes = password.getBytes("UTF-8"); - if (passwordBytes.length > 127) { - preparedPassword = new byte[127]; - System.arraycopy(passwordBytes, 0, preparedPassword, 0, 127); - } else { - preparedPassword = new byte[passwordBytes.length]; - System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); - } - return preparedPassword; - } catch (UnsupportedEncodingException e) { - throw new UnsupportedOperationException(e.getMessage()); + // the password needs to be normalized first but we are bypassing that step for now + passwordBytes = password.getBytes(StandardCharsets.UTF_8); + if (passwordBytes.length > 127) { + preparedPassword = new byte[127]; + System.arraycopy(passwordBytes, 0, preparedPassword, 0, 127); + } else { + preparedPassword = new byte[passwordBytes.length]; + System.arraycopy(passwordBytes, 0, preparedPassword, 0, passwordBytes.length); } + return preparedPassword; } /** diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java index f071c6250..dc294b307 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFLinearization.java @@ -21,6 +21,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -312,7 +313,7 @@ public class PDFLinearization { private static void writePadding(int padding, OutputStream stream) throws IOException { for (int i = 0; i < padding; i++) { - stream.write(" ".getBytes("UTF-8")); + stream.write(" ".getBytes(StandardCharsets.UTF_8)); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java index f5384be53..bdcc07bc0 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFSignature.java @@ -25,6 +25,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.security.GeneralSecurityException; import java.security.KeyStore; import java.security.PrivateKey; @@ -208,8 +209,8 @@ public class PDFSignature { .replace("\0", " "); try (OutputStream editedPDF = getTempOS()) { IOUtils.copyLarge(pdfIS, editedPDF, 0, startOfContents); - editedPDF.write(byteRange.getBytes("UTF-8")); - editedPDF.write(byteRangePadding.getBytes("UTF-8")); + editedPDF.write(byteRange.getBytes(StandardCharsets.UTF_8)); + editedPDF.write(byteRangePadding.getBytes(StandardCharsets.UTF_8)); IOUtils.copyLarge(pdfIS, editedPDF, offsetToPDFEnd - startOfContents, Long.MAX_VALUE); } pdfIS.reset(); @@ -219,10 +220,10 @@ public class PDFSignature { String signedHexPadding = new String(new char[SIZE_OF_CONTENTS - (signed.length * 2)]) .replace("\0", "0"); String signedHex = "<" + PDFText.toHex(signed, false) + signedHexPadding + ">"; - os.write(signedHex.getBytes("UTF-8")); + os.write(signedHex.getBytes(StandardCharsets.UTF_8)); } - os.write(byteRange.getBytes("UTF-8")); - os.write(byteRangePadding.getBytes("UTF-8")); + os.write(byteRange.getBytes(StandardCharsets.UTF_8)); + os.write(byteRangePadding.getBytes(StandardCharsets.UTF_8)); IOUtils.copyLarge(pdfIS, os, offsetToPDFEnd - startOfContents, Long.MAX_VALUE); } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java index 749bf5a30..d088f355f 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFText.java @@ -21,6 +21,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; import java.util.Locale; import org.apache.fop.util.CharUtilities; @@ -99,12 +100,7 @@ public class PDFText extends PDFObject { } if (hexMode) { - final byte[] uniBytes; - try { - uniBytes = text.getBytes("UTF-16"); - } catch (java.io.UnsupportedEncodingException uee) { - throw new RuntimeException("Incompatible VM", uee); - } + final byte[] uniBytes = text.getBytes(StandardCharsets.UTF_16); return toHex(uniBytes); } else { final StringBuffer result = new StringBuffer(text.length() * 2); @@ -192,13 +188,8 @@ public class PDFText extends PDFObject { */ public static final String toUnicodeHex(char c) { final StringBuffer buf = new StringBuffer(4); - final byte[] uniBytes; - try { - final char[] a = {c}; - uniBytes = new String(a).getBytes("UTF-16BE"); - } catch (java.io.UnsupportedEncodingException uee) { - throw new RuntimeException("Incompatible VM", uee); - } + final char[] a = {c}; + final byte[] uniBytes = new String(a).getBytes(StandardCharsets.UTF_16BE); for (byte uniByte : uniBytes) { buf.append(DIGITS[(uniByte >>> 4) & 0x0F]); diff --git a/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java b/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java index 44a237b34..85639e29c 100644 --- a/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java +++ b/fop-core/src/main/java/org/apache/fop/render/txt/TXTStream.java @@ -21,13 +21,14 @@ package org.apache.fop.render.txt; import java.io.IOException; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; /** * Helper class for text streams. */ public class TXTStream { - private static final String DEFAULT_ENCODING = "UTF-8"; + private static final String DEFAULT_ENCODING = StandardCharsets.UTF_8.name(); private OutputStream out; private boolean doOutput = true; @@ -68,7 +69,7 @@ public class TXTStream { /** * Set the encoding for the text stream. - * @param encoding the encoding, if null, "UTF-8" is chosen as default + * @param encoding the encoding, if null, StandardCharsets.UTF_8 is chosen as default */ public void setEncoding(String encoding) { if (encoding != null) { diff --git a/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java b/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java index 76128d42b..a8afffc06 100644 --- a/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java +++ b/fop-core/src/main/java/org/apache/fop/render/txt/TxtRendererConfig.java @@ -19,6 +19,7 @@ package org.apache.fop.render.txt; +import java.nio.charset.StandardCharsets; import java.util.EnumMap; import org.apache.fop.apps.FOPException; @@ -37,7 +38,7 @@ import org.apache.fop.render.RendererConfigOption; public final class TxtRendererConfig implements RendererConfig { public enum TxtRendererOption implements RendererConfigOption { - ENCODING("encoding", "UTF-8"); + ENCODING("encoding", StandardCharsets.UTF_8.name()); private final String name; private final Object defaultValue; diff --git a/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java b/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java index 57443e15d..e604e5619 100644 --- a/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -183,7 +184,8 @@ public class FO2StructureTreeConverterTestCase { @Test public void testRemoveTableHeader() throws Exception { keepEmptyTags = false; - String fo = IOUtils.toString(getResource("table-artifact.fo"), "utf8").replace("role=\"artifact\"", ""); + String fo = IOUtils.toString(getResource("table-artifact.fo"), StandardCharsets.UTF_8) + .replace("role=\"artifact\"", ""); compare(fo, "<structure-tree-sequence>\n" + "<structure-tree xmlns=\"http://xmlgraphics.apache.org/fop/intermediate\" " + "xmlns:foi=\"http://xmlgraphics.apache.org/fop/internal\" " diff --git a/fop-core/src/test/java/org/apache/fop/afp/fonts/OutlineFontTestCase.java b/fop-core/src/test/java/org/apache/fop/afp/fonts/OutlineFontTestCase.java index f4c64d9f0..3c696164f 100644 --- a/fop-core/src/test/java/org/apache/fop/afp/fonts/OutlineFontTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/afp/fonts/OutlineFontTestCase.java @@ -18,6 +18,8 @@ /* $Id$ */ package org.apache.fop.afp.fonts; +import java.nio.charset.StandardCharsets; + import org.junit.Assert; import org.junit.Test; @@ -33,7 +35,8 @@ public class OutlineFontTestCase { } public static CharacterSet getCharacterSet() { - CharacterSet characterSet = new CharacterSet("00000000", "utf-8", CharacterSetType.SINGLE_BYTE, "", null, null); + CharacterSet characterSet = new CharacterSet("00000000", StandardCharsets.UTF_8.name(), + CharacterSetType.SINGLE_BYTE, "", null, null); characterSet.addCharacterSetOrientation(new CharacterSetOrientation(0, 0, 0, 0)); return characterSet; } diff --git a/fop-core/src/test/java/org/apache/fop/apps/FopConfBuilder.java b/fop-core/src/test/java/org/apache/fop/apps/FopConfBuilder.java index e99a83260..c337aa715 100644 --- a/fop-core/src/test/java/org/apache/fop/apps/FopConfBuilder.java +++ b/fop-core/src/test/java/org/apache/fop/apps/FopConfBuilder.java @@ -24,8 +24,8 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; import java.lang.reflect.InvocationTargetException; +import java.nio.charset.StandardCharsets; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -309,13 +309,11 @@ public class FopConfBuilder implements FontConfigurator<FopConfBuilder> { transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty(OutputKeys.ENCODING, StandardCharsets.UTF_8.name()); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); try { transformer.transform(new DOMSource(fopConfDOM), - new StreamResult(new OutputStreamWriter(out, "UTF-8"))); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); + new StreamResult(new OutputStreamWriter(out, StandardCharsets.UTF_8))); } catch (TransformerException e) { throw new RuntimeException(e); } diff --git a/fop-core/src/test/java/org/apache/fop/complexscripts/scripts/arabic/GenerateArabicTestData.java b/fop-core/src/test/java/org/apache/fop/complexscripts/scripts/arabic/GenerateArabicTestData.java index 9c2cd78e0..837ad8025 100644 --- a/fop-core/src/test/java/org/apache/fop/complexscripts/scripts/arabic/GenerateArabicTestData.java +++ b/fop-core/src/test/java/org/apache/fop/complexscripts/scripts/arabic/GenerateArabicTestData.java @@ -28,7 +28,7 @@ import java.io.InputStreamReader; import java.io.LineNumberReader; import java.io.ObjectOutputStream; import java.nio.IntBuffer; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -104,7 +104,7 @@ public final class GenerateArabicTestData implements ArabicWordFormsConstants { FileInputStream fis = null; try { fis = new FileInputStream(spn); - LineNumberReader lr = new LineNumberReader(new InputStreamReader(fis, Charset.forName("UTF-8"))); + LineNumberReader lr = new LineNumberReader(new InputStreamReader(fis, StandardCharsets.UTF_8)); String wf; while ((wf = lr.readLine()) != null) { GlyphSequence igs = tf.mapCharsToGlyphs(wf); diff --git a/fop-core/src/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java b/fop-core/src/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java index 18d15c384..d3345a893 100644 --- a/fop-core/src/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java +++ b/fop-core/src/test/java/org/apache/fop/pdf/PDFEncryptionJCETestCase.java @@ -22,6 +22,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.MessageDigest; @@ -460,7 +461,7 @@ public class PDFEncryptionJCETestCase { IllegalBlockSizeException, BadPaddingException { MessageDigest sha256 = MessageDigest.getInstance("SHA-256"); String dataText = "Test data to encrypt."; - byte[] data = dataText.getBytes("UTF-8"); + byte[] data = dataText.getBytes(StandardCharsets.UTF_8); PDFEncryptionParams params = new PDFEncryptionParams(); params.setEncryptionLengthInBits(256); params.setUserPassword("userpassword"); @@ -486,7 +487,7 @@ public class PDFEncryptionJCETestCase { byte[] userKeySalt = new byte[8]; System.arraycopy(u, 32, userValSalt, 0, 8); System.arraycopy(u, 40, userKeySalt, 0, 8); - byte[] uPassBytes = params.getUserPassword().getBytes("UTF-8"); + byte[] uPassBytes = params.getUserPassword().getBytes(StandardCharsets.UTF_8); byte[] testUPass = new byte[uPassBytes.length + 8]; System.arraycopy(uPassBytes, 0, testUPass, 0, uPassBytes.length); System.arraycopy(userValSalt, 0, testUPass, uPassBytes.length, 8); @@ -501,7 +502,7 @@ public class PDFEncryptionJCETestCase { byte[] ownerKeySalt = new byte[8]; System.arraycopy(o, 32, ownerValSalt, 0, 8); System.arraycopy(o, 40, ownerKeySalt, 0, 8); - byte[] oPassBytes = params.getOwnerPassword().getBytes("UTF-8"); + byte[] oPassBytes = params.getOwnerPassword().getBytes(StandardCharsets.UTF_8); byte[] testOPass = new byte[oPassBytes.length + 8 + 48]; System.arraycopy(oPassBytes, 0, testOPass, 0, oPassBytes.length); System.arraycopy(ownerValSalt, 0, testOPass, oPassBytes.length, 8); diff --git a/fop-core/src/test/java/org/apache/fop/pdf/PDFStructureTreeTestCase.java b/fop-core/src/test/java/org/apache/fop/pdf/PDFStructureTreeTestCase.java index d66159fd2..27b0bea12 100644 --- a/fop-core/src/test/java/org/apache/fop/pdf/PDFStructureTreeTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/pdf/PDFStructureTreeTestCase.java @@ -21,7 +21,7 @@ package org.apache.fop.pdf; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.IOException; +import java.nio.charset.StandardCharsets; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -79,14 +79,14 @@ public class PDFStructureTreeTestCase { } private ByteArrayOutputStream foToOutput(String fo) - throws IOException, SAXException, TransformerException { + throws SAXException, TransformerException { FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI()); FOUserAgent userAgent = fopFactory.newFOUserAgent(); userAgent.setAccessibility(true); ByteArrayOutputStream bos = new ByteArrayOutputStream(); Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent, bos); Transformer transformer = TransformerFactory.newInstance().newTransformer(); - Source src = new StreamSource(new ByteArrayInputStream(fo.getBytes("UTF-8"))); + Source src = new StreamSource(new ByteArrayInputStream(fo.getBytes(StandardCharsets.UTF_8))); Result res = new SAXResult(fop.getDefaultHandler()); transformer.transform(src, res); return bos; diff --git a/fop-core/src/test/java/org/apache/fop/render/afp/AFPParser.java b/fop-core/src/test/java/org/apache/fop/render/afp/AFPParser.java index e3705271a..747a88ea5 100644 --- a/fop-core/src/test/java/org/apache/fop/render/afp/AFPParser.java +++ b/fop-core/src/test/java/org/apache/fop/render/afp/AFPParser.java @@ -21,6 +21,7 @@ package org.apache.fop.render.afp; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -90,7 +91,7 @@ public class AFPParser { } else if ("TRN".equals(PTOCA_MAP.get(functionType))) { byte[] data = new byte[len - 2]; bis.read(data); - sb.append(" " + new String(data, "UTF-16BE")); + sb.append(" " + new String(data, StandardCharsets.UTF_16BE)); } else { bis.skip(len - 2); } diff --git a/fop-core/src/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java b/fop-core/src/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java index c8baf8ad7..b702e1264 100644 --- a/fop-core/src/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/render/ps/ImageHandlingTestCase.java @@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import org.junit.Test; @@ -184,7 +185,7 @@ public class ImageHandlingTestCase extends AbstractPostScriptTest { + "rotate=\"30 30 0 15\">Hello SVG with FOP</text>\n" + "</svg>"; SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(null); - Document doc = factory.createDocument(null, IOUtils.toInputStream(svg, "utf-8")); + Document doc = factory.createDocument(null, IOUtils.toInputStream(svg, StandardCharsets.UTF_8)); ByteArrayOutputStream bos = new ByteArrayOutputStream(); new PSImageHandlerSVG().handleImage( new PSRenderingContext(ua, new PSGenerator(bos), new FontInfo()), diff --git a/fop-core/src/test/java/org/apache/fop/render/ps/svg/GradientTestCase.java b/fop-core/src/test/java/org/apache/fop/render/ps/svg/GradientTestCase.java index 80e40dbfd..1b7ad1962 100644 --- a/fop-core/src/test/java/org/apache/fop/render/ps/svg/GradientTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/render/ps/svg/GradientTestCase.java @@ -22,6 +22,7 @@ package org.apache.fop.render.ps.svg; import java.awt.Color; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.nio.charset.StandardCharsets; import org.junit.Test; @@ -68,7 +69,8 @@ public class GradientTestCase { svgGraphics2D.setGraphicContext(new GraphicContext()); svgGraphics2D.translate(100, 100); svgGraphics2D.applyPaint(gradient, true); - String expected = IOUtils.toString(getClass().getResourceAsStream(expectedResourceName), "utf-8"); + String expected = IOUtils.toString( + getClass().getResourceAsStream(expectedResourceName), StandardCharsets.UTF_8); assertEquals(expected.replace("\r", ""), out.toString()); } diff --git a/fop-sandbox/src/main/java/org/apache/fop/render/svg/SVGRenderer.java b/fop-sandbox/src/main/java/org/apache/fop/render/svg/SVGRenderer.java index 9cbc1662d..9800eb766 100644 --- a/fop-sandbox/src/main/java/org/apache/fop/render/svg/SVGRenderer.java +++ b/fop-sandbox/src/main/java/org/apache/fop/render/svg/SVGRenderer.java @@ -25,6 +25,7 @@ import java.awt.geom.Rectangle2D; import java.io.IOException; import java.io.OutputStream; import java.io.Writer; +import java.nio.charset.StandardCharsets; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; @@ -148,7 +149,7 @@ public class SVGRenderer extends Java2DRenderer { return; } try { - Writer writer = new java.io.OutputStreamWriter(out, "UTF-8"); + Writer writer = new java.io.OutputStreamWriter(out, StandardCharsets.UTF_8.name()); this.svgGenerator.stream(writer, useCSS); } finally { if (out != this.firstOutputStream) { |