diff --git a/java/BUILD.bazel b/java/BUILD.bazel index 9baaa3f27..50888d48c 100644 --- a/java/BUILD.bazel +++ b/java/BUILD.bazel @@ -97,6 +97,7 @@ define_java_module( deps = [ ":org_ray_ray_api", ":org_ray_ray_runtime", + "@maven//:com_google_code_gson_gson", "@maven//:com_google_guava_guava", "@maven//:com_sun_xml_bind_jaxb_core", "@maven//:com_sun_xml_bind_jaxb_impl", diff --git a/java/dependencies.bzl b/java/dependencies.bzl index 1f73b9b48..791b24b12 100644 --- a/java/dependencies.bzl +++ b/java/dependencies.bzl @@ -4,6 +4,7 @@ def gen_java_deps(): maven_install( artifacts = [ "com.beust:jcommander:1.72", + "com.google.code.gson:gson:2.8.5", "com.google.guava:guava:27.0.1-jre", "com.google.protobuf:protobuf-java:3.8.0", "com.puppycrawl.tools:checkstyle:8.15", diff --git a/java/test/pom.xml b/java/test/pom.xml index 3dfbbbae8..48075ba8c 100644 --- a/java/test/pom.xml +++ b/java/test/pom.xml @@ -27,6 +27,11 @@ ray-runtime ${project.version} + + com.google.code.gson + gson + 2.8.5 + com.google.guava guava diff --git a/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java b/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java index 379005562..40c5cd5ab 100644 --- a/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java +++ b/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java @@ -3,6 +3,7 @@ package org.ray.api.test; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.gson.Gson; import java.io.File; import java.lang.ProcessBuilder.Redirect; import java.util.List; @@ -77,8 +78,7 @@ public abstract class BaseMultiLanguageTest { String classpath = Stream.of(System.getProperty("java.class.path").split(":")) .filter(s -> !s.contains(" ") && s.contains("test")) .collect(Collectors.joining(":")); - String workerOptions = - " -classpath " + classpath; + String workerOptions = new Gson().toJson(ImmutableList.of("-classpath", classpath)); // Start ray cluster. List startCommand = ImmutableList.of( "ray", diff --git a/java/test/src/main/resources/test_cross_language_invocation.py b/java/test/src/main/resources/test_cross_language_invocation.py index 266016fbe..53f38e86a 100644 --- a/java/test/src/main/resources/test_cross_language_invocation.py +++ b/java/test/src/main/resources/test_cross_language_invocation.py @@ -52,7 +52,7 @@ def py_func_pass_python_actor_handle(): counter = Counter.remote(2) f = ray.java_function("org.ray.api.test.CrossLanguageInvocationTest", "callPythonActorHandle") - r = f.remote(counter._serialization_helper()) + r = f.remote(counter._serialization_helper()[0]) return ray.get(r) diff --git a/python/ray/services.py b/python/ray/services.py index 629a3feac..a03ea4baa 100644 --- a/python/ray/services.py +++ b/python/ray/services.py @@ -1247,7 +1247,8 @@ def start_raylet(redis_address, if include_java is True: default_cp = os.pathsep.join(DEFAULT_JAVA_WORKER_CLASSPATH) java_worker_command = build_java_worker_command( - java_worker_options or ["-classpath", default_cp], + json.loads(java_worker_options) + if java_worker_options else ["-classpath", default_cp], redis_address, node_manager_port, plasma_store_name,