You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2018/08/16 07:54:52 UTC

[myfaces-tobago] branch master updated: replace any String-based charset with Java-constants

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/master by this push:
     new 15d54f1  replace any String-based charset with Java-constants
15d54f1 is described below

commit 15d54f159d8aee36875deef2a76a04b0d605a185
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Thu Aug 16 09:54:41 2018 +0200

    replace any String-based charset with Java-constants
---
 .../tobago/facelets/FixCharacterEncodingFilter.java      |  3 ++-
 .../tobago/internal/component/AbstractUIPage.java        |  4 +++-
 .../tobago/internal/renderkit/renderer/PageRenderer.java |  2 +-
 .../myfaces/tobago/internal/util/HtmlWriterHelper.java   | 11 ++++++++++-
 .../myfaces/tobago/internal/util/WriterHelper.java       | 16 +++++++++++++++-
 .../tobago/internal/webapp/HtmlResponseWriter.java       | 16 +++++++++++++---
 .../tobago/internal/webapp/TobagoResponseWriterBase.java | 16 +++++++++++++---
 .../tobago/internal/webapp/XmlResponseWriter.java        | 16 +++++++++++++---
 .../apache/myfaces/tobago/renderkit/TobagoRenderKit.java |  6 ++++--
 .../myfaces/tobago/webapp/TobagoResponseWriter.java      |  3 ++-
 .../tobago/internal/config/AbstractTobagoTestBase.java   |  3 ++-
 .../myfaces/tobago/renderkit/css/CssClassUtils.java      |  4 ++--
 .../myfaces/tobago/util/HtmlWriterHelperUnitTest.java    |  5 +++--
 .../tobago/webapp/TobagoResponseWriterUnitTest.java      |  9 ++++++---
 .../myfaces/tobago/example/demo/NavigationTree.java      |  3 ++-
 .../myfaces/tobago/example/demo/SourceFileReader.java    |  3 ++-
 .../myfaces/tobago/example/demo/TestController.java      |  7 +++++--
 17 files changed, 98 insertions(+), 29 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/FixCharacterEncodingFilter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/FixCharacterEncodingFilter.java
