This is an automated email from the ASF dual-hosted git repository.
zhenchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 894136fad0 [CALCITE-7412] Redis test failed on higher versions of macOS
894136fad0 is described below
commit 894136fad0456996f7bc3cb66f6a2366ff3199dd
Author: Zhen Chen <[email protected]>
AuthorDate: Sun Feb 8 10:16:38 2026 +0800
[CALCITE-7412] Redis test failed on higher versions of macOS
---
redis/build.gradle.kts | 1 +
.../src/main/java/redis/embedded/util/JarUtil.java | 50 ++++++++++++++++++++++
.../java/redis/embedded/util/package-info.java} | 22 ++--------
3 files changed, 55 insertions(+), 18 deletions(-)
diff --git a/redis/build.gradle.kts b/redis/build.gradle.kts
index 80e24755d9..0cbc43112f 100644
--- a/redis/build.gradle.kts
+++ b/redis/build.gradle.kts
@@ -22,6 +22,7 @@
implementation("com.fasterxml.jackson.core:jackson-core")
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("com.google.guava:guava")
+ implementation("commons-io:commons-io")
implementation("org.apache.calcite.avatica:avatica-core")
implementation("org.apache.commons:commons-lang3")
implementation("org.apache.commons:commons-pool2")
diff --git a/redis/src/main/java/redis/embedded/util/JarUtil.java
b/redis/src/main/java/redis/embedded/util/JarUtil.java
new file mode 100644
index 0000000000..9e8896ee10
--- /dev/null
+++ b/redis/src/main/java/redis/embedded/util/JarUtil.java
@@ -0,0 +1,50 @@
+/*
+ * 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 redis.embedded.util;
+
+import org.apache.commons.io.FileUtils;
+
+import com.google.common.io.Resources;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+
+/** Utility class for extracting executables from JAR files. */
+public class JarUtil {
+
+ private JarUtil() {
+ // Utility class should not be instantiated
+ }
+
+ public static File extractExecutableFromJar(String executable) throws
IOException {
+ File tmpDir = Files.createTempDirectory("redis-").toFile();
+ tmpDir.deleteOnExit();
+
+ // On newer versions of macOS, the temporary directory /var/folders does
not
+ // support executing binary files with a .app extension, which prevents
Redis
+ // from starting. To ensure Redis runs correctly, the redis-server binary
is
+ // uniformly renamed to redis-server.
+ String executableName = "redis-server";
+ File command = new File(tmpDir, executableName);
+ FileUtils.copyURLToFile(Resources.getResource(executable), command);
+ command.deleteOnExit();
+ command.setExecutable(true);
+
+ return command;
+ }
+}
diff --git a/redis/build.gradle.kts
b/redis/src/main/java/redis/embedded/util/package-info.java
similarity index 50%
copy from redis/build.gradle.kts
copy to redis/src/main/java/redis/embedded/util/package-info.java
index 80e24755d9..5e31ad3901 100644
--- a/redis/build.gradle.kts
+++ b/redis/src/main/java/redis/embedded/util/package-info.java
@@ -14,22 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-dependencies {
- api(project(":core"))
- api(project(":linq4j"))
- api("redis.clients:jedis")
- implementation("com.fasterxml.jackson.core:jackson-core")
- implementation("com.fasterxml.jackson.core:jackson-databind")
- implementation("com.google.guava:guava")
- implementation("org.apache.calcite.avatica:avatica-core")
- implementation("org.apache.commons:commons-lang3")
- implementation("org.apache.commons:commons-pool2")
- implementation("org.slf4j:slf4j-api")
-
- testImplementation(project(":testkit"))
- testImplementation("com.github.kstyrc:embedded-redis")
- testImplementation("org.mockito:mockito-core")
- testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j-impl")
- testImplementation("org.testcontainers:testcontainers")
-}
+/**
+ * Utility classes for embedded Redis.
+ */
+package redis.embedded.util;