mumrah commented on code in PR #12072:
URL: https://github.com/apache/kafka/pull/12072#discussion_r856529766


##########
core/src/test/scala/unit/kafka/api/ApiVersionTest.scala:
##########
@@ -184,6 +184,37 @@ class ApiVersionTest {
     assertEquals("3.2", KAFKA_3_2_IV0.shortVersion)
   }
 
+  @Test def testVersion(): Unit = {
+    assertEquals("0.8.0", KAFKA_0_8_0.version)
+    assertEquals("0.8.2", KAFKA_0_8_2.version)
+    assertEquals("0.10.0-IV0", KAFKA_0_10_0_IV0.version)
+    assertEquals("0.10.0-IV1", KAFKA_0_10_0_IV1.version)
+    assertEquals("0.11.0-IV0", KAFKA_0_11_0_IV0.version)
+    assertEquals("0.11.0-IV1", KAFKA_0_11_0_IV1.version)
+    assertEquals("0.11.0-IV2", KAFKA_0_11_0_IV2.version)
+    assertEquals("1.0-IV0", KAFKA_1_0_IV0.version)
+    assertEquals("1.1-IV0", KAFKA_1_1_IV0.version)
+    assertEquals("2.0-IV0", KAFKA_2_0_IV0.version)
+    assertEquals("2.0-IV1", KAFKA_2_0_IV1.version)
+    assertEquals("2.1-IV0", KAFKA_2_1_IV0.version)
+    assertEquals("2.1-IV1", KAFKA_2_1_IV1.version)
+    assertEquals("2.1-IV2", KAFKA_2_1_IV2.version)
+    assertEquals("2.2-IV0", KAFKA_2_2_IV0.version)
+    assertEquals("2.2-IV1", KAFKA_2_2_IV1.version)
+    assertEquals("2.3-IV0", KAFKA_2_3_IV0.version)
+    assertEquals("2.3-IV1", KAFKA_2_3_IV1.version)
+    assertEquals("2.4-IV0", KAFKA_2_4_IV0.version)
+    assertEquals("2.5-IV0", KAFKA_2_5_IV0.version)
+    assertEquals("2.6-IV0", KAFKA_2_6_IV0.version)
+    assertEquals("2.7-IV2", KAFKA_2_7_IV2.version)
+    assertEquals("2.8-IV0", KAFKA_2_8_IV0.version)
+    assertEquals("2.8-IV1", KAFKA_2_8_IV1.version)
+    assertEquals("3.0-IV0", KAFKA_3_0_IV0.version)
+    assertEquals("3.0-IV1", KAFKA_3_0_IV1.version)
+    assertEquals("3.1-IV0", KAFKA_3_1_IV0.version)
+    assertEquals("3.2-IV0", KAFKA_3_2_IV0.version)

Review Comment:
   We're missing 3.3-IV0 here



##########
server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java:
##########
@@ -161,19 +176,7 @@ public RecordVersion recordVersion() {
     }
 
     public String shortVersion() {
-        Pattern versionPattern = Pattern.compile("^IBP_([\\d_]+)");
-        Matcher matcher = versionPattern.matcher(this.name());
-        if (matcher.find()) {
-            String withoutIV = matcher.group(1);
-            // remove any trailing underscores
-            if (withoutIV.endsWith("_")) {
-                withoutIV = withoutIV.substring(0, withoutIV.length() - 1);
-            }
-            return withoutIV.replace("_", ".");
-        } else {
-            throw new IllegalArgumentException("Metadata version: " + 
this.name() + " does not fit "
-                    + "the accepted pattern.");
-        }
+        return shortVersion;
     }
 
     public String version() {

Review Comment:
   This should just return the `version` that you're setting in the constructor



##########
server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java:
##########
@@ -80,101 +80,101 @@ class MetadataVersionTest {
 
     @Test
     public void testApply() {
-        assertEquals(IBP_0_8_0, MetadataVersion.apply("0.8.0"));
-        assertEquals(IBP_0_8_0, MetadataVersion.apply("0.8.0.0"));
-        assertEquals(IBP_0_8_0, MetadataVersion.apply("0.8.0.1"));
+        assertEquals(IBP_0_8_0, MetadataVersion.fromVersionString("0.8.0"));
+        assertEquals(IBP_0_8_0, MetadataVersion.fromVersionString("0.8.0.0"));
+        assertEquals(IBP_0_8_0, MetadataVersion.fromVersionString("0.8.0.1"));
 
-        assertEquals(IBP_0_8_1, MetadataVersion.apply("0.8.1"));
-        assertEquals(IBP_0_8_1, MetadataVersion.apply("0.8.1.0"));
-        assertEquals(IBP_0_8_1, MetadataVersion.apply("0.8.1.1"));
+        assertEquals(IBP_0_8_1, MetadataVersion.fromVersionString("0.8.1"));
+        assertEquals(IBP_0_8_1, MetadataVersion.fromVersionString("0.8.1.0"));
+        assertEquals(IBP_0_8_1, MetadataVersion.fromVersionString("0.8.1.1"));
 
-        assertEquals(IBP_0_8_2, MetadataVersion.apply("0.8.2"));
-        assertEquals(IBP_0_8_2, MetadataVersion.apply("0.8.2.0"));
-        assertEquals(IBP_0_8_2, MetadataVersion.apply("0.8.2.1"));
+        assertEquals(IBP_0_8_2, MetadataVersion.fromVersionString("0.8.2"));
+        assertEquals(IBP_0_8_2, MetadataVersion.fromVersionString("0.8.2.0"));
+        assertEquals(IBP_0_8_2, MetadataVersion.fromVersionString("0.8.2.1"));
 
-        assertEquals(IBP_0_9_0, MetadataVersion.apply("0.9.0"));
-        assertEquals(IBP_0_9_0, MetadataVersion.apply("0.9.0.0"));
-        assertEquals(IBP_0_9_0, MetadataVersion.apply("0.9.0.1"));
+        assertEquals(IBP_0_9_0, MetadataVersion.fromVersionString("0.9.0"));
+        assertEquals(IBP_0_9_0, MetadataVersion.fromVersionString("0.9.0.0"));
+        assertEquals(IBP_0_9_0, MetadataVersion.fromVersionString("0.9.0.1"));
 
-        assertEquals(IBP_0_10_0_IV0, MetadataVersion.apply("0.10.0-IV0"));
+        assertEquals(IBP_0_10_0_IV0, 
MetadataVersion.fromVersionString("0.10.0-IV0"));
 
-        assertEquals(IBP_0_10_0_IV1, MetadataVersion.apply("0.10.0"));
-        assertEquals(IBP_0_10_0_IV1, MetadataVersion.apply("0.10.0.0"));
-        assertEquals(IBP_0_10_0_IV1, MetadataVersion.apply("0.10.0.0-IV0"));
-        assertEquals(IBP_0_10_0_IV1, MetadataVersion.apply("0.10.0.1"));
+        assertEquals(IBP_0_10_0_IV1, 
MetadataVersion.fromVersionString("0.10.0"));
+        assertEquals(IBP_0_10_0_IV1, 
MetadataVersion.fromVersionString("0.10.0.0"));
+        assertEquals(IBP_0_10_0_IV1, 
MetadataVersion.fromVersionString("0.10.0.0-IV0"));
+        assertEquals(IBP_0_10_0_IV1, 
MetadataVersion.fromVersionString("0.10.0.1"));
 
-        assertEquals(IBP_0_10_1_IV0, MetadataVersion.apply("0.10.1-IV0"));
-        assertEquals(IBP_0_10_1_IV1, MetadataVersion.apply("0.10.1-IV1"));
+        assertEquals(IBP_0_10_1_IV0, 
MetadataVersion.fromVersionString("0.10.1-IV0"));
+        assertEquals(IBP_0_10_1_IV1, 
MetadataVersion.fromVersionString("0.10.1-IV1"));
 
-        assertEquals(IBP_0_10_1_IV2, MetadataVersion.apply("0.10.1"));
-        assertEquals(IBP_0_10_1_IV2, MetadataVersion.apply("0.10.1.0"));
-        assertEquals(IBP_0_10_1_IV2, MetadataVersion.apply("0.10.1-IV2"));
-        assertEquals(IBP_0_10_1_IV2, MetadataVersion.apply("0.10.1.1"));
+        assertEquals(IBP_0_10_1_IV2, 
MetadataVersion.fromVersionString("0.10.1"));
+        assertEquals(IBP_0_10_1_IV2, 
MetadataVersion.fromVersionString("0.10.1.0"));
+        assertEquals(IBP_0_10_1_IV2, 
MetadataVersion.fromVersionString("0.10.1-IV2"));
+        assertEquals(IBP_0_10_1_IV2, 
MetadataVersion.fromVersionString("0.10.1.1"));
 
-        assertEquals(IBP_0_10_2_IV0, MetadataVersion.apply("0.10.2"));
-        assertEquals(IBP_0_10_2_IV0, MetadataVersion.apply("0.10.2.0"));
-        assertEquals(IBP_0_10_2_IV0, MetadataVersion.apply("0.10.2-IV0"));
-        assertEquals(IBP_0_10_2_IV0, MetadataVersion.apply("0.10.2.1"));
+        assertEquals(IBP_0_10_2_IV0, 
MetadataVersion.fromVersionString("0.10.2"));
+        assertEquals(IBP_0_10_2_IV0, 
MetadataVersion.fromVersionString("0.10.2.0"));
+        assertEquals(IBP_0_10_2_IV0, 
MetadataVersion.fromVersionString("0.10.2-IV0"));
+        assertEquals(IBP_0_10_2_IV0, 
MetadataVersion.fromVersionString("0.10.2.1"));
 
-        assertEquals(IBP_0_11_0_IV0, MetadataVersion.apply("0.11.0-IV0"));
-        assertEquals(IBP_0_11_0_IV1, MetadataVersion.apply("0.11.0-IV1"));
+        assertEquals(IBP_0_11_0_IV0, 
MetadataVersion.fromVersionString("0.11.0-IV0"));
+        assertEquals(IBP_0_11_0_IV1, 
MetadataVersion.fromVersionString("0.11.0-IV1"));
 
-        assertEquals(IBP_0_11_0_IV2, MetadataVersion.apply("0.11.0"));
-        assertEquals(IBP_0_11_0_IV2, MetadataVersion.apply("0.11.0.0"));
-        assertEquals(IBP_0_11_0_IV2, MetadataVersion.apply("0.11.0-IV2"));
-        assertEquals(IBP_0_11_0_IV2, MetadataVersion.apply("0.11.0.1"));
+        assertEquals(IBP_0_11_0_IV2, 
MetadataVersion.fromVersionString("0.11.0"));
+        assertEquals(IBP_0_11_0_IV2, 
MetadataVersion.fromVersionString("0.11.0.0"));
+        assertEquals(IBP_0_11_0_IV2, 
MetadataVersion.fromVersionString("0.11.0-IV2"));
+        assertEquals(IBP_0_11_0_IV2, 
MetadataVersion.fromVersionString("0.11.0.1"));
 
-        assertEquals(IBP_1_0_IV0, MetadataVersion.apply("1.0"));
-        assertEquals(IBP_1_0_IV0, MetadataVersion.apply("1.0.0"));
-        assertEquals(IBP_1_0_IV0, MetadataVersion.apply("1.0.0-IV0"));
-        assertEquals(IBP_1_0_IV0, MetadataVersion.apply("1.0.1"));
+        assertEquals(IBP_1_0_IV0, MetadataVersion.fromVersionString("1.0"));
+        assertEquals(IBP_1_0_IV0, MetadataVersion.fromVersionString("1.0.0"));
+        assertEquals(IBP_1_0_IV0, 
MetadataVersion.fromVersionString("1.0.0-IV0"));
+        assertEquals(IBP_1_0_IV0, MetadataVersion.fromVersionString("1.0.1"));
 
-        assertEquals(IBP_1_1_IV0, MetadataVersion.apply("1.1-IV0"));
+        assertEquals(IBP_1_1_IV0, 
MetadataVersion.fromVersionString("1.1-IV0"));
 
-        assertEquals(IBP_2_0_IV1, MetadataVersion.apply("2.0"));
-        assertEquals(IBP_2_0_IV0, MetadataVersion.apply("2.0-IV0"));
-        assertEquals(IBP_2_0_IV1, MetadataVersion.apply("2.0-IV1"));
+        assertEquals(IBP_2_0_IV1, MetadataVersion.fromVersionString("2.0"));
+        assertEquals(IBP_2_0_IV0, 
MetadataVersion.fromVersionString("2.0-IV0"));
+        assertEquals(IBP_2_0_IV1, 
MetadataVersion.fromVersionString("2.0-IV1"));
 
-        assertEquals(IBP_2_1_IV2, MetadataVersion.apply("2.1"));
-        assertEquals(IBP_2_1_IV0, MetadataVersion.apply("2.1-IV0"));
-        assertEquals(IBP_2_1_IV1, MetadataVersion.apply("2.1-IV1"));
-        assertEquals(IBP_2_1_IV2, MetadataVersion.apply("2.1-IV2"));
+        assertEquals(IBP_2_1_IV2, MetadataVersion.fromVersionString("2.1"));
+        assertEquals(IBP_2_1_IV0, 
MetadataVersion.fromVersionString("2.1-IV0"));
+        assertEquals(IBP_2_1_IV1, 
MetadataVersion.fromVersionString("2.1-IV1"));
+        assertEquals(IBP_2_1_IV2, 
MetadataVersion.fromVersionString("2.1-IV2"));
 
-        assertEquals(IBP_2_2_IV1, MetadataVersion.apply("2.2"));
-        assertEquals(IBP_2_2_IV0, MetadataVersion.apply("2.2-IV0"));
-        assertEquals(IBP_2_2_IV1, MetadataVersion.apply("2.2-IV1"));
+        assertEquals(IBP_2_2_IV1, MetadataVersion.fromVersionString("2.2"));
+        assertEquals(IBP_2_2_IV0, 
MetadataVersion.fromVersionString("2.2-IV0"));
+        assertEquals(IBP_2_2_IV1, 
MetadataVersion.fromVersionString("2.2-IV1"));
 
-        assertEquals(IBP_2_3_IV1, MetadataVersion.apply("2.3"));
-        assertEquals(IBP_2_3_IV0, MetadataVersion.apply("2.3-IV0"));
-        assertEquals(IBP_2_3_IV1, MetadataVersion.apply("2.3-IV1"));
+        assertEquals(IBP_2_3_IV1, MetadataVersion.fromVersionString("2.3"));
+        assertEquals(IBP_2_3_IV0, 
MetadataVersion.fromVersionString("2.3-IV0"));
+        assertEquals(IBP_2_3_IV1, 
MetadataVersion.fromVersionString("2.3-IV1"));
 
-        assertEquals(IBP_2_4_IV1, MetadataVersion.apply("2.4"));
-        assertEquals(IBP_2_4_IV0, MetadataVersion.apply("2.4-IV0"));
-        assertEquals(IBP_2_4_IV1, MetadataVersion.apply("2.4-IV1"));
+        assertEquals(IBP_2_4_IV1, MetadataVersion.fromVersionString("2.4"));
+        assertEquals(IBP_2_4_IV0, 
MetadataVersion.fromVersionString("2.4-IV0"));
+        assertEquals(IBP_2_4_IV1, 
MetadataVersion.fromVersionString("2.4-IV1"));
 
-        assertEquals(IBP_2_5_IV0, MetadataVersion.apply("2.5"));
-        assertEquals(IBP_2_5_IV0, MetadataVersion.apply("2.5-IV0"));
+        assertEquals(IBP_2_5_IV0, MetadataVersion.fromVersionString("2.5"));
+        assertEquals(IBP_2_5_IV0, 
MetadataVersion.fromVersionString("2.5-IV0"));
 
-        assertEquals(IBP_2_6_IV0, MetadataVersion.apply("2.6"));
-        assertEquals(IBP_2_6_IV0, MetadataVersion.apply("2.6-IV0"));
+        assertEquals(IBP_2_6_IV0, MetadataVersion.fromVersionString("2.6"));
+        assertEquals(IBP_2_6_IV0, 
MetadataVersion.fromVersionString("2.6-IV0"));
 
-        assertEquals(IBP_2_7_IV0, MetadataVersion.apply("2.7-IV0"));
-        assertEquals(IBP_2_7_IV1, MetadataVersion.apply("2.7-IV1"));
-        assertEquals(IBP_2_7_IV2, MetadataVersion.apply("2.7-IV2"));
+        assertEquals(IBP_2_7_IV0, 
MetadataVersion.fromVersionString("2.7-IV0"));
+        assertEquals(IBP_2_7_IV1, 
MetadataVersion.fromVersionString("2.7-IV1"));
+        assertEquals(IBP_2_7_IV2, 
MetadataVersion.fromVersionString("2.7-IV2"));
 
-        assertEquals(IBP_2_8_IV1, MetadataVersion.apply("2.8"));
-        assertEquals(IBP_2_8_IV0, MetadataVersion.apply("2.8-IV0"));
-        assertEquals(IBP_2_8_IV1, MetadataVersion.apply("2.8-IV1"));
+        assertEquals(IBP_2_8_IV1, MetadataVersion.fromVersionString("2.8"));
+        assertEquals(IBP_2_8_IV0, 
MetadataVersion.fromVersionString("2.8-IV0"));
+        assertEquals(IBP_2_8_IV1, 
MetadataVersion.fromVersionString("2.8-IV1"));
 
-        assertEquals(IBP_3_0_IV1, MetadataVersion.apply("3.0"));
-        assertEquals(IBP_3_0_IV0, MetadataVersion.apply("3.0-IV0"));
-        assertEquals(IBP_3_0_IV1, MetadataVersion.apply("3.0-IV1"));
+        assertEquals(IBP_3_0_IV1, MetadataVersion.fromVersionString("3.0"));
+        assertEquals(IBP_3_0_IV0, 
MetadataVersion.fromVersionString("3.0-IV0"));
+        assertEquals(IBP_3_0_IV1, 
MetadataVersion.fromVersionString("3.0-IV1"));
 
-        assertEquals(IBP_3_1_IV0, MetadataVersion.apply("3.1"));
-        assertEquals(IBP_3_1_IV0, MetadataVersion.apply("3.1-IV0"));
+        assertEquals(IBP_3_1_IV0, MetadataVersion.fromVersionString("3.1"));
+        assertEquals(IBP_3_1_IV0, 
MetadataVersion.fromVersionString("3.1-IV0"));
 
-        assertEquals(IBP_3_2_IV0, MetadataVersion.apply("3.2"));
-        assertEquals(IBP_3_2_IV0, MetadataVersion.apply("3.2-IV0"));
+        assertEquals(IBP_3_2_IV0, MetadataVersion.fromVersionString("3.2"));
+        assertEquals(IBP_3_2_IV0, 
MetadataVersion.fromVersionString("3.2-IV0"));

Review Comment:
   Add 3.3 here as well



##########
core/src/test/scala/unit/kafka/api/ApiVersionTest.scala:
##########
@@ -184,6 +184,37 @@ class ApiVersionTest {
     assertEquals("3.2", KAFKA_3_2_IV0.shortVersion)
   }
 
+  @Test def testVersion(): Unit = {

Review Comment:
   nit: newline between the annotation and `def`



##########
server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java:
##########
@@ -220,6 +220,38 @@ public void testShortVersion() {
         assertEquals("3.2", IBP_3_2_IV0.shortVersion());
     }
 
+    @Test
+    public void testVersion() {
+        assertEquals("0.8.0", IBP_0_8_0.version());
+        assertEquals("0.8.2", IBP_0_8_2.version());
+        assertEquals("0.10.0-IV0", IBP_0_10_0_IV0.version());
+        assertEquals("0.10.0-IV1", IBP_0_10_0_IV1.version());
+        assertEquals("0.11.0-IV0", IBP_0_11_0_IV0.version());
+        assertEquals("0.11.0-IV1", IBP_0_11_0_IV1.version());
+        assertEquals("0.11.0-IV2", IBP_0_11_0_IV2.version());
+        assertEquals("1.0-IV0", IBP_1_0_IV0.version());
+        assertEquals("1.1-IV0", IBP_1_1_IV0.version());
+        assertEquals("2.0-IV0", IBP_2_0_IV0.version());
+        assertEquals("2.0-IV1", IBP_2_0_IV1.version());
+        assertEquals("2.1-IV0", IBP_2_1_IV0.version());
+        assertEquals("2.1-IV1", IBP_2_1_IV1.version());
+        assertEquals("2.1-IV2", IBP_2_1_IV2.version());
+        assertEquals("2.2-IV0", IBP_2_2_IV0.version());
+        assertEquals("2.2-IV1", IBP_2_2_IV1.version());
+        assertEquals("2.3-IV0", IBP_2_3_IV0.version());
+        assertEquals("2.3-IV1", IBP_2_3_IV1.version());
+        assertEquals("2.4-IV0", IBP_2_4_IV0.version());
+        assertEquals("2.5-IV0", IBP_2_5_IV0.version());
+        assertEquals("2.6-IV0", IBP_2_6_IV0.version());
+        assertEquals("2.7-IV2", IBP_2_7_IV2.version());
+        assertEquals("2.8-IV0", IBP_2_8_IV0.version());
+        assertEquals("2.8-IV1", IBP_2_8_IV1.version());
+        assertEquals("3.0-IV0", IBP_3_0_IV0.version());
+        assertEquals("3.0-IV1", IBP_3_0_IV1.version());
+        assertEquals("3.1-IV0", IBP_3_1_IV0.version());
+        assertEquals("3.2-IV0", IBP_3_2_IV0.version());

Review Comment:
   3.3



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to