aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Alpha Lam <alpha.lam.ts@gmail.com>2016-05-20 14:35:37 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-05-20 14:42:56 +0000
commitc1b417549cf4ba719662f7562e99e807c606eae7 (patch)
tree727a67d211ecc9a5e053b4b6f921681d9107c23f /src/main/java/com/google/devtools/build/lib
parent90d30e575bea52c4e5eb8db9c9b7e67c6673315d (diff)
Remote worker to listen to a specific port for Hazelcast
This change allows starting remote worker with an embedded hazelcast server that listens to a specific port. This allows test to run reliably. Fixes #1271. -- Change-Id: I0bb36af5837f83cad3d76b8acb50f89cd599ee87 Reviewed-on: https://bazel-review.googlesource.com/c/3650/ MOS_MIGRATED_REVID=122829898
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/HazelcastCacheFactory.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java10
2 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/HazelcastCacheFactory.java b/src/main/java/com/google/devtools/build/lib/remote/HazelcastCacheFactory.java
index f4e34867e1..af7da29be6 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/HazelcastCacheFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/HazelcastCacheFactory.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.remote;
import com.hazelcast.client.HazelcastClient;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.client.config.ClientNetworkConfig;
+import com.hazelcast.config.Config;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
@@ -38,6 +39,15 @@ public final class HazelcastCacheFactory {
ClientNetworkConfig net = config.getNetworkConfig();
net.addAddress(options.hazelcastNode.split(","));
instance = HazelcastClient.newHazelcastClient(config);
+ } else if (options.hazelcastStandaloneListenPort != 0) {
+ Config config = new Config();
+ config
+ .getNetworkConfig()
+ .setPort(options.hazelcastStandaloneListenPort)
+ .getJoin()
+ .getMulticastConfig()
+ .setEnabled(false);
+ instance = Hazelcast.newHazelcastInstance(config);
} else {
// Otherwise create a default instance. This is going to look at
// -Dhazelcast.config=some-hazelcast.xml for configuration.
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
index 5ca8abf3c3..4116a931b0 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
@@ -30,6 +30,16 @@ public final class RemoteOptions extends OptionsBase {
public String hazelcastNode;
@Option(
+ name = "hazelcast_standalone_listen_port",
+ defaultValue = "0",
+ category = "build_worker",
+ help =
+ "Runs an embedded hazelcast server that listens to this port. The server does not join"
+ + " any cluster. This is useful for testing."
+ )
+ public int hazelcastStandaloneListenPort;
+
+ @Option(
name = "remote_worker",
defaultValue = "null",
category = "remote",