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 2024/10/09 14:29:17 UTC
(myfaces-tobago) branch main updated: refactor: forbiddenapis (#5562)
This is an automated email from the ASF dual-hosted git repository.
lofwyr pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
The following commit(s) were added to refs/heads/main by this push:
new 5921573adf refactor: forbiddenapis (#5562)
5921573adf is described below
commit 5921573adfb15a11791e47d434b8c87aaeeae1b2
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Oct 9 16:29:12 2024 +0200
refactor: forbiddenapis (#5562)
* refactor: forbiddenapis
Enhance code quality with Maven plugin: forbiddenapis
issue: TOBAGO-2357
---
pom.xml | 45 ++++++++++++++++++++++
.../myfaces/tobago/convert/DurationConverter.java | 11 ++----
.../renderkit/renderer/ToastsRenderer.java | 4 +-
.../org/apache/myfaces/tobago/layout/Measure.java | 5 ++-
.../apache/myfaces/tobago/model/SuggestFilter.java | 6 ++-
.../apache/myfaces/tobago/renderkit/css/Icons.java | 3 +-
.../myfaces/tobago/util/DebugPhaseListener.java | 14 ++++---
.../config/TobagoConfigParserUnitTest.java | 3 +-
.../renderkit/renderer/RendererTestBase.java | 3 +-
.../tobago/renderkit/html/AriasUnitTest.java | 3 +-
.../renderkit/html/DataAttributesUnitTest.java | 4 +-
.../renderkit/html/HtmlElementsUnitTest.java | 5 ++-
.../myfaces/tobago/example/demo/AstroData.java | 3 +-
.../myfaces/tobago/example/demo/CategoryTree.java | 5 ++-
.../example/demo/CurrentValueController.java | 4 +-
.../tobago/example/demo/EventController.java | 4 +-
.../example/demo/InputSuggestController.java | 4 +-
.../myfaces/tobago/example/demo/KillSession.java | 5 ++-
.../tobago/example/demo/LoggingController.java | 7 ++--
.../tobago/example/demo/ManifestReader.java | 3 +-
.../tobago/example/demo/NavigationTree.java | 11 +++---
.../tobago/example/demo/PanelController.java | 3 +-
.../tobago/example/demo/ProgressController.java | 13 ++++---
.../tobago/example/demo/RoleController.java | 1 -
.../myfaces/tobago/example/demo/SearchIndex.java | 3 +-
.../tobago/example/demo/WebSocketController.java | 1 -
.../myfaces/tobago/apt/generate/ClassUtils.java | 3 +-
.../tobago/apt/processor/ClassesGenerator.java | 4 +-
28 files changed, 122 insertions(+), 58 deletions(-)
diff --git a/pom.xml b/pom.xml
index b5cff44885..c407e85001 100644
--- a/pom.xml
+++ b/pom.xml
@@ -443,6 +443,51 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>de.thetaphi</groupId>
+ <artifactId>forbiddenapis</artifactId>
+ <version>3.8</version>
+ <configuration>
+ <!--
+ if the used Java version is too new,
+ don't fail, just do nothing:
+ -->
+ <failOnUnsupportedJava>false</failOnUnsupportedJava>
+ <!--
+ If a class is missing while parsing signatures files, all methods
+ and fields from this class are silently ignored. This is useful
+ in multi-module Maven projects where only some modules have the
+ dependency to which the signature file(s) apply.
+
+ This settings prints no warning at all, so verify the signatures
+ at least once with full dependencies.
+ -->
+<!-- <ignoreSignaturesOfMissingClasses>true</ignoreSignaturesOfMissingClasses>-->
+ <bundledSignatures>
+ <!--
+ This will automatically choose the right
+ signatures based on 'maven.compiler.target':
+ -->
+<!-- <bundledSignature>jdk-unsafe</bundledSignature>-->
+<!-- <bundledSignature>jdk-deprecated</bundledSignature>-->
+ <!-- disallow undocumented classes like sun.misc.Unsafe: -->
+ <bundledSignature>jdk-non-portable</bundledSignature>
+ <!-- don't allow unsafe reflective access: -->
+ <bundledSignature>jdk-reflection</bundledSignature>
+ </bundledSignatures>
+<!-- <signaturesFiles>-->
+<!-- <signaturesFile>./rel/path/to/signatures.txt</signaturesFile>-->
+<!-- </signaturesFiles>-->
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>check</goal>
+ <goal>testCheck</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
<pluginManagement>
<plugins>
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/convert/DurationConverter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/convert/DurationConverter.java
index a53f2c4956..db5d760dc3 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/convert/DurationConverter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/convert/DurationConverter.java
@@ -28,12 +28,10 @@ import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;
import jakarta.faces.convert.Converter;
import jakarta.faces.convert.ConverterException;
-
import java.lang.invoke.MethodHandles;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import java.util.StringTokenizer;
/**
@@ -81,7 +79,6 @@ public class DurationConverter implements Converter {
final double factor = getUnitFactor(component);
aDouble = aDouble * factor;
- final NumberFormat format = new DecimalFormat("00");
long value = Double.valueOf(aDouble).longValue();
final int seconds = (int) (value % 60);
value = value / 60;
@@ -90,11 +87,11 @@ public class DurationConverter implements Converter {
final String string;
if (value > 0) {
string = (negative ? "-" : "") + value + ":"
- + format.format(minutes) + ":"
- + format.format(seconds);
+ + String.format(Locale.ROOT, "%02d", minutes) + ":"
+ + String.format(Locale.ROOT, "%02d", seconds);
} else {
string = (negative ? "-" : "") + minutes + ":"
- + format.format(seconds);
+ + String.format(Locale.ROOT, "%02d", seconds);
}
LOG.debug("string = '{}'", string);
return string;
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ToastsRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ToastsRenderer.java
index e7e0d58f18..9518915476 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ToastsRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ToastsRenderer.java
@@ -19,8 +19,6 @@
package org.apache.myfaces.tobago.internal.renderkit.renderer;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
import org.apache.myfaces.tobago.application.Toast;
import org.apache.myfaces.tobago.component.Facets;
import org.apache.myfaces.tobago.context.Markup;
@@ -45,6 +43,8 @@ import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.time.LocalTime;
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java
index 9f24dc60fd..48ed36a358 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java
@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
import java.io.Serializable;
import java.lang.invoke.MethodHandles;
+import java.util.Locale;
/**
* In PDLs the class {@link org.apache.myfaces.tobago.layout.MeasureEditor} will convert the string literals.
@@ -113,7 +114,7 @@ public final class Measure implements Serializable {
for (int i = 4; i >= 2; i--) {
final int pos = length - i;
if (length >= i && Character.isLetter(s.charAt(pos))) {
- return new Measure(s.substring(0, pos), Unit.valueOf(s.substring(pos).toUpperCase()));
+ return new Measure(s.substring(0, pos), Unit.valueOf(s.substring(pos).toUpperCase(Locale.ROOT)));
}
}
return new Measure(s, defaultUnit);
@@ -214,7 +215,7 @@ public final class Measure implements Serializable {
private final String value;
Unit() {
- value = name().equals("PERCENT") ? "%" : name().toLowerCase();
+ value = name().equals("PERCENT") ? "%" : name().toLowerCase(Locale.ROOT);
}
String getValue() {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SuggestFilter.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SuggestFilter.java
index e616e61eaa..ea47a21aed 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SuggestFilter.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SuggestFilter.java
@@ -19,6 +19,8 @@
package org.apache.myfaces.tobago.model;
+import java.util.Locale;
+
public enum SuggestFilter {
all,
@@ -30,13 +32,13 @@ public enum SuggestFilter {
public static final String CONTAINS = "contains";
public String getValue() {
- return name().toLowerCase();
+ return name().toLowerCase(Locale.ROOT);
}
public static SuggestFilter parse(final String string) {
if (string == null) {
return null;
}
- return valueOf(string.toUpperCase());
+ return valueOf(string.toUpperCase(Locale.ROOT));
}
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/Icons.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/Icons.java
index d89a12f18f..342f1f8fd6 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/Icons.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/Icons.java
@@ -23,6 +23,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;
+import java.util.Locale;
import java.util.regex.Pattern;
/**
@@ -62,7 +63,7 @@ public enum Icons implements CssItem {
private final String clazz;
Icons() {
- this.clazz = "bi-" + name().toLowerCase().replaceAll("_", "-");
+ this.clazz = "bi-" + name().toLowerCase(Locale.ROOT).replaceAll("_", "-");
}
@Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java
index 8d9116e861..a1ee40b0bc 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/util/DebugPhaseListener.java
@@ -31,10 +31,10 @@ import jakarta.faces.event.PhaseId;
import jakarta.faces.event.PhaseListener;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
-
import java.lang.invoke.MethodHandles;
import java.text.MessageFormat;
import java.util.Iterator;
+import java.util.Locale;
import java.util.Map;
public class DebugPhaseListener implements PhaseListener {
@@ -84,10 +84,14 @@ public class DebugPhaseListener implements PhaseListener {
for (final Iterator<FacesMessage> messageIterator
= facesContext.getMessages(clientId); messageIterator.hasNext(); ) {
final FacesMessage msg = messageIterator.next();
- LOG.info(MessageFormat.format("Faces message found."
- + "\n Component: {0} \n Severity : {1}"
- + "\n Summary : {2} \n Detail : {3}",
- clientId, msg.getSeverity(), msg.getSummary(), msg.getDetail()));
+ MessageFormat messageFormat = new MessageFormat("""
+ Faces message found.
+ Component: {0}
+ Severity : {1}
+ Summary : {2}
+ Detail : {3}""", Locale.ROOT);
+ LOG.info(messageFormat.format(new Object[]{
+ clientId, msg.getSeverity(), msg.getSummary(), msg.getDetail()}));
}
}
}
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParserUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParserUnitTest.java
index 33e08ddfd5..c9fab83e8f 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParserUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParserUnitTest.java
@@ -32,6 +32,7 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -176,7 +177,7 @@ public class TobagoConfigParserUnitTest {
// check hash code values
for (final Field field : fields) {
final int hash = field.getInt(dummy);
- final String name = field.getName().toLowerCase().replace('_', '-');
+ final String name = field.getName().toLowerCase(Locale.ROOT).replace('_', '-');
Assertions.assertEquals(name.hashCode(), hash, "Are the constants correct?");
}
}
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/RendererTestBase.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/RendererTestBase.java
index ccedb060c6..9bea3c614e 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/RendererTestBase.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/RendererTestBase.java
@@ -27,6 +27,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -43,7 +44,7 @@ public abstract class RendererTestBase extends AbstractTobagoTestBase {
if (is == null) {
throw new FileNotFoundException(fileName);
}
- try (InputStreamReader isr = new InputStreamReader(is);
+ try (InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8);
BufferedReader reader = new BufferedReader(isr)) {
final String xml = reader.lines().collect(Collectors.joining(System.lineSeparator()))
.replaceAll("<!--[^>]*-->", "")
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/AriasUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/AriasUnitTest.java
index 8514295984..dea688a00a 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/AriasUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/AriasUnitTest.java
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Field;
+import java.util.Locale;
public class AriasUnitTest {
@@ -36,7 +37,7 @@ public class AriasUnitTest {
final String extension = value.substring("aria-".length());
final String name = field.getName();
- Assertions.assertEquals(name, extension.toUpperCase());
+ Assertions.assertEquals(name, extension.toUpperCase(Locale.ROOT));
}
}
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/DataAttributesUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/DataAttributesUnitTest.java
index 1cef0c7e28..5083d58381 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/DataAttributesUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/DataAttributesUnitTest.java
@@ -22,6 +22,8 @@ package org.apache.myfaces.tobago.renderkit.html;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import java.util.Locale;
+
public class DataAttributesUnitTest {
@Test
@@ -41,7 +43,7 @@ public class DataAttributesUnitTest {
? value.substring("data-tobago-".length())
: value.substring("data-".length());
final String name = d.name();
- Assertions.assertEquals(name, extension.toUpperCase().replaceAll("-", "_"));
+ Assertions.assertEquals(name, extension.toUpperCase(Locale.ROOT).replaceAll("-", "_"));
}
}
}
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/HtmlElementsUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/HtmlElementsUnitTest.java
index e1de0bffed..a9c974f089 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/HtmlElementsUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/html/HtmlElementsUnitTest.java
@@ -28,6 +28,7 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
public class HtmlElementsUnitTest {
@@ -39,10 +40,10 @@ public class HtmlElementsUnitTest {
final String value = element.getValue();
Assertions.assertEquals(
value,
- element.name().toLowerCase().replaceAll("_", "-"),
+ element.name().toLowerCase(Locale.ROOT).replaceAll("_", "-"),
"Check to lower: '" + element + "'");
Assertions.assertEquals(
- value.toUpperCase().replaceAll("-", "_"),
+ value.toUpperCase(Locale.ROOT).replaceAll("-", "_"),
element.name(),
"Check to upper: '" + element + "'");
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AstroData.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AstroData.java
index 3ccfc3e893..fb89714149 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AstroData.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AstroData.java
@@ -30,6 +30,7 @@ import jakarta.inject.Named;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.InputStreamReader;
import java.io.Serializable;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -53,7 +54,7 @@ public class AstroData implements Serializable {
public AstroData() {
final InputStreamReader reader
- = new InputStreamReader(AstroData.class.getResourceAsStream("astro-data.json"));
+ = new InputStreamReader(AstroData.class.getResourceAsStream("astro-data.json"), StandardCharsets.UTF_8);
Gson gson = new GsonBuilder().create();
dataList = gson.fromJson(reader, new TypeToken<ArrayList<SolarObject>>() {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CategoryTree.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CategoryTree.java
index adde05e73d..596ed723bc 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CategoryTree.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CategoryTree.java
@@ -26,6 +26,7 @@ import org.apache.myfaces.tobago.context.Markup;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
public class CategoryTree {
@@ -34,8 +35,8 @@ public class CategoryTree {
public static DefaultMutableTreeNode createSample() {
- final InputStreamReader reader
- = new InputStreamReader(AstroData.class.getResourceAsStream("category-tree.json"));
+ final InputStreamReader reader = new InputStreamReader(
+ AstroData.class.getResourceAsStream("category-tree.json"), StandardCharsets.UTF_8);
final Gson gson = new GsonBuilder().create();
final CategoryNode node = gson.fromJson(reader, new TypeToken<CategoryNode>() {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CurrentValueController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CurrentValueController.java
index c4ce9a0a2f..a182145c9d 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CurrentValueController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CurrentValueController.java
@@ -21,9 +21,9 @@ package org.apache.myfaces.tobago.example.demo;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Named;
-
import java.time.LocalDate;
import java.util.Currency;
+import java.util.Locale;
@Named
@RequestScoped
@@ -41,7 +41,7 @@ public class CurrentValueController {
}
public String toUpperCase(final String text) {
- return text != null ? text.toUpperCase() : null;
+ return text != null ? text.toUpperCase(Locale.ROOT) : null;
}
public LocalDate plus50(final LocalDate base) {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/EventController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/EventController.java
index 686e651042..b3d6b2a8f5 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/EventController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/EventController.java
@@ -82,12 +82,12 @@ import jakarta.faces.event.ActionEvent;
import jakarta.faces.event.AjaxBehaviorEvent;
import jakarta.faces.event.ValueChangeEvent;
import jakarta.inject.Named;
-
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
@@ -241,7 +241,7 @@ public class EventController implements Serializable {
EventsOnComponent(final UIComponentBase component) {
final String simpleName = component.getClass().getSimpleName();
- tagName = simpleName.substring(2, 3).toLowerCase() + simpleName.substring(3);
+ tagName = simpleName.substring(2, 3).toLowerCase(Locale.ROOT) + simpleName.substring(3);
if (component.getEventNames() != null) {
this.eventNames.addAll(component.getEventNames());
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/InputSuggestController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/InputSuggestController.java
index e5925bd6b5..4119a2c95e 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/InputSuggestController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/InputSuggestController.java
@@ -30,11 +30,11 @@ import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.component.UIInput;
import jakarta.faces.model.SelectItem;
import jakarta.inject.Named;
-
import java.io.Serializable;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
@SessionScoped
@Named
@@ -166,7 +166,7 @@ public class InputSuggestController implements Serializable {
items.add(item);
}
} else {
- if (dataRow[2].toLowerCase().startsWith(prefix.toLowerCase())) {
+ if (dataRow[2].toLowerCase(Locale.ROOT).startsWith(prefix.toLowerCase(Locale.ROOT))) {
final AutoSuggestItem item = new AutoSuggestItem();
item.setLabel(dataRow[0]);
item.setValue(dataRow[2]);
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/KillSession.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/KillSession.java
index 10ea28caa0..5bacd0c9f4 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/KillSession.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/KillSession.java
@@ -27,6 +27,7 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
/**
* Simple Servlet to kill the user session.
@@ -40,9 +41,9 @@ public class KillSession extends HttpServlet {
final HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
- response.getOutputStream().write("The user session was killed!".getBytes());
+ response.getOutputStream().write("The user session was killed!".getBytes(StandardCharsets.UTF_8));
} else {
- response.getOutputStream().write("There is no user session to kill!".getBytes());
+ response.getOutputStream().write("There is no user session to kill!".getBytes(StandardCharsets.UTF_8));
}
}
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/LoggingController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/LoggingController.java
index 0d1d87dfb2..4e469f94ce 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/LoggingController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/LoggingController.java
@@ -25,12 +25,12 @@ import org.slf4j.LoggerFactory;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
-
import java.io.PrintStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
/**
* Provides the possibility to get information about various logging APIs available in the current setup.
@@ -273,7 +273,8 @@ public class LoggingController {
}
if (SLF4J.equals(id) || JCL.equals(id)) {
- final String methodName = "is" + level.substring(0, 1).toUpperCase() + level.substring(1) + "Enabled";
+ final String methodName
+ = "is" + level.substring(0, 1).toUpperCase(Locale.ROOT) + level.substring(1) + "Enabled";
final Object hasLevel = c.getClass().getMethod(methodName).invoke(c);
return (Boolean) hasLevel;
}
@@ -287,7 +288,7 @@ public class LoggingController {
final Class<?> levelClass = Class.forName(clazz);
final Method isLoggable = c.getClass().getMethod(enabledMethod, levelClass);
final Method parse = levelClass.getMethod(levelMethod, String.class);
- final Object levelObject = parse.invoke(null, level.toUpperCase());
+ final Object levelObject = parse.invoke(null, level.toUpperCase(Locale.ROOT));
final Object hasLevel = isLoggable.invoke(c, levelObject);
return (Boolean) hasLevel;
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java
index 905a4cabed..6b8fc45d66 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java
@@ -35,6 +35,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
+import java.util.Locale;
import java.util.TimeZone;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
@@ -75,7 +76,7 @@ public class ManifestReader {
jar.add(new ManifestEntry(key.toString(), attributes.get(key).toString()));
}
if (name.startsWith("tobago-core")) {
- final DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+ final DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
try {
buildTime = format.parse(attributes.getValue("Build-Time"));
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 ae0849aef4..96b746bd75 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
@@ -19,6 +19,10 @@
package org.apache.myfaces.tobago.example.demo;
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.faces.context.ExternalContext;
@@ -26,10 +30,6 @@ import jakarta.faces.context.FacesContext;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.servlet.ServletContext;
-import org.apache.commons.io.IOUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -41,6 +41,7 @@ import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
@@ -102,7 +103,7 @@ public class NavigationTree implements Serializable {
public List<NavigationNode> search(final String searchString) {
List<NavigationNode> result = new ArrayList<>(20);
for (String s : searchIndex.keySet()) {
- if (s.contains(searchString.toLowerCase())) {
+ if (s.contains(searchString.toLowerCase(Locale.ROOT))) {
result.add(searchIndex.get(s));
}
// if (result.size() >= 20) {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PanelController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PanelController.java
index 8851490e6c..ce0ba76f80 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PanelController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PanelController.java
@@ -25,6 +25,7 @@ import jakarta.inject.Named;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
@RequestScoped
@Named
@@ -37,7 +38,7 @@ public class PanelController implements Serializable {
}
public boolean isOddDecaSecond() {
- String second = new SimpleDateFormat("ss").format(getCurrentDate());
+ String second = new SimpleDateFormat("ss", Locale.ROOT).format(getCurrentDate());
return second.startsWith("1") || second.startsWith("3") || second.startsWith("5");
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ProgressController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ProgressController.java
index 6cfb5e9fca..a7602421a5 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ProgressController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ProgressController.java
@@ -27,6 +27,7 @@ import javax.swing.DefaultBoundedRangeModel;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
@SessionScoped
@Named
@@ -57,17 +58,17 @@ public class ProgressController implements Serializable {
}
public double getCurrentHours() {
- final SimpleDateFormat sdf = new SimpleDateFormat("HH");
- return Double.valueOf(sdf.format(getCurrentDate()));
+ final SimpleDateFormat sdf = new SimpleDateFormat("HH", Locale.ROOT);
+ return Double.parseDouble(sdf.format(getCurrentDate()));
}
public double getCurrentMinutes() {
- final SimpleDateFormat sdf = new SimpleDateFormat("mm");
- return Double.valueOf(sdf.format(getCurrentDate()));
+ final SimpleDateFormat sdf = new SimpleDateFormat("mm", Locale.ROOT);
+ return Double.parseDouble(sdf.format(getCurrentDate()));
}
public double getCurrentSeconds() {
- final SimpleDateFormat sdf = new SimpleDateFormat("ss");
- return Double.valueOf(sdf.format(getCurrentDate()));
+ final SimpleDateFormat sdf = new SimpleDateFormat("ss", Locale.ROOT);
+ return Double.parseDouble(sdf.format(getCurrentDate()));
}
}
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/RoleController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/RoleController.java
index 9de70076f0..2ae3c13f37 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/RoleController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/RoleController.java
@@ -22,7 +22,6 @@ package org.apache.myfaces.tobago.example.demo;
import jakarta.annotation.security.RolesAllowed;
import jakarta.enterprise.context.SessionScoped;
import jakarta.inject.Named;
-
import java.io.Serializable;
import java.time.LocalTime;
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SearchIndex.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SearchIndex.java
index ce4dc25550..6323f5b445 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SearchIndex.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SearchIndex.java
@@ -20,11 +20,12 @@
package org.apache.myfaces.tobago.example.demo;
import java.util.HashMap;
+import java.util.Locale;
public class SearchIndex extends HashMap<String, NavigationNode> {
public void add(NavigationNode node) {
- String key = node.getLabel().toLowerCase();
+ String key = node.getLabel().toLowerCase(Locale.ROOT);
// XXX little hack to have more than one result with same name
while (containsKey(key)) {
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/WebSocketController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/WebSocketController.java
index f5170e3a03..014f85ffa2 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/WebSocketController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/WebSocketController.java
@@ -27,7 +27,6 @@ import jakarta.faces.push.Push;
import jakarta.faces.push.PushContext;
import jakarta.inject.Inject;
import jakarta.inject.Named;
-
import java.io.Serializable;
import java.lang.invoke.MethodHandles;
import java.time.LocalTime;
diff --git a/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/ClassUtils.java b/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/ClassUtils.java
index 2c1d3672c9..a41ca141cf 100644
--- a/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/ClassUtils.java
+++ b/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/ClassUtils.java
@@ -20,6 +20,7 @@
package org.apache.myfaces.tobago.apt.generate;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
public class ClassUtils {
@@ -60,7 +61,7 @@ public class ClassUtils {
public static String getSmallSimpleName(final String qualifiedName) {
final String simpleName = getSimpleName(qualifiedName);
if (simpleName != null && simpleName.length() > 2) {
- return simpleName.substring(2, 3).toLowerCase() + simpleName.substring(3);
+ return simpleName.substring(2, 3).toLowerCase(Locale.ROOT) + simpleName.substring(3);
} else {
return simpleName;
}
diff --git a/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/processor/ClassesGenerator.java b/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/processor/ClassesGenerator.java
index 1884e3e370..c9bd7d9347 100644
--- a/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/processor/ClassesGenerator.java
+++ b/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/processor/ClassesGenerator.java
@@ -19,7 +19,6 @@
package org.apache.myfaces.tobago.apt.processor;
-import jakarta.faces.component.UIComponent;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.apache.myfaces.tobago.apt.annotation.Behavior;
@@ -33,6 +32,7 @@ import org.apache.myfaces.tobago.apt.generate.ComponentInfo;
import org.apache.myfaces.tobago.apt.generate.ComponentPropertyInfo;
import org.apache.myfaces.tobago.apt.generate.PropertyInfo;
+import jakarta.faces.component.UIComponent;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
@@ -115,7 +115,7 @@ public class ClassesGenerator extends AbstractGenerator {
if (componentTag.generate()) {
final Tag tag = declaration.getAnnotation(Tag.class);
final String generic = "org.apache.myfaces.tobago.internal.component.AbstractUI"
- + tag.name().substring(0, 1).toUpperCase() + tag.name().substring(1);
+ + tag.name().substring(0, 1).toUpperCase(Locale.ROOT) + tag.name().substring(1);
final StringTemplate componentStringTemplate = componentStringTemplateGroup.getInstanceOf("component");
final ComponentInfo componentInfo = new ComponentInfo(declaration, componentTag);
componentInfo.setSuperClass(generic);