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

chia7712 pushed a commit to branch 4.0
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/4.0 by this push:
     new 8797c903eef KAFKA-18803 The acls would appear at the wrong level of 
the metadata shell "tree" (#18916)
8797c903eef is described below

commit 8797c903eef894e63fa15710cf446715eceb9198
Author: Jhen-Yung Hsu <[email protected]>
AuthorDate: Mon Feb 17 03:53:18 2025 +0800

    KAFKA-18803 The acls would appear at the wrong level of the metadata shell 
"tree" (#18916)
    
    Reviewers: David Arthur <[email protected]>, Chia-Ping Tsai 
<[email protected]>
---
 .../java/org/apache/kafka/image/AclsImage.java     |  4 +-
 .../apache/kafka/image/node/MetadataImageNode.java |  2 +-
 .../kafka/image/node/MetadataImageNodeTest.java    | 54 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/metadata/src/main/java/org/apache/kafka/image/AclsImage.java 
b/metadata/src/main/java/org/apache/kafka/image/AclsImage.java
index 371abbbb35b..e917bd478e3 100644
--- a/metadata/src/main/java/org/apache/kafka/image/AclsImage.java
+++ b/metadata/src/main/java/org/apache/kafka/image/AclsImage.java
@@ -18,7 +18,7 @@
 package org.apache.kafka.image;
 
 import org.apache.kafka.common.Uuid;
-import org.apache.kafka.image.node.AclsImageByIdNode;
+import org.apache.kafka.image.node.AclsImageNode;
 import org.apache.kafka.image.writer.ImageWriter;
 import org.apache.kafka.image.writer.ImageWriterOptions;
 import org.apache.kafka.metadata.authorizer.StandardAcl;
@@ -76,6 +76,6 @@ public final class AclsImage {
 
     @Override
     public String toString() {
-        return new AclsImageByIdNode(this).stringify();
+        return new AclsImageNode(this).stringify();
     }
 }
diff --git 
a/metadata/src/main/java/org/apache/kafka/image/node/MetadataImageNode.java 
b/metadata/src/main/java/org/apache/kafka/image/node/MetadataImageNode.java
index b13598d4738..42ee21bdf69 100644
--- a/metadata/src/main/java/org/apache/kafka/image/node/MetadataImageNode.java
+++ b/metadata/src/main/java/org/apache/kafka/image/node/MetadataImageNode.java
@@ -48,7 +48,7 @@ public class MetadataImageNode implements MetadataNode {
         children.put(ConfigurationsImageNode.NAME, image -> new 
ConfigurationsImageNode(image.configs()));
         children.put(ClientQuotasImageNode.NAME, image -> new 
ClientQuotasImageNode(image.clientQuotas()));
         children.put(ProducerIdsImageNode.NAME, image -> new 
ProducerIdsImageNode(image.producerIds()));
-        children.put(AclsImageNode.NAME, image -> new 
AclsImageByIdNode(image.acls()));
+        children.put(AclsImageNode.NAME, image -> new 
AclsImageNode(image.acls()));
         children.put(ScramImageNode.NAME, image -> new 
ScramImageNode(image.scram()));
         children.put(DelegationTokenImageNode.NAME, image -> new 
DelegationTokenImageNode(image.delegationTokens()));
         CHILDREN = Collections.unmodifiableMap(children);
diff --git 
a/metadata/src/test/java/org/apache/kafka/image/node/MetadataImageNodeTest.java 
b/metadata/src/test/java/org/apache/kafka/image/node/MetadataImageNodeTest.java
new file mode 100644
index 00000000000..4911b003496
--- /dev/null
+++ 
b/metadata/src/test/java/org/apache/kafka/image/node/MetadataImageNodeTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.kafka.image.node;
+
+import org.apache.kafka.image.AclsImage;
+import org.apache.kafka.image.MetadataImage;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+@Timeout(value = 40)
+public class MetadataImageNodeTest {
+    private MetadataImageNode metadataImageNode;
+    private MetadataImage mockMetadataImage;
+    private AclsImage mockAclsImage;
+
+    @BeforeEach
+    public void setup() {
+        mockMetadataImage = mock(MetadataImage.class);
+        mockAclsImage = mock(AclsImage.class);
+        metadataImageNode = new MetadataImageNode(mockMetadataImage);
+    }
+
+    @Test
+    public void shouldGetAclsImageNode() {
+        when(mockMetadataImage.acls()).thenReturn(mockAclsImage);
+
+        MetadataNode aclsNode = metadataImageNode.child(AclsImageNode.NAME);
+
+        assertNotNull(aclsNode);
+        assertEquals(AclsImageNode.class, aclsNode.getClass());
+    }
+}

Reply via email to