This is an automated email from the ASF dual-hosted git repository.
diqiu50 pushed a commit to branch branch-1.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.2 by this push:
new 28193d1ca9 [Cherry-pick to branch-1.2] [#10373] fix(client): Support
runing JDK8 with Gravitino client (#10376) (#10392)
28193d1ca9 is described below
commit 28193d1ca9c1b836e1eb6d0b3fcbd7321c3ebce1
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Mar 12 16:37:30 2026 +0800
[Cherry-pick to branch-1.2] [#10373] fix(client): Support runing JDK8 with
Gravitino client (#10376) (#10392)
**Cherry-pick Information:**
- Original commit: 63d176b80014bd91dd00bfe7c1ad5c5fe9365391
- Target branch: `branch-1.2`
- Status: ⚠️ **Has conflicts - manual resolution required**
Please review and resolve the conflicts before merging.
---------
Co-authored-by: Qi Yu <[email protected]>
Co-authored-by: Copilot <[email protected]>
---
.../gravitino/policy/TestPolicyContents.java | 22 +++++++++---
build.gradle.kts | 6 ++++
.../gravitino/dto/responses/DeleteResponse.java | 2 +-
.../gravitino/utils/jdbc/JdbcSqlScriptUtils.java | 2 +-
.../apache/gravitino/utils/TestJdbcUrlUtils.java | 36 ++++++++++++-------
.../jobs/BuiltInJobTemplateProvider.java | 2 +-
.../jobs/iceberg/TestIcebergUpdateStatsJob.java | 20 +++++------
.../TestIcebergUpdateStatsJobWithSpark.java | 42 ++++++++++++----------
.../common/util/TestPartitionPathSerdeUtils.java | 4 +--
9 files changed, 87 insertions(+), 49 deletions(-)
diff --git
a/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
b/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
index 702515d14b..1112846146 100644
--- a/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
+++ b/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
@@ -20,6 +20,7 @@
package org.apache.gravitino.policy;
import com.google.common.collect.ImmutableSet;
+import java.util.HashMap;
import java.util.Map;
import org.apache.gravitino.MetadataObject;
import org.junit.jupiter.api.Assertions;
@@ -51,7 +52,7 @@ public class TestPolicyContents {
IcebergDataCompactionContent content =
(IcebergDataCompactionContent)
PolicyContents.icebergDataCompaction(
- 1000L, 1L, Map.of("target-file-size-bytes", "1048576",
"min-input-files", "1"));
+ 1000L, 1L, mapOf("target-file-size-bytes", "1048576",
"min-input-files", "1"));
Assertions.assertEquals("iceberg-data-compaction",
content.properties().get("strategy.type"));
Assertions.assertEquals(
@@ -86,7 +87,7 @@ public class TestPolicyContents {
3L,
200L,
88L,
- Map.of("target-file-size-bytes", "1048576", "min-input-files",
"1"));
+ mapOf("target-file-size-bytes", "1048576", "min-input-files",
"1"));
Assertions.assertEquals(3L, content.rules().get("dataFileMseWeight"));
Assertions.assertEquals(200L,
content.rules().get("deleteFileNumberWeight"));
@@ -99,7 +100,7 @@ public class TestPolicyContents {
IcebergDataCompactionContent content =
(IcebergDataCompactionContent)
PolicyContents.icebergDataCompaction(
- 1000L, 1L, Map.of("job.options.target-file-size-bytes",
"1048576"));
+ 1000L, 1L, mapOf("job.options.target-file-size-bytes",
"1048576"));
IllegalArgumentException exception =
Assertions.assertThrows(IllegalArgumentException.class,
content::validate);
@@ -111,10 +112,23 @@ public class TestPolicyContents {
IcebergDataCompactionContent content =
(IcebergDataCompactionContent)
PolicyContents.icebergDataCompaction(
- 1000L, 1L, 2L, 10L, 0L, Map.of("target-file-size-bytes",
"1048576"));
+ 1000L, 1L, 2L, 10L, 0L, mapOf("target-file-size-bytes",
"1048576"));
IllegalArgumentException exception =
Assertions.assertThrows(IllegalArgumentException.class,
content::validate);
Assertions.assertTrue(exception.getMessage().contains("maxPartitionNum"));
}
+
+ private static Map<String, String> mapOf(String key, String value) {
+ Map<String, String> map = new HashMap<>();
+ map.put(key, value);
+ return map;
+ }
+
+ private static Map<String, String> mapOf(String key1, String value1, String
key2, String value2) {
+ Map<String, String> map = new HashMap<>();
+ map.put(key1, value1);
+ map.put(key2, value2);
+ return map;
+ }
}
diff --git a/build.gradle.kts b/build.gradle.kts
index b1982647b4..c09bbe17c7 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -399,6 +399,12 @@ subprojects {
}
}
+ tasks.withType<JavaCompile>().configureEach {
+ if (compatibleWithJDK8(project)) {
+ options.release.set(8)
+ }
+ }
+
java {
toolchain {
// Some JDK vendors like Homebrew installed OpenJDK 17 have problems in
building trino-connector:
diff --git
a/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
b/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
index 77f312cc76..4aa59048d1 100644
---
a/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
+++
b/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
@@ -26,7 +26,7 @@ import lombok.ToString;
* Represents a response for a delete operation. This class is deprecated and
will be removed in
* future versions, please use {@link DropResponse} instead.
*/
-@Deprecated(since = "1.0.0")
+@Deprecated
@ToString
@EqualsAndHashCode(callSuper = true)
public class DeleteResponse extends BaseResponse {
diff --git
a/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
b/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
index decf8a5fae..a7b63d9c92 100644
---
a/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
+++
b/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
@@ -50,7 +50,7 @@ public final class JdbcSqlScriptUtils {
return Arrays.stream(executableSql.split(";"))
.map(String::trim)
.filter(s -> !s.isEmpty())
- .toList();
+ .collect(Collectors.toList());
}
/**
diff --git
a/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
b/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
index 24acf4314c..f13f1f6316 100644
--- a/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
+++ b/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
@@ -19,7 +19,7 @@
package org.apache.gravitino.utils;
-import java.util.Map;
+import java.util.Collections;
import org.apache.gravitino.exceptions.GravitinoRuntimeException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -33,7 +33,7 @@ public class TestJdbcUrlUtils {
GravitinoRuntimeException.class,
() ->
JdbcUrlUtils.validateJdbcConfig(
- "testDriver", "malformed%ZZurl", Map.of("test", "test")));
+ "testDriver", "malformed%ZZurl",
Collections.singletonMap("test", "test")));
Assertions.assertEquals("Unable to decode JDBC URL", gre.getMessage());
}
@@ -43,7 +43,9 @@ public class TestJdbcUrlUtils {
IllegalArgumentException.class,
() ->
JdbcUrlUtils.validateJdbcConfig(
- null, "jdbc:mysql://localhost:0000/test", Map.of("test",
"test")));
+ null,
+ "jdbc:mysql://localhost:0000/test",
+ Collections.singletonMap("test", "test")));
}
@Test
@@ -51,7 +53,9 @@ public class TestJdbcUrlUtils {
Assertions.assertDoesNotThrow(
() ->
JdbcUrlUtils.validateJdbcConfig(
- "testDriver", "jdbc:mysql://localhost:0000/test",
Map.of("test", "test")));
+ "testDriver",
+ "jdbc:mysql://localhost:0000/test",
+ Collections.singletonMap("test", "test")));
}
@Test
@@ -64,7 +68,7 @@ public class TestJdbcUrlUtils {
JdbcUrlUtils.validateJdbcConfig(
"testDriver",
"jdbc:mysql://localhost:0000/test?allowloadlocalinfile=test",
- Map.of("test", "test")));
+ Collections.singletonMap("test", "test")));
Assertions.assertEquals(
"Unsafe MySQL parameter 'allowloadlocalinfile' detected in JDBC URL",
gre.getMessage());
}
@@ -78,7 +82,7 @@ public class TestJdbcUrlUtils {
JdbcUrlUtils.validateJdbcConfig(
"testDriver",
"jdbc:mysql://localhost:0000/test",
- Map.of("maxAllowedPacket", "maxAllowedPacket")));
+ Collections.singletonMap("maxAllowedPacket",
"maxAllowedPacket")));
Assertions.assertEquals(
"Unsafe MySQL parameter 'maxAllowedPacket' detected in JDBC URL",
gre.getMessage());
}
@@ -88,7 +92,9 @@ public class TestJdbcUrlUtils {
Assertions.assertDoesNotThrow(
() ->
JdbcUrlUtils.validateJdbcConfig(
- "testDriver", "jdbc:mariadb://localhost:0000/test",
Map.of("test", "test")));
+ "testDriver",
+ "jdbc:mariadb://localhost:0000/test",
+ Collections.singletonMap("test", "test")));
}
@Test
@@ -100,7 +106,7 @@ public class TestJdbcUrlUtils {
JdbcUrlUtils.validateJdbcConfig(
"testDriver",
"jdbc:mariaDB://localhost:0000/test?allowloadlocalinfile=test",
- Map.of("test", "test")));
+ Collections.singletonMap("test", "test")));
Assertions.assertEquals(
"Unsafe MariaDB parameter 'allowloadlocalinfile' detected in JDBC
URL", gre.getMessage());
}
@@ -110,7 +116,9 @@ public class TestJdbcUrlUtils {
Assertions.assertDoesNotThrow(
() ->
JdbcUrlUtils.validateJdbcConfig(
- "testDriver", "jdbc:postgresql://localhost:0000/test",
Map.of("test", "test")));
+ "testDriver",
+ "jdbc:postgresql://localhost:0000/test",
+ Collections.singletonMap("test", "test")));
}
@Test
@@ -122,7 +130,7 @@ public class TestJdbcUrlUtils {
JdbcUrlUtils.validateJdbcConfig(
"testDriver",
"jdbc:postgresql://localhost:0000/test?socketFactory=test",
- Map.of("test", "test")));
+ Collections.singletonMap("test", "test")));
Assertions.assertEquals(
"Unsafe PostgreSQL parameter 'socketFactory' detected in JDBC URL",
gre.getMessage());
}
@@ -133,11 +141,15 @@ public class TestJdbcUrlUtils {
IllegalArgumentException.class,
() ->
JdbcUrlUtils.validateJdbcConfig(
- null, "jdbc:postgresql://localhost:0000/test", Map.of("test",
"test")));
+ null,
+ "jdbc:postgresql://localhost:0000/test",
+ Collections.singletonMap("test", "test")));
Assertions.assertThrowsExactly(
IllegalArgumentException.class,
- () -> JdbcUrlUtils.validateJdbcConfig("testDriver", null,
Map.of("test", "test")));
+ () ->
+ JdbcUrlUtils.validateJdbcConfig(
+ "testDriver", null, Collections.singletonMap("test", "test")));
Assertions.assertThrowsExactly(
IllegalArgumentException.class, () ->
JdbcUrlUtils.validateJdbcConfig(null, null, null));
diff --git
a/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
b/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
index 09ca2199f7..39cc68fd32 100644
---
a/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
+++
b/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
@@ -64,7 +64,7 @@ public class BuiltInJobTemplateProvider implements
JobTemplateProvider {
Optional<String> version =
Optional.ofNullable(template.customFields())
.map(fields ->
fields.get(JobTemplateProvider.PROPERTY_VERSION_KEY));
- if (version.isEmpty() ||
!VERSION_PATTERN.matcher(version.get()).matches()) {
+ if (!version.isPresent() ||
!VERSION_PATTERN.matcher(version.get()).matches()) {
LOG.warn("Skip built-in job template {} without valid version",
template.name());
return false;
}
diff --git
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
index 269c40cc2d..3f0080265e 100644
---
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
+++
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
@@ -23,6 +23,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
import org.apache.gravitino.job.JobTemplateProvider;
import org.apache.gravitino.job.SparkJobTemplate;
@@ -164,11 +166,10 @@ public class TestIcebergUpdateStatsJob {
@Test
public void testBuildOptimizerProperties() {
- Map<String, String> options =
- Map.of(
- "gravitino_uri", "http://localhost:8090",
- "metalake", "ml",
- "gravitino.optimizer.jdbcMetrics.jdbcUrl",
"jdbc:mysql://localhost:3306/metrics");
+ Map<String, String> options = new HashMap<>();
+ options.put("gravitino_uri", "http://localhost:8090");
+ options.put("metalake", "ml");
+ options.put("gravitino.optimizer.jdbcMetrics.jdbcUrl",
"jdbc:mysql://localhost:3306/metrics");
Map<String, String> optimizerProperties =
IcebergUpdateStatsAndMetricsJob.buildOptimizerProperties(options);
@@ -181,16 +182,15 @@ public class TestIcebergUpdateStatsJob {
@Test
public void testRequireGravitinoConfig() {
- Map<String, String> optimizerProperties =
- Map.of(
- OptimizerConfig.GRAVITINO_URI, "http://localhost:8090",
- OptimizerConfig.GRAVITINO_METALAKE, "ml");
+ Map<String, String> optimizerProperties = new HashMap<>();
+ optimizerProperties.put(OptimizerConfig.GRAVITINO_URI,
"http://localhost:8090");
+ optimizerProperties.put(OptimizerConfig.GRAVITINO_METALAKE, "ml");
assertEquals(
optimizerProperties,
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(optimizerProperties));
assertThrows(
IllegalArgumentException.class,
- () ->
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(Map.of()));
+ () ->
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(Collections.emptyMap()));
}
}
diff --git
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
index c5200cdc76..9a85d482d4 100644
---
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
+++
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
@@ -27,11 +27,13 @@ import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
import java.time.Duration;
import java.time.Instant;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -200,9 +202,9 @@ public class TestIcebergUpdateStatsJobWithSpark {
NameIdentifier.of(SPARK_CATALOG_NAME, "db", allModeTableName);
PartitionPath dsPartition1 =
- PartitionPath.of(List.of(new PartitionEntryImpl("ds",
"2026-03-01")));
+ PartitionPath.of(Collections.singletonList(new
PartitionEntryImpl("ds", "2026-03-01")));
PartitionPath dsPartition2 =
- PartitionPath.of(List.of(new PartitionEntryImpl("ds",
"2026-03-02")));
+ PartitionPath.of(Collections.singletonList(new
PartitionEntryImpl("ds", "2026-03-02")));
try (GenericJdbcMetricsRepository repository = new
GenericJdbcMetricsRepository()) {
repository.initialize(buildJdbcMetricsConfigs(mysql));
@@ -385,7 +387,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
metricsUpdater.tableMetrics.stream()
.allMatch(metric -> metric.scope() == DataScope.Type.TABLE));
assertTrue(
- metricsUpdater.tableMetrics.stream().allMatch(metric ->
metric.partitionPath().isEmpty()));
+ metricsUpdater.tableMetrics.stream()
+ .allMatch(metric -> !metric.partitionPath().isPresent()));
assertTrue(metricsUpdater.jobMetrics.isEmpty());
}
@@ -412,7 +415,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
metricsUpdater.tableMetrics.stream()
.allMatch(metric -> metric.scope() == DataScope.Type.TABLE));
assertTrue(
- metricsUpdater.tableMetrics.stream().allMatch(metric ->
metric.partitionPath().isEmpty()));
+ metricsUpdater.tableMetrics.stream()
+ .allMatch(metric -> !metric.partitionPath().isPresent()));
assertTrue(metricsUpdater.jobMetrics.isEmpty());
}
@@ -450,7 +454,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
long now = Instant.now().getEpochSecond();
PartitionPath partitionPath =
- PartitionPath.of(List.of(new PartitionEntryImpl("ds",
"2026-01-01")));
+ PartitionPath.of(Collections.singletonList(new
PartitionEntryImpl("ds", "2026-01-01")));
List<MetricPoint> partitionMetrics =
repository.getMetrics(
DataScope.forPartition(identifier, partitionPath), now - 300,
now + 300);
@@ -467,7 +471,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
.resolve("scripts")
.resolve("mysql")
.resolve("schema-" + ConfigConstants.CURRENT_SCRIPT_VERSION +
"-mysql.sql");
- String schemaSql = Files.readString(schemaPath, StandardCharsets.UTF_8);
+ String schemaSql = new String(Files.readAllBytes(schemaPath),
StandardCharsets.UTF_8);
try (Connection connection =
DriverManager.getConnection(mysql.getJdbcUrl(), mysql.getUsername(),
mysql.getPassword())) {
JdbcSqlScriptUtils.executeSqlScript(connection, schemaSql);
@@ -475,7 +479,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
}
private static Path findRepoRoot() {
- Path current = Path.of("").toAbsolutePath();
+ Path current = Paths.get("").toAbsolutePath();
while (current != null) {
if (Files.exists(current.resolve("gradlew"))) {
return current;
@@ -517,11 +521,12 @@ public class TestIcebergUpdateStatsJobWithSpark {
.collect(Collectors.toSet());
assertEquals(
- Set.of(
- "event_ts_day=2026-01-01,region=ap-south",
- "event_ts_day=2026-01-01,region=us-east",
- "event_ts_day=2026-01-02,region=ap-south",
- "event_ts_day=2026-01-02,region=us-east"),
+ new HashSet<>(
+ Arrays.asList(
+ "event_ts_day=2026-01-01,region=ap-south",
+ "event_ts_day=2026-01-01,region=us-east",
+ "event_ts_day=2026-01-02,region=ap-south",
+ "event_ts_day=2026-01-02,region=us-east")),
parsedPartitions);
}
@@ -578,7 +583,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
List<MetricPoint> metrics = getTableMetrics(repository, tableIdentifier);
assertEquals(EXPECTED_METRIC_COUNT_PER_SCOPE, metrics.size());
assertTrue(metrics.stream().allMatch(metric -> metric.scope() ==
DataScope.Type.TABLE));
- assertTrue(metrics.stream().allMatch(metric ->
metric.partitionPath().isEmpty()));
+ assertTrue(metrics.stream().allMatch(metric ->
!metric.partitionPath().isPresent()));
assertEquals(
EXPECTED_METRIC_NAMES,
metrics.stream().map(MetricPoint::metricName).collect(Collectors.toSet()));
@@ -801,7 +806,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
try {
return client.loadMetalake(metalakeName);
} catch (NoSuchMetalakeException ignored) {
- return client.createMetalake(metalakeName, "IT metalake", Map.of());
+ return client.createMetalake(metalakeName, "IT metalake",
Collections.emptyMap());
}
}
@@ -826,8 +831,9 @@ public class TestIcebergUpdateStatsJobWithSpark {
private static final class RecordingStatisticsUpdater implements
StatisticsUpdater {
private NameIdentifier tableIdentifier;
- private List<StatisticEntry<?>> tableStatistics = List.of();
- private Map<PartitionPath, List<StatisticEntry<?>>> partitionStatistics =
Map.of();
+ private List<StatisticEntry<?>> tableStatistics = Collections.emptyList();
+ private Map<PartitionPath, List<StatisticEntry<?>>> partitionStatistics =
+ Collections.emptyMap();
@Override
public String name() {
@@ -857,8 +863,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
}
private static final class RecordingMetricsUpdater implements MetricsUpdater
{
- private List<MetricPoint> tableMetrics = List.of();
- private List<MetricPoint> jobMetrics = List.of();
+ private List<MetricPoint> tableMetrics = Collections.emptyList();
+ private List<MetricPoint> jobMetrics = Collections.emptyList();
@Override
public String name() {
diff --git
a/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
b/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
index da7749b8c8..53b25102dc 100644
---
a/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
+++
b/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
@@ -22,7 +22,7 @@ package
org.apache.gravitino.maintenance.optimizer.common.util;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import java.util.List;
+import java.util.Arrays;
import org.apache.gravitino.maintenance.optimizer.api.common.PartitionPath;
import org.apache.gravitino.maintenance.optimizer.common.PartitionEntryImpl;
import org.junit.jupiter.api.Test;
@@ -33,7 +33,7 @@ public class TestPartitionPathSerdeUtils {
public void testEncodeAndDecodePartitionPath() {
PartitionPath path =
PartitionPath.of(
- List.of(
+ Arrays.asList(
new PartitionEntryImpl("dt", "2026-01-01"), new
PartitionEntryImpl("hh", "08")));
String encoded = PartitionPathSerdeUtils.encode(path);