You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2024/08/05 08:02:22 UTC

(myfaces) branch main updated: Faces Spec #1934 - Migrate FacesMessage.Severity to ENUM

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

tandraschko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/main by this push:
     new 998b97f40 Faces Spec #1934 - Migrate FacesMessage.Severity to ENUM
998b97f40 is described below

commit 998b97f409d3022629b79a3f8efdd8d1f0bc0e57
Author: tandraschko <ta...@apache.org>
AuthorDate: Mon Aug 5 10:02:14 2024 +0200

    Faces Spec #1934 - Migrate FacesMessage.Severity to ENUM
---
 .../jakarta/faces/application/FacesMessage.java    | 120 ++++++++++++++-------
 .../faces/application/FacesMessageTest.java        |  40 +++----
 2 files changed, 103 insertions(+), 57 deletions(-)

diff --git a/api/src/main/java/jakarta/faces/application/FacesMessage.java b/api/src/main/java/jakarta/faces/application/FacesMessage.java
index 54501cc8e..3d619979e 100755
--- a/api/src/main/java/jakarta/faces/application/FacesMessage.java
+++ b/api/src/main/java/jakarta/faces/application/FacesMessage.java
@@ -59,7 +59,7 @@ import org.apache.myfaces.core.api.shared.lang.Assert;
  */
 public class FacesMessage implements Serializable
 {
-    private static final long serialVersionUID = 4851488727794169661L;
+    private static final long serialVersionUID = 4851488727794169611L;
 
     /**
      * <code>ResourceBundle</code> identifier for messages whose message identifiers are defined in the JavaServer Faces
@@ -70,28 +70,26 @@ public class FacesMessage implements Serializable
     /**
      * Message severity level indicating an informational message rather than an error.
      */
-    public static final FacesMessage.Severity SEVERITY_INFO = new Severity("INFO", 0);
-
-    /**
-     * Message severity level indicating an success message rather than an error.
-     * @since 5.0
-     */
-    public static final FacesMessage.Severity SEVERITY_SUCCESS = new Severity("SUCCESS", 1);
+    @Deprecated(since = "5.0", forRemoval = true)
+    public static final FacesMessage.Severity SEVERITY_INFO = Severity.INFO;
 
     /**
      * Message severity level indicating that an error might have occurred.
      */
-    public static final FacesMessage.Severity SEVERITY_WARN = new Severity("WARN", 2);
+    @Deprecated(since = "5.0", forRemoval = true)
+    public static final FacesMessage.Severity SEVERITY_WARN = Severity.WARN;
 
     /**
      * Message severity level indicating that an error has occurred.
      */
-    public static final FacesMessage.Severity SEVERITY_ERROR = new Severity("ERROR", 3);
+    @Deprecated(since = "5.0", forRemoval = true)
+    public static final FacesMessage.Severity SEVERITY_ERROR = Severity.ERROR;
 
     /**
      * Message severity level indicating that a serious error has occurred.
      */
-    public static final FacesMessage.Severity SEVERITY_FATAL = new Severity("FATAL", 4);
+    @Deprecated(since = "5.0", forRemoval = true)
+    public static final FacesMessage.Severity SEVERITY_FATAL = Severity.FATAL;
 
     /**
      * Immutable <code>Lis</code> of valid {@link FacesMessage.Severity}instances, in ascending order of their ordinal
@@ -107,11 +105,11 @@ public class FacesMessage implements Serializable
     static
     {
         Map<String, FacesMessage.Severity> map = new HashMap<>(7);
-        map.put(SEVERITY_INFO.toString(), SEVERITY_INFO);
-        map.put(SEVERITY_SUCCESS.toString(), SEVERITY_SUCCESS);
-        map.put(SEVERITY_WARN.toString(), SEVERITY_WARN);
-        map.put(SEVERITY_ERROR.toString(), SEVERITY_ERROR);
-        map.put(SEVERITY_FATAL.toString(), SEVERITY_FATAL);
+        map.put(Severity.INFO.toString(), Severity.INFO);
+        map.put(Severity.SUCCESS.toString(), Severity.SUCCESS);
+        map.put(Severity.WARN.toString(), Severity.WARN);
+        map.put(Severity.ERROR.toString(), Severity.ERROR);
+        map.put(Severity.FATAL.toString(), Severity.FATAL);
         VALUES_MAP = Collections.unmodifiableMap(map);
 
         List<FacesMessage.Severity> severityList = new ArrayList<>(map.values());
@@ -291,7 +289,7 @@ public class FacesMessage implements Serializable
     private void writeObject(ObjectOutputStream out) throws IOException
     {
         out.defaultWriteObject();  // write summary, detail, rendered
-        out.writeInt(this.severity.ordinal);  // FacesMessage.Severity is not Serializable, write ordinal only
+        out.writeInt(this.severity.ordinal());  // FacesMessage.Severity is not Serializable, write ordinal only
     }
 
     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
@@ -300,35 +298,83 @@ public class FacesMessage implements Serializable
 
         // FacesMessage.Severity is not Serializable, read ordinal and get related FacesMessage.Severity
         int severityOrdinal = in.readInt();
-        this.severity = (Severity) VALUES.get(severityOrdinal);
+        this.severity = VALUES.get(severityOrdinal);
     }
 
-    public static class Severity implements Comparable
+    /**
+     * <p>
+     * <span class="changed_modified_5_0">Enum</span> used to represent message severity levels.
+     * </p>
+     */
+    public enum Severity
     {
-        private String name;
-        private int ordinal;
-
-        private Severity(String name, int ordinal)
-        {
-            this.name = name;
-            this.ordinal = ordinal;
-        }
-
-        public int getOrdinal()
-        {
-            return this.ordinal;
-        }
-
+        /**
+         * <p>
+         * Message severity level indicating an informational message rather than an error.
+         * </p>
+         * <p>
+         * Historically, this was a constant class known as FacesMessage.SEVERITY_INFO.
+         * </p>
+         * @since 5.0
+         */
+        INFO,
+
+        /**
+         * <p>
+         * Message severity level indicating an success message rather than an error.
+         * </p>
+         * @since 5.0
+         */
+        SUCCESS,
+
+        /**
+         * <p>
+         * Message severity level indicating that an error might have occurred.
+         * </p>
+         * <p>
+         * Historically, this was a constant class known as FacesMessage.SEVERITY_WARN.
+         * </p>
+         * @since 5.0
+         */
+        WARN,
+
+        /**
+         * <p>
+         * Message severity level indicating that an error has occurred.
+         * </p>
+         * <p>
+         * Historically, this was a constant class known as FacesMessage.SEVERITY_ERROR.
+         * </p>
+         * @since 5.0
+         */
+        ERROR,
+
+        /**
+         * <p>
+         * Message severity level indicating that a serious error has occurred.
+         * </p>
+         * <p>
+         * Historically, this was a constant class known as FacesMessage.SEVERITY_FATAL.
+         * </p>
+         * @since 5.0
+         */
+        FATAL;
+
+        /**
+         * <p>
+         * Return a String representation of this {@link FacesMessage.Severity} instance.
+         * </p>
+         */
         @Override
         public String toString()
         {
-            return this.name;
+            return name() + ' ' + ordinal();
         }
 
-        @Override
-        public int compareTo(Object o)
+        // backward compatibility
+        public int getOrdinal()
         {
-            return getOrdinal() - ((Severity)o).getOrdinal();
+            return ordinal();
         }
     }
 
diff --git a/impl/src/test/java/jakarta/faces/application/FacesMessageTest.java b/impl/src/test/java/jakarta/faces/application/FacesMessageTest.java
index db68ad147..931e5aeaa 100644
--- a/impl/src/test/java/jakarta/faces/application/FacesMessageTest.java
+++ b/impl/src/test/java/jakarta/faces/application/FacesMessageTest.java
@@ -38,7 +38,7 @@ public class FacesMessageTest
     public void testFacesMessage()
     {
         FacesMessage msg = new FacesMessage();
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
+        Assertions.assertEquals(msg.getSeverity(), Severity.INFO);
         Assertions.assertNull(msg.getSummary());
         Assertions.assertNull(msg.getDetail());
     }
@@ -51,7 +51,7 @@ public class FacesMessageTest
     {
         String summary = "summary";
         FacesMessage msg = new FacesMessage(summary);
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
+        Assertions.assertEquals(msg.getSeverity(), Severity.INFO);
         Assertions.assertEquals(msg.getSummary(), summary);
         Assertions.assertEquals(msg.getDetail(), summary);
     }
@@ -65,7 +65,7 @@ public class FacesMessageTest
         String summary = "summary";
         String detail = "detail";
         FacesMessage msg = new FacesMessage(summary, detail);
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
+        Assertions.assertEquals(msg.getSeverity(), Severity.INFO);
         Assertions.assertEquals(msg.getSummary(), summary);
         Assertions.assertEquals(msg.getDetail(), detail);
     }
