yuqi1129 commented on code in PR #3912:
URL: https://github.com/apache/gravitino/pull/3912#discussion_r1665472584


##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerHiveIT.java:
##########
@@ -0,0 +1,171 @@
+/*
+ * Copyright 2023 Datastrato Pvt Ltd.
+ * This software is licensed under the Apache License version 2.
+ */
+package com.datastrato.gravitino.integration.test.authorization.ranger;
+
+import com.datastrato.gravitino.integration.test.container.ContainerSuite;
+import com.datastrato.gravitino.integration.test.container.HiveContainer;
+import com.datastrato.gravitino.integration.test.container.RangerContainer;
+import com.google.common.collect.ImmutableMap;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.ranger.plugin.model.RangerPolicy;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+@Tag("gravitino-docker-it")

Review Comment:
   It should be `gravitino-docker-test`.



##########
dev/docker/hive/Dockerfile:
##########
@@ -105,14 +124,10 @@ ADD hdfs-site.xml ${HADOOP_CONF_DIR}/hdfs-site.xml
 ADD mapred-site.xml ${HADOOP_CONF_DIR}/mapred-site.xml
 ADD check-status.sh /tmp/check-status.sh
 
-# format HFS
-RUN ${HADOOP_HOME}/bin/hdfs namenode -format -nonInteractive

Review Comment:
   Why do we remove this?



