diff --git a/java/README.rst b/java/README.rst index 95ab961e7..e01616935 100644 --- a/java/README.rst +++ b/java/README.rst @@ -7,6 +7,7 @@ Ray will read your configurations in the following order: * Java system properties: e.g., ``-Dray.home=/path/to/ray``. * A ``ray.conf`` file in the classpath: `example `_. +* Customise your own ``ray.conf`` path using system property ``-Dray.config=/path/to/ray.conf`` For all available config items and default values, see `this file `_. diff --git a/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java b/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java index 1688fa6db..e07b9e89e 100644 --- a/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java +++ b/java/runtime/src/main/java/org/ray/runtime/config/RayConfig.java @@ -7,11 +7,13 @@ import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import com.typesafe.config.ConfigFactory; +import java.io.File; import java.util.List; import java.util.Map; import org.ray.api.id.UniqueId; import org.ray.runtime.util.NetworkUtil; import org.ray.runtime.util.ResourceUtil; +import org.ray.runtime.util.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -242,9 +244,16 @@ public class RayConfig { */ public static RayConfig create() { ConfigFactory.invalidateCaches(); - Config config = ConfigFactory.systemProperties() - .withFallback(ConfigFactory.load(CUSTOM_CONFIG_FILE)) - .withFallback(ConfigFactory.load(DEFAULT_CONFIG_FILE)); + Config config = ConfigFactory.systemProperties(); + String configPath = System.getProperty("ray.config"); + if (StringUtil.isNullOrEmpty(configPath)) { + LOGGER.info("Loading config from \"ray.conf\" file in classpath."); + config = config.withFallback(ConfigFactory.load(CUSTOM_CONFIG_FILE)); + } else { + LOGGER.info("Loading config from " + configPath + "."); + config = config.withFallback(ConfigFactory.parseFile(new File(configPath))); + } + config = config.withFallback(ConfigFactory.load(DEFAULT_CONFIG_FILE)); return new RayConfig(config); }