From f22011553430b3dc86dd08d917bd3a8d3b226288 Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Wed, 6 Sep 2017 12:46:44 +0200 Subject: Add preferred Orchestrator lock --- .../src/main/java/com/yahoo/vespa/curator/Curator.java | 8 +++++++- .../java/com/yahoo/vespa/zookeeper/CuratorTest.java | 17 ++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'zkfacade/src') diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java index 41c774f13c3..15257e11cbe 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java @@ -21,6 +21,7 @@ import org.apache.curator.framework.state.ConnectionState; import org.apache.curator.framework.state.ConnectionStateListener; import org.apache.curator.retry.ExponentialBackoffRetry; +import java.io.Closeable; import java.time.Duration; import java.util.Arrays; import java.util.Collections; @@ -40,7 +41,7 @@ import java.util.concurrent.TimeUnit; * @author vegardh * @author bratseth */ -public class Curator { +public class Curator implements AutoCloseable { private static final long UNKNOWN_HOST_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(30); private static final int ZK_SESSION_TIMEOUT = 30000; @@ -269,6 +270,11 @@ public class Curator { return curatorFramework; } + @Override + public void close() { + curatorFramework.close(); + } + /** * Interface for waiting for completion of an operation */ diff --git a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/CuratorTest.java b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/CuratorTest.java index 53d03fa9450..36205bdaca3 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/CuratorTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/CuratorTest.java @@ -52,23 +52,26 @@ public class CuratorTest { @Test public void require_curator_is_created_from_config() { - Curator curator = createCurator(createTestConfig()); - assertThat(curator.connectionSpec(), is(spec1 + "," + spec2)); + try (Curator curator = createCurator(createTestConfig())) { + assertThat(curator.connectionSpec(), is(spec1 + "," + spec2)); + } } @Test public void require_that_curator_can_produce_spec() { - Curator curator = createCurator(createTestConfig()); - assertThat(curator.connectionSpec(), is(spec1 + "," + spec2)); - assertThat(curator.serverCount(), is(2)); + try (Curator curator = createCurator(createTestConfig())) { + assertThat(curator.connectionSpec(), is(spec1 + "," + spec2)); + assertThat(curator.serverCount(), is(2)); + } } @Test public void require_that_server_count_is_correct() { ConfigserverConfig.Builder builder = new ConfigserverConfig.Builder(); builder.zookeeperserver(createZKBuilder("localhost", port1)); - Curator curator = createCurator(new ConfigserverConfig(builder)); - assertThat(curator.serverCount(), is(1)); + try (Curator curator = createCurator(new ConfigserverConfig(builder))) { + assertThat(curator.serverCount(), is(1)); + } } private ConfigserverConfig createTestConfig() { -- cgit v1.2.3