##########
integration-test/build.gradle.kts:
##########
@@ -108,6 +108,10 @@ dependencies {
   testImplementation(libs.trino.client) {
     exclude("jakarta.annotation")
   }
+  testImplementation(libs.hive2.jdbc) {
+    4

Review Comment:
   What does "4" mean here?



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerIT.java:
##########
@@ -5,69 +5,313 @@
 package com.datastrato.gravitino.integration.test.authorization.ranger;
 
 import com.datastrato.gravitino.integration.test.container.ContainerSuite;
+import com.datastrato.gravitino.integration.test.container.HiveContainer;
+import com.datastrato.gravitino.integration.test.container.TrinoContainer;
 import com.google.common.collect.ImmutableMap;
-import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import org.apache.ranger.RangerClient;
 import org.apache.ranger.RangerServiceException;
+import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerService;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Tag;
-import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-@Tag("gravitino-docker-test")
 public class RangerIT {
-  private static final String serviceName = "trino-test";
-  private static final String trinoType = "trino";
+  private static final Logger LOG = LoggerFactory.getLogger(RangerIT.class);
+  protected static final String RANGER_TRINO_REPO_NAME = "trinoDev";
+  private static final String RANGER_TRINO_TYPE = "trino";
+  protected static final String RANGER_HIVE_REPO_NAME = "hiveDev";
+  private static final String RANGER_HIVE_TYPE = "hive";
+  protected static final String RANGER_HDFS_REPO_NAME = "hdfsDev";
+  private static final String RANGER_HDFS_TYPE = "hdfs";
   private static RangerClient rangerClient;
 
   private static final ContainerSuite containerSuite = 
ContainerSuite.getInstance();
 
   @BeforeAll
   public static void setup() {
     containerSuite.startRangerContainer();
-
     rangerClient = containerSuite.getRangerContainer().rangerClient;
   }
 
   @AfterAll
   public static void cleanup() throws RangerServiceException {
-    if (rangerClient != null) {
-      rangerClient.deleteService(serviceName);
+    try {
+      if (rangerClient != null) {
+        if (rangerClient.getService(RANGER_TRINO_REPO_NAME) != null) {
+          rangerClient.deleteService(RANGER_TRINO_REPO_NAME);
+        }
+        if (rangerClient.getService(RANGER_HIVE_REPO_NAME) != null) {
+          rangerClient.deleteService(RANGER_HIVE_REPO_NAME);
+        }
+      }
+    } catch (RangerServiceException e) {
+      // ignore
     }
   }
 
-  @Test
-  public void testCreateTrinoService() throws RangerServiceException {
+  public void createRangerTrinoRepository(String tirnoIp) {
     String usernameKey = "username";
     String usernameVal = "admin";
     String jdbcKey = "jdbc.driverClassName";
     String jdbcVal = "io.trino.jdbc.TrinoDriver";
     String jdbcUrlKey = "jdbc.url";
-    String jdbcUrlVal = "http://localhost:8080";;
+    String jdbcUrlVal = String.format("http:hive2://%s:%d", tirnoIp, 
TrinoContainer.TRINO_PORT);
 
     RangerService service = new RangerService();
-    service.setType(trinoType);
-    service.setName(serviceName);
+    service.setType(RANGER_TRINO_TYPE);
+    service.setName(RANGER_TRINO_REPO_NAME);
     service.setConfigs(
         ImmutableMap.<String, String>builder()
             .put(usernameKey, usernameVal)
             .put(jdbcKey, jdbcVal)
             .put(jdbcUrlKey, jdbcUrlVal)
             .build());
 
-    RangerService createdService = rangerClient.createService(service);
-    Assertions.assertNotNull(createdService);
+    try {
+      RangerService createdService = rangerClient.createService(service);
+      Assertions.assertNotNull(createdService);
+
+      Map<String, String> filter =
+          ImmutableMap.of(RangerRef.SEARCH_FILTER_SERVICE_NAME, 
RANGER_TRINO_REPO_NAME);
+      List<RangerService> services = rangerClient.findServices(filter);
+      Assertions.assertEquals(services.get(0).getType(), RANGER_TRINO_TYPE);
+      Assertions.assertEquals(services.get(0).getName(), 
RANGER_TRINO_REPO_NAME);
+      Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcKey), 
jdbcVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcUrlKey), 
jdbcUrlVal);
+    } catch (RangerServiceException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public static void createRangerHiveRepository(String hiveIp, boolean 
cleanAllPolicy) {
+    try {
+      if (null != rangerClient.getService(RANGER_HIVE_REPO_NAME)) {
+        return;
+      }
+    } catch (RangerServiceException e) {
+      LOG.error("Error while fetching service: {}", e.getMessage());
+    }
+
+    String usernameKey = "username";
+    String usernameVal = "admin";
+    String passwordKey = "password";
+    String passwordVal = "admin";
+    String jdbcKey = "jdbc.driverClassName";
+    String jdbcVal = "org.apache.hive.jdbc.HiveDriver";
+    String jdbcUrlKey = "jdbc.url";
+    String jdbcUrlVal =
+        String.format("jdbc:hive2://%s:%d", hiveIp, 
HiveContainer.HIVE_SERVICE_PORT);
 
-    Map<String, String> filter = Collections.emptyMap();
-    List<RangerService> services = rangerClient.findServices(filter);
-    Assertions.assertEquals(services.get(0).getName(), serviceName);
-    Assertions.assertEquals(services.get(0).getType(), trinoType);
-    Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
-    Assertions.assertEquals(services.get(0).getConfigs().get(jdbcKey), 
jdbcVal);
-    Assertions.assertEquals(services.get(0).getConfigs().get(jdbcUrlKey), 
jdbcUrlVal);
+    RangerService service = new RangerService();
+    service.setType(RANGER_HIVE_TYPE);
+    service.setName(RANGER_HIVE_REPO_NAME);
+    service.setConfigs(
+        ImmutableMap.<String, String>builder()
+            .put(usernameKey, usernameVal)
+            .put(passwordKey, passwordVal)
+            .put(jdbcKey, jdbcVal)
+            .put(jdbcUrlKey, jdbcUrlVal)
+            .build());
+
+    try {
+      RangerService createdService = rangerClient.createService(service);
+      Assertions.assertNotNull(createdService);
+
+      Map<String, String> filter =
+          ImmutableMap.of(RangerRef.SEARCH_FILTER_SERVICE_NAME, 
RANGER_HIVE_REPO_NAME);
+      List<RangerService> services = rangerClient.findServices(filter);
+      Assertions.assertEquals(services.get(0).getType(), RANGER_HIVE_TYPE);
+      Assertions.assertEquals(services.get(0).getName(), 
RANGER_HIVE_REPO_NAME);
+      Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcKey), 
jdbcVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcUrlKey), 
jdbcUrlVal);
+
+      if (cleanAllPolicy) {
+        cleanAllPolicy(RANGER_HIVE_REPO_NAME);
+      }
+    } catch (RangerServiceException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public static void createRangerHdfsRepository(String hdfsIp, boolean 
cleanAllPolicy) {
+    try {
+      if (null != rangerClient.getService(RANGER_HDFS_REPO_NAME)) {
+        return;
+      }
+    } catch (RangerServiceException e) {
+      LOG.error("Error while fetching service: {}", e.getMessage());
+    }
+
+    String usernameKey = "username";
+    String usernameVal = "admin";
+    String passwordKey = "password";
+    String passwordVal = "admin";
+    String authenticationKey = "hadoop.security.authentication";
+    String authenticationVal = "simple";
+    String protectionKey = "hadoop.rpc.protection";
+    String protectionVal = "authentication";
+    String authorizationKey = "hadoop.security.authorization";
+    String authorizationVal = "false";
+    String fsDefaultNameKey = "fs.default.name";
+    String fsDefaultNameVal =
+        String.format("hdfs://%s:%d", hdfsIp, 
HiveContainer.HDFS_DEFAULTFS_PORT);
+
+    RangerService service = new RangerService();
+    service.setType(RANGER_HDFS_TYPE);
+    service.setName(RANGER_HDFS_REPO_NAME);
+    service.setConfigs(
+        ImmutableMap.<String, String>builder()
+            .put(usernameKey, usernameVal)
+            .put(passwordKey, passwordVal)
+            .put(authenticationKey, authenticationVal)
+            .put(protectionKey, protectionVal)
+            .put(authorizationKey, authorizationVal)
+            .put(fsDefaultNameKey, fsDefaultNameVal)
+            .build());
+
+    try {
+      RangerService createdService = rangerClient.createService(service);
+      Assertions.assertNotNull(createdService);
+
+      Map<String, String> filter =
+          ImmutableMap.of(RangerRef.SEARCH_FILTER_SERVICE_NAME, 
RANGER_HDFS_REPO_NAME);
+      List<RangerService> services = rangerClient.findServices(filter);
+      Assertions.assertEquals(services.get(0).getType(), RANGER_HDFS_TYPE);
+      Assertions.assertEquals(services.get(0).getName(), 
RANGER_HDFS_REPO_NAME);
+      Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
+      Assertions.assertEquals(
+          services.get(0).getConfigs().get(authenticationKey), 
authenticationVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(protectionKey), 
protectionVal);
+      
Assertions.assertEquals(services.get(0).getConfigs().get(authorizationKey), 
authorizationVal);
+      
Assertions.assertEquals(services.get(0).getConfigs().get(fsDefaultNameKey), 
fsDefaultNameVal);
+
+      if (cleanAllPolicy) {
+        cleanAllPolicy(RANGER_HDFS_REPO_NAME);
+      }
+    } catch (RangerServiceException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  protected void createRangerHivePolicy(

Review Comment:
   This method has not been utilized.



##########
dev/docker/hive/Dockerfile:
##########
@@ -83,15 +86,31 @@ RUN echo "HADOOP_CONF_DIR=${HADOOP_CONF_DIR}" >> 
/etc/environment
 RUN echo "HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar" >> /etc/environment
 RUN echo "YARN_HOME=${YARN_HOME}" >> /etc/environment
 RUN echo "HIVE_HOME=${HIVE_HOME}" >> /etc/environment
+RUN echo "ZK_HOME=${ZK_HOME}" >> /etc/environment
 RUN echo "PATH=${PATH}" >> /etc/environment
 RUN echo "CLASSPATH=${CLASSPATH}" >> /etc/environment
 RUN echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> /etc/environment
 
+################################################################################
+# install zoofkeeper

Review Comment:
   typo



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerRef.java:
##########
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2023 Datastrato Pvt Ltd.
+ * This software is licensed under the Apache License version 2.
+ */
+package com.datastrato.gravitino.integration.test.authorization.ranger;
+
+import org.apache.ranger.plugin.util.SearchFilter;
+
+public class RangerRef {
+  // In the Ranger 2.4.0
+  // 
security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java:L43
+  public static final String IMPLICIT_CONDITION_EXPRESSION_NAME = 
"_expression";
+
+  // In the Ranger 2.4.0
+  // 
security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java:L159
+  public static final String SEARCH_FILTER_SERVICE_NAME = 
SearchFilter.SERVICE_NAME;
+  public static final String RESOURCE_DATABASE = "database"; // Hive resource 
database name
+  public static final String RESOURCE_TABLE = "table"; // Hive resource table 
name
+  public static final String RESOURCE_COLUMN = "column"; // Hive resource 
column name
+  public static final String RESOURCE_PATH = "path"; // HDFS resource path name
+  public static final String SEARCH_FILTER_DATABASE =
+      SearchFilter.RESOURCE_PREFIX + RESOURCE_DATABASE;
+  public static final String SEARCH_FILTER_TABLE = 
SearchFilter.RESOURCE_PREFIX + RESOURCE_TABLE;
+  public static final String SEARCH_FILTER_COLUMN = 
SearchFilter.RESOURCE_PREFIX + RESOURCE_COLUMN;
+  public static final String SEARCH_FILTER_PATH = SearchFilter.RESOURCE_PREFIX 
+ RESOURCE_PATH;
+  public static final String SERVICE_TYPE_HFDS = "hdfs"; // HDFS service type

Review Comment:
   SERVICE_TYPE_HFDS typo



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerRef.java:
##########
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2023 Datastrato Pvt Ltd.

Review Comment:
   Can the the license pass CI check?



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerHiveIT.java:
##########
@@ -0,0 +1,171 @@
+/*
+ * Copyright 2023 Datastrato Pvt Ltd.
+ * This software is licensed under the Apache License version 2.
+ */
+package com.datastrato.gravitino.integration.test.authorization.ranger;
+
+import com.datastrato.gravitino.integration.test.container.ContainerSuite;
+import com.datastrato.gravitino.integration.test.container.HiveContainer;
+import com.datastrato.gravitino.integration.test.container.RangerContainer;
+import com.google.common.collect.ImmutableMap;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.ranger.plugin.model.RangerPolicy;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+@Tag("gravitino-docker-it")
+public class RangerHiveIT extends RangerIT {
+  private static final ContainerSuite containerSuite = 
ContainerSuite.getInstance();
+  private static Connection adminConnection;
+  private static Connection anonymousConnection;
+  private static final String adminUser = "datastrato";
+  private static final String anonymouslUser = "anonymous";

Review Comment:
   anonymouslUser typo



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerIT.java:
##########
@@ -5,69 +5,313 @@
 package com.datastrato.gravitino.integration.test.authorization.ranger;
 
 import com.datastrato.gravitino.integration.test.container.ContainerSuite;
+import com.datastrato.gravitino.integration.test.container.HiveContainer;
+import com.datastrato.gravitino.integration.test.container.TrinoContainer;
 import com.google.common.collect.ImmutableMap;
-import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import org.apache.ranger.RangerClient;
 import org.apache.ranger.RangerServiceException;
+import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerService;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Tag;
-import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-@Tag("gravitino-docker-test")
 public class RangerIT {
-  private static final String serviceName = "trino-test";
-  private static final String trinoType = "trino";
+  private static final Logger LOG = LoggerFactory.getLogger(RangerIT.class);
+  protected static final String RANGER_TRINO_REPO_NAME = "trinoDev";
+  private static final String RANGER_TRINO_TYPE = "trino";
+  protected static final String RANGER_HIVE_REPO_NAME = "hiveDev";
+  private static final String RANGER_HIVE_TYPE = "hive";
+  protected static final String RANGER_HDFS_REPO_NAME = "hdfsDev";
+  private static final String RANGER_HDFS_TYPE = "hdfs";
   private static RangerClient rangerClient;
 
   private static final ContainerSuite containerSuite = 
ContainerSuite.getInstance();
 
   @BeforeAll
   public static void setup() {
     containerSuite.startRangerContainer();
-
     rangerClient = containerSuite.getRangerContainer().rangerClient;
   }
 
   @AfterAll
   public static void cleanup() throws RangerServiceException {
-    if (rangerClient != null) {
-      rangerClient.deleteService(serviceName);
+    try {
+      if (rangerClient != null) {
+        if (rangerClient.getService(RANGER_TRINO_REPO_NAME) != null) {
+          rangerClient.deleteService(RANGER_TRINO_REPO_NAME);
+        }
+        if (rangerClient.getService(RANGER_HIVE_REPO_NAME) != null) {
+          rangerClient.deleteService(RANGER_HIVE_REPO_NAME);
+        }
+      }
+    } catch (RangerServiceException e) {
+      // ignore
     }
   }
 
-  @Test
-  public void testCreateTrinoService() throws RangerServiceException {
+  public void createRangerTrinoRepository(String tirnoIp) {
     String usernameKey = "username";
     String usernameVal = "admin";
     String jdbcKey = "jdbc.driverClassName";
     String jdbcVal = "io.trino.jdbc.TrinoDriver";
     String jdbcUrlKey = "jdbc.url";
-    String jdbcUrlVal = "http://localhost:8080";;
+    String jdbcUrlVal = String.format("http:hive2://%s:%d", tirnoIp, 
TrinoContainer.TRINO_PORT);
 
     RangerService service = new RangerService();
-    service.setType(trinoType);
-    service.setName(serviceName);
+    service.setType(RANGER_TRINO_TYPE);
+    service.setName(RANGER_TRINO_REPO_NAME);
     service.setConfigs(
         ImmutableMap.<String, String>builder()
             .put(usernameKey, usernameVal)
             .put(jdbcKey, jdbcVal)
             .put(jdbcUrlKey, jdbcUrlVal)
             .build());
 
-    RangerService createdService = rangerClient.createService(service);
-    Assertions.assertNotNull(createdService);
+    try {
+      RangerService createdService = rangerClient.createService(service);
+      Assertions.assertNotNull(createdService);
+
+      Map<String, String> filter =
+          ImmutableMap.of(RangerRef.SEARCH_FILTER_SERVICE_NAME, 
RANGER_TRINO_REPO_NAME);
+      List<RangerService> services = rangerClient.findServices(filter);
+      Assertions.assertEquals(services.get(0).getType(), RANGER_TRINO_TYPE);
+      Assertions.assertEquals(services.get(0).getName(), 
RANGER_TRINO_REPO_NAME);
+      Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcKey), 
jdbcVal);
+      Assertions.assertEquals(services.get(0).getConfigs().get(jdbcUrlKey), 
jdbcUrlVal);
+    } catch (RangerServiceException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public static void createRangerHiveRepository(String hiveIp, boolean 
cleanAllPolicy) {
+    try {
+      if (null != rangerClient.getService(RANGER_HIVE_REPO_NAME)) {
+        return;
+      }
+    } catch (RangerServiceException e) {
+      LOG.error("Error while fetching service: {}", e.getMessage());
+    }
+
+    String usernameKey = "username";
+    String usernameVal = "admin";
+    String passwordKey = "password";
+    String passwordVal = "admin";
+    String jdbcKey = "jdbc.driverClassName";
+    String jdbcVal = "org.apache.hive.jdbc.HiveDriver";
+    String jdbcUrlKey = "jdbc.url";
+    String jdbcUrlVal =
+        String.format("jdbc:hive2://%s:%d", hiveIp, 
HiveContainer.HIVE_SERVICE_PORT);
 
-    Map<String, String> filter = Collections.emptyMap();
-    List<RangerService> services = rangerClient.findServices(filter);
-    Assertions.assertEquals(services.get(0).getName(), serviceName);
-    Assertions.assertEquals(services.get(0).getType(), trinoType);
-    Assertions.assertEquals(services.get(0).getConfigs().get(usernameKey), 
usernameVal);
-    Assertions.assertEquals(services.get(0).getConfigs().get(jdbcKey), 
jdbcVal);
-    Assertions.assertEquals(services.get(0).getConfigs().get(jdbcUrlKey), 
jdbcUrlVal);
+    RangerService service = new RangerService();
+    service.setType(RANGER_HIVE_TYPE);
+    service.setName(RANGER_HIVE_REPO_NAME);
+    service.setConfigs(
+        ImmutableMap.<String, String>builder()
+            .put(usernameKey, usernameVal)
+            .put(passwordKey, passwordVal)
+            .put(jdbcKey, jdbcVal)
+            .put(jdbcUrlKey, jdbcUrlVal)
+            .build());
+
+    try {
+      RangerService createdService = rangerClient.createService(service);
+      Assertions.assertNotNull(createdService);
+
+      Map<String, String> filter =
+          ImmutableMap.of(RangerRef.SEARCH_FILTER_SERVICE_NAME, 
RANGER_HIVE_REPO_NAME);
+      List<RangerService> services = rangerClient.findServices(filter);
+      Assertions.assertEquals(services.get(0).getType(), RANGER_HIVE_TYPE);

Review Comment:
   Put the expected value in the first of parameters is preferable.



##########
integration-test/src/test/java/com/datastrato/gravitino/integration/test/authorization/ranger/RangerRef.java:
##########
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2023 Datastrato Pvt Ltd.
+ * This software is licensed under the Apache License version 2.
+ */
+package com.datastrato.gravitino.integration.test.authorization.ranger;
+
+import org.apache.ranger.plugin.util.SearchFilter;
+
+public class RangerRef {

Review Comment:
   What's the meaning of `ref` here?
   



-- 
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