index f0c0f09..dd64bac 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/FixCharacterEncodingFilter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/FixCharacterEncodingFilter.java
@@ -30,6 +30,7 @@ import javax.servlet.ServletResponse;
 import javax.servlet.FilterChain;
 import javax.servlet.annotation.WebFilter;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 @WebFilter(urlPatterns = "/*")
 public class FixCharacterEncodingFilter implements Filter {
@@ -48,7 +49,7 @@ public class FixCharacterEncodingFilter implements Filter {
       final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain)
       throws IOException, ServletException {
     if (servletRequest.getCharacterEncoding() == null) {
-      servletRequest.setCharacterEncoding("UTF-8");
+      servletRequest.setCharacterEncoding(StandardCharsets.UTF_8.name());
     }
     filterChain.doFilter(servletRequest, servletResponse);
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java
index f4a3e38..a6a1c75 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java
@@ -28,6 +28,8 @@ import javax.faces.component.UIComponent;
 import javax.faces.component.UIViewRoot;
 import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.context.FacesContext;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 
 /**
@@ -39,7 +41,7 @@ public abstract class AbstractUIPage extends AbstractUIFormBase implements Clien
 
   public static final String COMPONENT_TYPE = "org.apache.myfaces.tobago.Page";
 
-  public static final String FORM_ACCEPT_CHARSET = "utf-8";
+  public static final Charset FORM_ACCEPT_CHARSET = StandardCharsets.UTF_8;
 
   private String formId;
 
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
index 2b459ff..da3b55e 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/PageRenderer.java
@@ -282,7 +282,7 @@ public class PageRenderer extends RendererBase {
       writer.writeAttribute(HtmlAttributes.ENCTYPE, enctype, false);
     }
     // TODO: enable configuration of  'accept-charset'
-    writer.writeAttribute(HtmlAttributes.ACCEPT_CHARSET, AbstractUIPage.FORM_ACCEPT_CHARSET, false);
+    writer.writeAttribute(HtmlAttributes.ACCEPT_CHARSET, AbstractUIPage.FORM_ACCEPT_CHARSET.name(), false);
     // TODO evaluate 'accept' attribute usage
     //writer.writeAttribute(HtmlAttributes.ACCEPT, );
     writer.writeAttribute(DataAttributes.CONTEXT_PATH, contextPath, true);
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/HtmlWriterHelper.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/HtmlWriterHelper.java
index 044404e..fd81d39 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/HtmlWriterHelper.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/HtmlWriterHelper.java
@@ -21,6 +21,7 @@ package org.apache.myfaces.tobago.internal.util;
 
 import java.io.IOException;
 import java.io.Writer;
+import java.nio.charset.Charset;
 
 public final class HtmlWriterHelper extends WriterHelper {
 
@@ -56,8 +57,16 @@ public final class HtmlWriterHelper extends WriterHelper {
 
   }
 
+  /**
+   * @deprecated since 4.3.0
+   */
+  @Deprecated
   public HtmlWriterHelper(final Writer out, final String characterEncoding) {
-    super(out, characterEncoding);
+    this(out, Charset.forName(characterEncoding));
+  }
+
+  public HtmlWriterHelper(final Writer out, final Charset charset) {
+    super(out, charset);
   }
 
   @Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/WriterHelper.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/WriterHelper.java
index 8d954ae..85fc489 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/WriterHelper.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/WriterHelper.java
@@ -21,9 +21,13 @@ package org.apache.myfaces.tobago.internal.util;
 
 import java.io.IOException;
 import java.io.Writer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 public abstract class WriterHelper {
   protected static final char[] EMPTY = new char[0];
+  private static final Charset UTF8 = StandardCharsets.UTF_8;
+
   //
   // Entities from HTML 4.0, section 24.2.1; character codes 0xA0 to 0xFF
   //
@@ -129,10 +133,20 @@ public abstract class WriterHelper {
   private final ResponseWriterBuffer buffer;
   private final boolean utf8;
 
+  /**
+   * @deprecated since 4.3.0
+   */
+  @Deprecated
   public WriterHelper(final Writer out, final String characterEncoding) {
     this.out = out;
     buffer = new ResponseWriterBuffer(out);
-    utf8 = "utf-8".equalsIgnoreCase(characterEncoding);
+    utf8 = UTF8.name().equalsIgnoreCase(characterEncoding);
+  }
+
+  public WriterHelper(final Writer out, final Charset charset) {
+    this.out = out;
+    buffer = new ResponseWriterBuffer(out);
+    utf8 = UTF8.equals(charset);
   }
 
   public void writeAttributeValue(final String text)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/HtmlResponseWriter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/HtmlResponseWriter.java
index ebf50d1..756fa4c 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/HtmlResponseWriter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/HtmlResponseWriter.java
@@ -25,6 +25,7 @@ import org.apache.myfaces.tobago.internal.util.WriterHelper;
 import javax.faces.context.ResponseWriter;
 import java.io.IOException;
 import java.io.Writer;
+import java.nio.charset.Charset;
 import java.util.Arrays;
 
 public class HtmlResponseWriter extends TobagoResponseWriterBase {
@@ -33,10 +34,19 @@ public class HtmlResponseWriter extends TobagoResponseWriterBase {
 
   private final WriterHelper helper;
 
+  /**
+   * @deprecated since 4.3.0
+   */
+  @Deprecated
   public HtmlResponseWriter(
       final Writer writer, final String contentType, final String characterEncoding) {
-    super(writer, contentType, characterEncoding);
-    this.helper = new HtmlWriterHelper(writer, characterEncoding);
+    this(writer, contentType, Charset.forName(characterEncoding));
+  }
+
+  public HtmlResponseWriter(
+      final Writer writer, final String contentType, final Charset charset) {
+    super(writer, contentType, charset);
+    this.helper = new HtmlWriterHelper(writer, charset);
   }
 
   @Override
@@ -89,7 +99,7 @@ public class HtmlResponseWriter extends TobagoResponseWriterBase {
 
   @Override
   public ResponseWriter cloneWithWriter(final Writer originalWriter) {
-    return new HtmlResponseWriter(originalWriter, getContentType(), getCharacterEncoding());
+    return new HtmlResponseWriter(originalWriter, getContentType(), Charset.forName(getCharacterEncoding()));
   }
 
   @Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java
index f94fd34..12fbaf6 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java
@@ -30,6 +30,8 @@ import javax.faces.component.UIComponent;
 import java.io.IOException;
 import java.io.Writer;
 import java.net.URI;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 public abstract class TobagoResponseWriterBase extends TobagoResponseWriter {
 
@@ -51,12 +53,20 @@ public abstract class TobagoResponseWriterBase extends TobagoResponseWriter {
 
   private final String contentType;
 
-  private final String characterEncoding;
+  private final Charset charset;
 
+  /**
+   * @deprecated since 4.3.0
+   */
+  @Deprecated
   protected TobagoResponseWriterBase(final Writer writer, final String contentType, final String characterEncoding) {
+    this(writer, contentType, characterEncoding != null ? Charset.forName(characterEncoding) : StandardCharsets.UTF_8);
+  }
+
+  protected TobagoResponseWriterBase(final Writer writer, final String contentType, final Charset charset) {
     this.writer = writer;
     this.contentType = contentType;
-    this.characterEncoding = characterEncoding != null ? characterEncoding : "UTF-8";
+    this.charset = charset != null ? charset : StandardCharsets.UTF_8;
   }
 
   protected final Writer getWriter() {
@@ -181,7 +191,7 @@ public abstract class TobagoResponseWriterBase extends TobagoResponseWriter {
 
   @Override
   public String getCharacterEncoding() {
-    return characterEncoding;
+    return charset.name();
   }
 
   @Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/XmlResponseWriter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/XmlResponseWriter.java
index 127b4bd..5b342d4 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/XmlResponseWriter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/XmlResponseWriter.java
@@ -25,16 +25,26 @@ import org.apache.myfaces.tobago.internal.util.WriterHelper;
 import javax.faces.context.ResponseWriter;
 import java.io.IOException;
 import java.io.Writer;
+import java.nio.charset.Charset;
 import java.util.Arrays;
 
 public final class XmlResponseWriter extends TobagoResponseWriterBase {
 
   private final WriterHelper helper;
 
+  /**
+   * @deprecated since 4.3.0
+   */
+  @Deprecated
   public XmlResponseWriter(
       final Writer writer, final String contentType, final String characterEncoding) {
-    super(writer, contentType, characterEncoding);
-    this.helper = new HtmlWriterHelper(writer, characterEncoding);
+    this(writer, contentType, Charset.forName(characterEncoding));
+  }
+
+  public XmlResponseWriter(
+      final Writer writer, final String contentType, final Charset charset) {
+    super(writer, contentType, charset);
+    this.helper = new HtmlWriterHelper(writer, charset);
   }
 
   @Override
@@ -78,7 +88,7 @@ public final class XmlResponseWriter extends TobagoResponseWriterBase {
 
   @Override
   public ResponseWriter cloneWithWriter(final Writer originalWriter) {
-    return new XmlResponseWriter(originalWriter, getContentType(), getCharacterEncoding());
+    return new XmlResponseWriter(originalWriter, getContentType(), Charset.forName(getCharacterEncoding()));
   }
 
   @Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java
index f22439f..7ce4862 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java
@@ -38,6 +38,7 @@ import javax.faces.render.Renderer;
 import javax.faces.render.ResponseStateManager;
 import java.io.OutputStream;
 import java.io.Writer;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -80,14 +81,15 @@ public class TobagoRenderKit extends RenderKit {
   public ResponseWriter createResponseWriter(
       final Writer writer, final String contentType, final String characterEncoding) {
     final FacesContext facesContext = FacesContext.getCurrentInstance();
+    final Charset charset = Charset.forName(characterEncoding);
     TobagoResponseWriter responseWriter;
     if (facesContext.getPartialViewContext().isAjaxRequest()) {
-      responseWriter = new XmlResponseWriter(writer, CONTENT_TYPE_TEXT_XML, characterEncoding);
+      responseWriter = new XmlResponseWriter(writer, CONTENT_TYPE_TEXT_XML, charset);
     } else {
       if (contentType != null && !contentType.contains(CONTENT_TYPE_TEXT_HTML)) {
         LOG.warn("Content-Type '{}' not supported! Using '{}'", contentType, CONTENT_TYPE_TEXT_HTML);
       }
-      responseWriter = new HtmlResponseWriter(writer, CONTENT_TYPE_TEXT_HTML, characterEncoding);
+      responseWriter = new HtmlResponseWriter(writer, CONTENT_TYPE_TEXT_HTML, charset);
       // XXX enable xhtml here, by hand:
       //      responseWriter = new XmlResponseWriter(writer, "application/xhtml+xml", characterEncoding);
     }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriter.java
index 6fe8681..7180bde 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriter.java
@@ -35,6 +35,7 @@ import javax.faces.component.UIComponent;
 import javax.faces.context.ResponseWriter;
 import java.io.IOException;
 import java.io.Writer;
+import java.nio.charset.StandardCharsets;
 
 /**
  * <p> This provides an alternative ResponseWriter interfaces, which allows optimizations. E. g. some attributes needed
@@ -263,7 +264,7 @@ public abstract class TobagoResponseWriter extends ResponseWriter {
     }
     String characterEncoding = getCharacterEncoding();
     if (characterEncoding == null) {
-      characterEncoding = "UTF-8";
+      characterEncoding = StandardCharsets.UTF_8.name();
     }
 
     return contentType + "; charset=" + characterEncoding;
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
index bbbda20..e2fa01a 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
@@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.Locale;
 
@@ -72,7 +73,7 @@ public abstract class AbstractTobagoTestBase extends AbstractJsfTestCase {
     super.setUp();
 
     stringWriter = new StringWriter();
-    getFacesContext().setResponseWriter(new HtmlResponseWriter(stringWriter, "", "UTF-8"));
+    getFacesContext().setResponseWriter(new HtmlResponseWriter(stringWriter, "", StandardCharsets.UTF_8));
 
     // Tobago specific extensions
 
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/CssClassUtils.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/CssClassUtils.java
index 11a7cc8..aaab875 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/CssClassUtils.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/CssClassUtils.java
@@ -20,7 +20,7 @@
 package org.apache.myfaces.tobago.renderkit.css;
 
 import java.io.IOException;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -35,7 +35,7 @@ class CssClassUtils {
 
     final List<CssItem> missing = new ArrayList<>();
 
-    final String fileContent = new String(Files.readAllBytes(Paths.get(cssFileName)), Charset.forName("UTF-8"));
+    final String fileContent = new String(Files.readAllBytes(Paths.get(cssFileName)), StandardCharsets.UTF_8);
 
     for (final CssItem cssItem : cssItems) {
       if (!containsClassName(fileContent, cssItem.getName())) {
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/util/HtmlWriterHelperUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/util/HtmlWriterHelperUnitTest.java
index 4c915f4..d013bdd 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/util/HtmlWriterHelperUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/util/HtmlWriterHelperUnitTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
 
 import java.io.CharArrayWriter;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 public class HtmlWriterHelperUnitTest {
 
@@ -77,7 +78,7 @@ public class HtmlWriterHelperUnitTest {
   @Test
   public void testTexts() {
     final CharArrayWriter writer = new CharArrayWriter();
-    final HtmlWriterHelper helper = new HtmlWriterHelper(writer, "");
+    final HtmlWriterHelper helper = new HtmlWriterHelper(writer, StandardCharsets.ISO_8859_1);
 
     for (int i = 0; i < ESCAPED_TEXTS.length; i++) {
       testText(helper, writer, RAW_TEXTS[i], ESCAPED_TEXTS[i]);
@@ -87,7 +88,7 @@ public class HtmlWriterHelperUnitTest {
   @Test
   public void testAttributes() {
     final CharArrayWriter writer = new CharArrayWriter();
-    final HtmlWriterHelper helper = new HtmlWriterHelper(writer, "");
+    final HtmlWriterHelper helper = new HtmlWriterHelper(writer, StandardCharsets.ISO_8859_1);
 
     for (int i = 0; i < ESCAPED_ATTRIBUTES.length; i++) {
       testAttributeValue(helper, writer, RAW_TEXTS[i], ESCAPED_ATTRIBUTES[i]);
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriterUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriterUnitTest.java
index 33a008c..954592b 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriterUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/webapp/TobagoResponseWriterUnitTest.java
@@ -30,6 +30,7 @@ import org.junit.Test;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
 
 public class TobagoResponseWriterUnitTest extends AbstractJsfTestCase {
 
@@ -41,7 +42,7 @@ public class TobagoResponseWriterUnitTest extends AbstractJsfTestCase {
   public void setUp() throws Exception {
     super.setUp();
     stringWriter = new StringWriter();
-    writer = new HtmlResponseWriter(stringWriter, "", "UTF-8");
+    writer = new HtmlResponseWriter(stringWriter, "", StandardCharsets.UTF_8);
   }
 
   @Test
@@ -133,7 +134,8 @@ public class TobagoResponseWriterUnitTest extends AbstractJsfTestCase {
 
   @Test
   public void testNonUtf8() throws IOException {
-    try (final TobagoResponseWriter writer1 = new HtmlResponseWriter(stringWriter, "", "ISO-8859-1")) {
+    try (final TobagoResponseWriter writer1
+             = new HtmlResponseWriter(stringWriter, "", StandardCharsets.ISO_8859_1)) {
       writer1.startElement(HtmlElements.INPUT);
       writer1.writeAttribute(HtmlAttributes.VALUE, "Gutschein über 100 €.", true);
       writer1.writeAttribute(HtmlAttributes.READONLY, true);
@@ -145,7 +147,8 @@ public class TobagoResponseWriterUnitTest extends AbstractJsfTestCase {
 
   @Test
   public void testCharArray() throws IOException {
-    final TobagoResponseWriter xmlResponseWriter = new XmlResponseWriter(stringWriter, "text/xml", "ISO-8859-1");
+    final TobagoResponseWriter xmlResponseWriter
+        = new XmlResponseWriter(stringWriter, "text/xml", StandardCharsets.ISO_8859_1);
     xmlResponseWriter.writeText("123".toCharArray(), 0, 3);
     Assert.assertEquals("123", stringWriter.toString());
   }
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationTree.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationTree.java
index ffbdc62..8d26fff 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationTree.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/NavigationTree.java
@@ -34,6 +34,7 @@ import javax.servlet.ServletContext;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -157,7 +158,7 @@ public class NavigationTree implements Serializable {
     final ExternalContext externalContext = facesContext.getExternalContext();
     final String viewId = facesContext.getViewRoot().getViewId();
     try (final InputStream resourceAsStream = externalContext.getResourceAsStream(viewId)) {
-      return IOUtils.toString(resourceAsStream, "UTF-8");
+      return IOUtils.toString(resourceAsStream, StandardCharsets.UTF_8);
     } catch (final IOException e) {
       LOG.error("", e);
       return "error";
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SourceFileReader.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SourceFileReader.java
index 5666652..259c02a 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SourceFileReader.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SourceFileReader.java
@@ -27,6 +27,7 @@ import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 
 public abstract class SourceFileReader {
 
@@ -39,7 +40,7 @@ public abstract class SourceFileReader {
     final String file = viewId.substring(0, viewId.lastIndexOf("/")) + "/" + filename;
     try (final InputStream resourceAsStream = externalContext.getResourceAsStream(file)) {
       if (resourceAsStream != null) {
-        return IOUtils.toString(resourceAsStream, "UTF-8");
+        return IOUtils.toString(resourceAsStream, StandardCharsets.UTF_8);
       }
     } catch (final IOException e) {
       LOG.error("", e);
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TestController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TestController.java
index 7f33dac..496f441 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TestController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TestController.java
@@ -31,6 +31,7 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -68,7 +69,8 @@ public class TestController implements Serializable {
       int idCount = 1;
       for (final String page : getXHTMLs(rootDir)) {
         final String base = page.substring(realPath.length(), page.length() - ".xhtml".length());
-        pages.add(new TestPage("tp" + idCount++, URLEncoder.encode(base, "UTF-8")));
+        pages.add(new TestPage("tp" + idCount++, URLEncoder.encode(base, StandardCharsets.UTF_8.name())));
+        // todo: StandardCharsets.UTF_8.name() can be simplified with Java 10
       }
     }
     return pages;
@@ -98,7 +100,8 @@ public class TestController implements Serializable {
       int idCount = 1;
       for (final String testJs : getTestJs(rootDir)) {
         final String base = testJs.substring(realPath.length(), testJs.length() - ".test.js".length());
-        testPages.add(new TestPage("tp" + idCount++, URLEncoder.encode(base, "UTF-8")));
+        testPages.add(new TestPage("tp" + idCount++, URLEncoder.encode(base, StandardCharsets.UTF_8.name())));
+        // todo: StandardCharsets.UTF_8.name() can be simplified with Java 10
       }
     }
     return testPages;