Replace String UTF-8 with a charset

Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java b/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
index 77ab1e1..e69569e 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -57,6 +57,8 @@
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.SynchronousBundleListener;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 /**
  * Utility class to deal with OSGi runtime specific behavior.
  * This is mainly to handle META-INF/services lookup
@@ -210,7 +212,7 @@
                 if (LOGGER.isLoggable(Level.FINEST)) {
                     LOGGER.log(Level.FINEST, "Loading providers for SPI: {0}", spi);
                 }
-                reader = new BufferedReader(new InputStreamReader(spiRegistryUrl.openStream(), "UTF-8"));
+                reader = new BufferedReader(new InputStreamReader(spiRegistryUrl.openStream(), UTF_8));
                 String providerClassName;
 
                 final List<Class<?>> providerClasses = new ArrayList<Class<?>>();
diff --git a/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java b/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
index 523614c..b543d01 100644
--- a/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
+++ b/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,13 +16,11 @@
 
 package org.glassfish.jersey.uri;
 
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URLDecoder;
 import java.nio.ByteBuffer;
 import java.nio.Buffer;
 import java.nio.CharBuffer;
-import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.LinkedList;
@@ -34,6 +32,8 @@
 import org.glassfish.jersey.internal.LocalizationMessages;
 import org.glassfish.jersey.internal.util.collection.MultivaluedStringMap;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 /**
  * Utility class for validating, encoding and decoding components
  * of a URI.
@@ -333,7 +333,7 @@
 
     private static void appendUTF8EncodedCharacter(final StringBuilder sb, final int codePoint) {
         final CharBuffer chars = CharBuffer.wrap(Character.toChars(codePoint));
-        final ByteBuffer bytes = UTF_8_CHARSET.encode(chars);
+        final ByteBuffer bytes = UTF_8.encode(chars);
 
         while (bytes.hasRemaining()) {
             appendPercentEncodedOctet(sb, bytes.get() & 0xFF);
@@ -424,8 +424,6 @@
         return table;
     }
 
-    private static final Charset UTF_8_CHARSET = Charset.forName("UTF-8");
-
     /**
      * Decodes characters of a string that are percent-encoded octets using
      * UTF-8 decoding (if needed).
@@ -565,19 +563,14 @@
     @SuppressWarnings("StatementWithEmptyBody")
     private static void decodeQueryParam(final MultivaluedMap<String, String> params, final String param,
                                          final boolean decodeNames, final boolean decodeValues) {
-        try {
-            final int equals = param.indexOf('=');
-            if (equals > 0) {
-                params.add((decodeNames) ? URLDecoder.decode(param.substring(0, equals), "UTF-8") : param.substring(0, equals),
-                        (decodeValues) ? URLDecoder.decode(param.substring(equals + 1), "UTF-8") : param.substring(equals + 1));
-            } else if (equals == 0) {
-                // no key declared, ignore
-            } else if (param.length() > 0) {
-                params.add((decodeNames) ? URLDecoder.decode(param, "UTF-8") : param, "");
-            }
-        } catch (final UnsupportedEncodingException ex) {
-            // This should never occur
-            throw new IllegalArgumentException(ex);
+        final int equals = param.indexOf('=');
+        if (equals > 0) {
+            params.add((decodeNames) ? URLDecoder.decode(param.substring(0, equals), UTF_8) : param.substring(0, equals),
+                    (decodeValues) ? URLDecoder.decode(param.substring(equals + 1), UTF_8) : param.substring(equals + 1));
+        } else if (equals == 0) {
+            // no key declared, ignore
+        } else if (param.length() > 0) {
+            params.add((decodeNames) ? URLDecoder.decode(param, UTF_8) : param, "");
         }
     }
 
@@ -853,7 +846,7 @@
             return i + 2;
         } else {
             //
-            final CharBuffer cb = UTF_8_CHARSET.decode(bb);
+            final CharBuffer cb = UTF_8.decode(bb);
             sb.append(cb.toString());
             return i + ((Buffer) bb).limit() * 3 - 1;
         }
diff --git a/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java b/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
index 57468eb..aeb1f46 100644
--- a/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
+++ b/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,7 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
@@ -360,7 +361,7 @@
 
             for (final StreamResult result : results) {
                 final CharArrayWriter writer = (CharArrayWriter) result.getWriter();
-                final byte[] contents = writer.toString().getBytes("UTF8");
+                final byte[] contents = writer.toString().getBytes(StandardCharsets.UTF_8);
                 extraFiles.put(
                         result.getSystemId(),
                         new ApplicationDescription.ExternalGrammar(
diff --git a/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java b/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
index 4be0e26..27c8df5 100644
--- a/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
+++ b/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -18,6 +18,7 @@
 
 import java.lang.annotation.Annotation;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -44,8 +45,6 @@
  */
 public final class TemplateHelper {
 
-    private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");
-
     /**
      * Return an absolute path to the given class where segments are separated using {@code delim} character and {@code path}
      * is appended to this path.
@@ -138,7 +137,7 @@
         final String enc = PropertiesHelper.getValue(configuration.getProperties(), MvcFeature.ENCODING + suffix,
                 String.class, null);
         if (enc == null) {
-            return DEFAULT_ENCODING;
+            return StandardCharsets.UTF_8;
         } else {
             return Charset.forName(enc);
         }
diff --git a/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java b/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
index f130472..1a9c6f4 100644
--- a/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
+++ b/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,6 +23,7 @@
 import java.lang.reflect.Array;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -126,7 +127,7 @@
             }
             out.write(']');
         } else {
-            out.write(t.toString().getBytes("UTF-8"));
+            out.write(t.toString().getBytes(StandardCharsets.UTF_8));
         }
     }
 
diff --git a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
index 6e137af..be2bd61 100644
--- a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
+++ b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -20,7 +20,7 @@
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBException;
@@ -40,8 +40,6 @@
  */
 public class BaseJsonMarshaller implements JettisonMarshaller, JettisonConfigured {
 
-    private static final Charset UTF8 = Charset.forName("UTF-8");
-
     protected final Marshaller jaxbMarshaller;
     protected JettisonConfig jsonConfig;
 
@@ -67,7 +65,7 @@
             throw new IllegalArgumentException("The output stream is null");
         }
 
-        marshallToJSON(o, new OutputStreamWriter(outputStream, UTF8));
+        marshallToJSON(o, new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
     }
 
     public void marshallToJSON(Object o, Writer writer) throws JAXBException {
diff --git a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
index 0aa13c2..a5bdaeb 100644
--- a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
+++ b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -19,7 +19,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
@@ -41,8 +41,6 @@
  */
 public class BaseJsonUnmarshaller implements JettisonUnmarshaller, JettisonConfigured {
 
-    private static final Charset UTF8 = Charset.forName("UTF-8");
-
     protected final Unmarshaller jaxbUnmarshaller;
     protected final JettisonConfig jsonConfig;
 
@@ -62,7 +60,7 @@
 
     // JsonUnmarshaller
     public <T> T unmarshalFromJSON(InputStream inputStream, Class<T> expectedType) throws JAXBException {
-        return unmarshalFromJSON(new InputStreamReader(inputStream, UTF8), expectedType);
+        return unmarshalFromJSON(new InputStreamReader(inputStream, StandardCharsets.UTF_8), expectedType);
     }
 
     @SuppressWarnings("unchecked")
@@ -75,7 +73,7 @@
     }
 
     public <T> JAXBElement<T> unmarshalJAXBElementFromJSON(InputStream inputStream, Class<T> declaredType) throws JAXBException {
-        return unmarshalJAXBElementFromJSON(new InputStreamReader(inputStream, UTF8), declaredType);
+        return unmarshalJAXBElementFromJSON(new InputStreamReader(inputStream, StandardCharsets.UTF_8), declaredType);
     }
 
     public <T> JAXBElement<T> unmarshalJAXBElementFromJSON(Reader reader, Class<T> declaredType) throws JAXBException {
diff --git a/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java b/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
index 4d63506..13306bd 100644
--- a/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
+++ b/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,10 +16,10 @@
 
 package org.glassfish.jersey.media.sse;
 
-import java.nio.charset.Charset;
-
 import org.glassfish.jersey.server.ChunkedOutput;
 
+import java.nio.charset.StandardCharsets;
+
 /**
  * Outbound Server-Sent Events channel.
  *
@@ -31,7 +31,7 @@
  */
 public class EventOutput extends ChunkedOutput<OutboundEvent> {
     // encoding does not matter for lower ASCII characters
-    private static final byte[] SSE_EVENT_DELIMITER = "\n".getBytes(Charset.forName("UTF-8"));
+    private static final byte[] SSE_EVENT_DELIMITER = "\n".getBytes(StandardCharsets.UTF_8);
 
     /**
      * Create new outbound Server-Sent Events channel.
diff --git a/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java b/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
index ee770cd..0809552 100644
--- a/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
+++ b/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,7 +16,6 @@
 
 package org.glassfish.jersey.oauth1.signature;
 
-import java.io.UnsupportedEncodingException;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 
@@ -25,6 +24,8 @@
 
 import org.glassfish.jersey.uri.UriComponent;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 
 /**
  * An OAuth signature method that implements HMAC-SHA1.
@@ -78,11 +79,7 @@
 
         byte[] key;
 
-        try {
-            key = buf.toString().getBytes("UTF-8");
-        } catch (UnsupportedEncodingException uee) {
-            throw new IllegalStateException(uee);
-        }
+        key = buf.toString().getBytes(UTF_8);
 
         SecretKeySpec spec = new SecretKeySpec(key, SIGNATURE_ALGORITHM);