@@ -78,8 +78,8 @@ public class FacesMessageTest
     {
         String summary = "summary";
         String detail = "detail";
-        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail);
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_ERROR);
+        FacesMessage msg = new FacesMessage(Severity.ERROR, summary, detail);
+        Assertions.assertEquals(msg.getSeverity(), Severity.ERROR);
         Assertions.assertEquals(msg.getSummary(), summary);
         Assertions.assertEquals(msg.getDetail(), detail);
     }
@@ -109,9 +109,9 @@ public class FacesMessageTest
     public void testSetSeverity()
     {
         FacesMessage msg = new FacesMessage();
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
-        msg.setSeverity(FacesMessage.SEVERITY_FATAL);
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_FATAL);
+        Assertions.assertEquals(msg.getSeverity(), Severity.INFO);
+        msg.setSeverity(Severity.FATAL);
+        Assertions.assertEquals(msg.getSeverity(), Severity.FATAL);
     }
 
     /*
@@ -161,23 +161,23 @@ public class FacesMessageTest
     public void testSeverityOrdering()
     {
         // make sure they are ordered correctly from least to worst
-        Assertions.assertTrue(0 > FacesMessage.SEVERITY_INFO.compareTo(FacesMessage.SEVERITY_WARN));
-        Assertions.assertTrue(0 > FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_ERROR));
-        Assertions.assertTrue(0 > FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_FATAL));
+        Assertions.assertTrue(0 > Severity.INFO.compareTo(Severity.WARN));
+        Assertions.assertTrue(0 > Severity.WARN.compareTo(Severity.ERROR));
+        Assertions.assertTrue(0 > Severity.ERROR.compareTo(Severity.FATAL));
         // make sure they are ordered correctly from worts to least
-        Assertions.assertTrue(0 < FacesMessage.SEVERITY_FATAL.compareTo(FacesMessage.SEVERITY_ERROR));
-        Assertions.assertTrue(0 < FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_WARN));
-        Assertions.assertTrue(0 < FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_INFO));
+        Assertions.assertTrue(0 < Severity.FATAL.compareTo(Severity.ERROR));
+        Assertions.assertTrue(0 < Severity.ERROR.compareTo(Severity.WARN));
+        Assertions.assertTrue(0 < Severity.WARN.compareTo(Severity.INFO));
     }
 
     @Test
     public void testSeverityEquality()
     {
         // make sure they all respond as equals when they should
-        Assertions.assertEquals(0, FacesMessage.SEVERITY_INFO.compareTo(FacesMessage.SEVERITY_INFO));
-        Assertions.assertEquals(0, FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_WARN));
-        Assertions.assertEquals(0, FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_ERROR));
-        Assertions.assertEquals(0, FacesMessage.SEVERITY_FATAL.compareTo(FacesMessage.SEVERITY_FATAL));
+        Assertions.assertEquals(0, Severity.INFO.compareTo(Severity.INFO));
+        Assertions.assertEquals(0, Severity.WARN.compareTo(Severity.WARN));
+        Assertions.assertEquals(0, Severity.ERROR.compareTo(Severity.ERROR));
+        Assertions.assertEquals(0, Severity.FATAL.compareTo(Severity.FATAL));
     }
 
     @Test
@@ -187,7 +187,7 @@ public class FacesMessageTest
         for (int i = 0, sz = FacesMessage.VALUES.size(); i < sz; i++)
         {
             FacesMessage.Severity severity = (Severity) FacesMessage.VALUES.get(i);
-            Assertions.assertEquals(i, severity.getOrdinal());
+            Assertions.assertEquals(i, severity.ordinal());
         }
     }
 
@@ -211,7 +211,7 @@ public class FacesMessageTest
         FacesMessage msg = new FacesMessage(summary, detail);
 
         // check if properties are set correctly
-        Assertions.assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
+        Assertions.assertEquals(msg.getSeverity(), Severity.INFO);
         Assertions.assertEquals(msg.getSummary(), summary);
         Assertions.assertEquals(msg.getDetail(), detail);
         Assertions.assertEquals(msg.isRendered(), false);