summaryrefslogtreecommitdiffstats
path: root/config/src/test/java/com/yahoo/config
diff options
context:
space:
mode:
Diffstat (limited to 'config/src/test/java/com/yahoo/config')
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java10
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java18
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/GenericConfigSubscriberTest.java34
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java7
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java78
5 files changed, 87 insertions, 60 deletions
diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
index 346368ee7d9..0d9b8745888 100644
--- a/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/ConfigSetSubscriptionTest.java
@@ -2,7 +2,6 @@
package com.yahoo.config.subscription;
import com.yahoo.config.subscription.impl.ConfigSubscription;
-import com.yahoo.config.subscription.impl.JrtConfigRequesters;
import com.yahoo.foo.AppConfig;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.foo.StringConfig;
@@ -19,21 +18,21 @@ public class ConfigSetSubscriptionTest {
@Test
public void testConfigSubscription() {
+ ConfigSubscriber subscriber = new ConfigSubscriber();
ConfigSet configSet = new ConfigSet();
AppConfig.Builder a0builder = new AppConfig.Builder().message("A message, 0").times(88);
configSet.addBuilder("app/0", a0builder);
AppConfig.Builder a1builder = new AppConfig.Builder().message("A message, 1").times(89);
configSet.addBuilder("app/1", a1builder);
- JrtConfigRequesters requesters = new JrtConfigRequesters();
ConfigSubscription<AppConfig> c1 = ConfigSubscription.get(
new ConfigKey<>(AppConfig.class, "app/0"),
- requesters,
+ subscriber,
configSet,
new TimingValues());
ConfigSubscription<AppConfig> c2 = ConfigSubscription.get(
new ConfigKey<>(AppConfig.class, "app/1"),
- requesters,
+ subscriber,
configSet,
new TimingValues());
@@ -43,13 +42,14 @@ public class ConfigSetSubscriptionTest {
@Test(expected = IllegalArgumentException.class)
public void testUnknownKey() {
+ ConfigSubscriber subscriber = new ConfigSubscriber();
ConfigSet configSet = new ConfigSet();
AppConfig.Builder a0builder = new AppConfig.Builder().message("A message, 0").times(88);
configSet.addBuilder("app/0", a0builder);
ConfigSubscription.get(
new ConfigKey<>(SimpletypesConfig.class, "simpletypes/1"),
- new JrtConfigRequesters(),
+ subscriber,
configSet,
new TimingValues());
}
diff --git a/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java
index 1b0bc858361..270c618ee1b 100644
--- a/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/ConfigSubscriptionTest.java
@@ -4,7 +4,6 @@ package com.yahoo.config.subscription;
import com.yahoo.config.ConfigInstance;
import com.yahoo.config.ConfigurationRuntimeException;
import com.yahoo.config.subscription.impl.ConfigSubscription;
-import com.yahoo.config.subscription.impl.JrtConfigRequesters;
import com.yahoo.foo.AppConfig;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.vespa.config.ConfigKey;
@@ -30,10 +29,9 @@ public class ConfigSubscriptionTest {
public void testEquals() {
ConfigSubscriber sub = new ConfigSubscriber();
- JrtConfigRequesters requesters = new JrtConfigRequesters();
- ConfigSubscription<SimpletypesConfig> a = createSubscription(requesters, "test");
- ConfigSubscription<SimpletypesConfig> b = createSubscription(requesters, "test");
- ConfigSubscription<SimpletypesConfig> c = createSubscription(requesters, "test2");
+ ConfigSubscription<SimpletypesConfig> a = createSubscription(sub, "test");
+ ConfigSubscription<SimpletypesConfig> b = createSubscription(sub, "test");
+ ConfigSubscription<SimpletypesConfig> c = createSubscription(sub, "test2");
assertEquals(b, a);
assertEquals(a, a);
assertEquals(b, b);
@@ -41,21 +39,21 @@ public class ConfigSubscriptionTest {
assertNotEquals(c, a);
assertNotEquals(c, b);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
ConfigSet configSet = new ConfigSet();
AppConfig.Builder a0builder = new AppConfig.Builder().message("A message, 0").times(88);
configSet.addBuilder("app/0", a0builder);
AppConfig.Builder a1builder = new AppConfig.Builder().message("A message, 1").times(89);
configSet.addBuilder("app/1", a1builder);
-
ConfigSubscription<AppConfig> c1 = ConfigSubscription.get(
new ConfigKey<>(AppConfig.class, "app/0"),
- requesters,
+ subscriber,
configSet,
new TimingValues());
ConfigSubscription<AppConfig> c2 = ConfigSubscription.get(
new ConfigKey<>(AppConfig.class, "app/1"),
- requesters,
+ subscriber,
configSet,
new TimingValues());
@@ -88,9 +86,9 @@ public class ConfigSubscriptionTest {
}
}
- private ConfigSubscription<SimpletypesConfig> createSubscription(JrtConfigRequesters requesters, String configId) {
+ private ConfigSubscription<SimpletypesConfig> createSubscription(ConfigSubscriber sub, String configId) {
return ConfigSubscription.get(new ConfigKey<>(SimpletypesConfig.class, configId),
- requesters, new RawSource("boolval true"), new TimingValues());
+ sub, new RawSource("boolval true"), new TimingValues());
}
private static class TestConfigSubscriber extends ConfigSubscriber {
diff --git a/config/src/test/java/com/yahoo/config/subscription/GenericConfigSubscriberTest.java b/config/src/test/java/com/yahoo/config/subscription/GenericConfigSubscriberTest.java
index fc922cc3b07..4616630557e 100644
--- a/config/src/test/java/com/yahoo/config/subscription/GenericConfigSubscriberTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/GenericConfigSubscriberTest.java
@@ -6,15 +6,15 @@ import com.yahoo.config.subscription.impl.GenericConfigSubscriber;
import com.yahoo.config.subscription.impl.JRTConfigRequester;
import com.yahoo.config.subscription.impl.JRTConfigRequesterTest;
import com.yahoo.config.subscription.impl.MockConnection;
-import com.yahoo.jrt.Supervisor;
-import com.yahoo.jrt.Transport;
import com.yahoo.vespa.config.ConfigKey;
-import com.yahoo.vespa.config.JRTConnectionPool;
import com.yahoo.vespa.config.TimingValues;
import com.yahoo.vespa.config.protocol.CompressionType;
import org.junit.Test;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -31,11 +31,14 @@ public class GenericConfigSubscriberTest {
@Test
public void testSubscribeGeneric() throws InterruptedException {
- JRTConfigRequester requester = new JRTConfigRequester(new MockConnection(), tv);
- GenericConfigSubscriber sub = new GenericConfigSubscriber(requester);
+ Map<ConfigSourceSet, JRTConfigRequester> requesters = new HashMap<>();
+ ConfigSourceSet sourceSet = new ConfigSourceSet("blabla");
+ requesters.put(sourceSet, new JRTConfigRequester(new MockConnection(), tv));
+ GenericConfigSubscriber sub = new GenericConfigSubscriber(requesters);
final List<String> defContent = List.of("myVal int");
GenericConfigHandle handle = sub.subscribe(new ConfigKey<>("simpletypes", "id", "config"),
defContent,
+ sourceSet,
tv);
assertTrue(sub.nextConfig(false));
assertTrue(handle.isChanged());
@@ -57,6 +60,23 @@ public class GenericConfigSubscriberTest {
return handle.getRawConfig().getPayload().withCompression(CompressionType.UNCOMPRESSED).toString();
}
+ @Test
+ public void testGenericRequesterPooling() {
+ ConfigSourceSet source1 = new ConfigSourceSet("tcp/foo:78");
+ ConfigSourceSet source2 = new ConfigSourceSet("tcp/bar:79");
+ JRTConfigRequester req1 = JRTConfigRequester.create(source1, tv);
+ JRTConfigRequester req2 = JRTConfigRequester.create(source2, tv);
+ Map<ConfigSourceSet, JRTConfigRequester> requesters = new LinkedHashMap<>();
+ requesters.put(source1, req1);
+ requesters.put(source2, req2);
+ GenericConfigSubscriber sub = new GenericConfigSubscriber(requesters);
+ assertEquals(sub.requesters().get(source1).getConnectionPool().getCurrent().getAddress(), "tcp/foo:78");
+ assertEquals(sub.requesters().get(source2).getConnectionPool().getCurrent().getAddress(), "tcp/bar:79");
+ for (JRTConfigRequester requester : requesters.values()) {
+ requester.close();
+ }
+ }
+
@Test(expected=UnsupportedOperationException.class)
public void testOverriddenSubscribeInvalid1() {
createSubscriber().subscribe(null, null);
@@ -73,7 +93,9 @@ public class GenericConfigSubscriberTest {
}
private GenericConfigSubscriber createSubscriber() {
- return new GenericConfigSubscriber(new JRTConfigRequester(new JRTConnectionPool(new ConfigSourceSet("foo"), new Supervisor(new Transport())), tv));
+ return new GenericConfigSubscriber(Map.of(
+ new ConfigSourceSet("blabla"),
+ new JRTConfigRequester(new MockConnection(), JRTConfigRequesterTest.getTestTimingValues())));
}
}
diff --git a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
index 74af35e39dc..15f39f590aa 100644
--- a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.subscription.impl;
+import com.yahoo.config.subscription.ConfigSubscriber;
import com.yahoo.config.subscription.DirSource;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.foo.TestReferenceConfig;
@@ -97,10 +98,8 @@ public class FileConfigSubscriptionTest {
final String cfgDir = "src/test/resources/configs/foo";
final String cfgId = "dir:" + cfgDir;
final ConfigKey<TestReferenceConfig> key = new ConfigKey<>(TestReferenceConfig.class, cfgId);
- ConfigSubscription<TestReferenceConfig> sub = ConfigSubscription.get(key,
- new JrtConfigRequesters(),
- new DirSource(new File(cfgDir)),
- new TimingValues());
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ ConfigSubscription<TestReferenceConfig> sub = ConfigSubscription.get(key, subscriber, new DirSource(new File(cfgDir)), new TimingValues());
assertTrue(sub.nextConfig(1000));
assertThat(sub.getConfigState().getConfig().configId(), is(cfgId));
}
diff --git a/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java b/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
index dca0c2d0018..62a25fadf25 100644
--- a/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
@@ -2,6 +2,7 @@
package com.yahoo.config.subscription.impl;
import com.yahoo.config.subscription.ConfigSourceSet;
+import com.yahoo.config.subscription.ConfigSubscriber;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.jrt.Request;
import com.yahoo.vespa.config.ConfigKey;
@@ -50,11 +51,12 @@ public class JRTConfigRequesterTest {
@Test
public void testFirstRequestAfterSubscribing() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection();
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
+ final MockConnection connection = new MockConnection();
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
assertEquals(requester.getConnectionPool(), connection);
requester.request(sub);
final Request request = connection.getRequest();
@@ -68,24 +70,25 @@ public class JRTConfigRequesterTest {
@Test
public void testFatalError() {
+ ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
final MockConnection connection = new MockConnection(new ErrorResponseHandler());
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- requester.request(createSubscription(requester, timingValues));
+ requester.request(createSubscription(subscriber, timingValues));
waitUntilResponse(connection);
assertEquals(1, requester.getFailures());
}
@Test
public void testFatalErrorSubscribed() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new ErrorResponseHandler());
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
-
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
sub.setConfig(1L, false, config(), PayloadChecksums.empty());
+ final MockConnection connection = new MockConnection(new ErrorResponseHandler());
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
requester.request(sub);
waitUntilResponse(connection);
assertEquals(1, requester.getFailures());
@@ -93,23 +96,25 @@ public class JRTConfigRequesterTest {
@Test
public void testTransientError() {
- TimingValues timingValues = getTestTimingValues();
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
+ final MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- requester.request(createSubscription(requester, timingValues));
+ requester.request(createSubscription(subscriber, timingValues));
waitUntilResponse(connection);
assertEquals(1, requester.getFailures());
}
@Test
public void testTransientErrorSubscribed() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
sub.setConfig(1L, false, config(), PayloadChecksums.empty());
+ final MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
requester.request(sub);
waitUntilResponse(connection);
assertEquals(1, requester.getFailures());
@@ -117,12 +122,13 @@ public class JRTConfigRequesterTest {
@Test
public void testUnknownConfigDefinitionError() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new ErrorResponseHandler(ErrorCode.UNKNOWN_DEFINITION));
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
sub.setConfig(1L, false, config(), PayloadChecksums.empty());
+ final MockConnection connection = new MockConnection(new ErrorResponseHandler(ErrorCode.UNKNOWN_DEFINITION));
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
assertEquals(requester.getConnectionPool(), connection);
requester.request(sub);
waitUntilResponse(connection);
@@ -131,12 +137,13 @@ public class JRTConfigRequesterTest {
@Test
public void testClosedSubscription() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new MockConnection.OKResponseHandler());
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
sub.close();
+ final MockConnection connection = new MockConnection(new MockConnection.OKResponseHandler());
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
requester.request(sub);
assertEquals(1, connection.getNumberOfRequests());
// Check that no further request was sent?
@@ -150,14 +157,16 @@ public class JRTConfigRequesterTest {
@Test
public void testTimeout() {
- TimingValues timingValues = getTestTimingValues();
- MockConnection connection = new MockConnection(new DelayedResponseHandler(timingValues.getSubscribeTimeout()),
- 2); // fake that we have more than one source
- JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
- JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(requester, timingValues);
+ ConfigSubscriber subscriber = new ConfigSubscriber();
+ final TimingValues timingValues = getTestTimingValues();
+ JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
sub.close();
- requester.request(createSubscription(requester, timingValues));
+ final MockConnection connection = new MockConnection(
+ new DelayedResponseHandler(timingValues.getSubscribeTimeout()),
+ 2); // fake that we have more than one source
+ JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
+ requester.request(createSubscription(subscriber, timingValues));
// Check that no further request was sent?
try {
Thread.sleep(timingValues.getFixedDelay()*2);
@@ -166,10 +175,9 @@ public class JRTConfigRequesterTest {
}
}
- private JRTConfigSubscription<SimpletypesConfig> createSubscription(JRTConfigRequester requester, TimingValues timingValues) {
- return new JRTConfigSubscription<>(new ConfigKey<>(SimpletypesConfig.class, "testid"),
- requester,
- timingValues);
+ private JRTConfigSubscription<SimpletypesConfig> createSubscription(ConfigSubscriber subscriber, TimingValues timingValues) {
+ return new JRTConfigSubscription<>(
+ new ConfigKey<>(SimpletypesConfig.class, "testid"), subscriber, null, timingValues);
}
private SimpletypesConfig config() {