Search in sources :

Example 11 with ConfigSubscriber

use of com.yahoo.config.subscription.ConfigSubscriber in project vespa by vespa-engine.

the class FileConfigSubscriptionTest method require_that_bad_file_throws_exception.

@Test(expected = IllegalArgumentException.class)
public void require_that_bad_file_throws_exception() throws IOException {
    // A little trick to ensure that we can create the subscriber, but that we get an error when reading.
    writeConfig("intval", "23");
    ConfigSubscriber subscriber = new ConfigSubscriber(new FileSource(TEST_TYPES_FILE));
    ConfigSubscription<SimpletypesConfig> sub = new FileConfigSubscription<>(new ConfigKey<>(SimpletypesConfig.class, ""), subscriber, TEST_TYPES_FILE);
    sub.reload(1);
    // delete file so the below statement throws exception
    Files.delete(TEST_TYPES_FILE.toPath());
    sub.nextConfig(0);
}
Also used : SimpletypesConfig(com.yahoo.foo.SimpletypesConfig) ConfigSubscriber(com.yahoo.config.subscription.ConfigSubscriber) FileSource(com.yahoo.config.subscription.FileSource) Test(org.junit.Test)

Example 12 with ConfigSubscriber

use of com.yahoo.config.subscription.ConfigSubscriber in project vespa by vespa-engine.

the class FileConfigSubscriptionTest method require_that_new_config_is_detected_on_reload.

@Test
public void require_that_new_config_is_detected_on_reload() throws IOException {
    writeConfig("intval", "23");
    ConfigSubscriber subscriber = new ConfigSubscriber(new FileSource(TEST_TYPES_FILE));
    ConfigSubscription<SimpletypesConfig> sub = new FileConfigSubscription<>(new ConfigKey<>(SimpletypesConfig.class, ""), subscriber, TEST_TYPES_FILE);
    assertTrue(sub.nextConfig(1000));
    assertThat(sub.getConfigState().getConfig().intval(), is(23));
    writeConfig("intval", "33");
    sub.reload(1);
    assertTrue(sub.nextConfig(1000));
    ConfigSubscription.ConfigState<SimpletypesConfig> configState = sub.getConfigState();
    assertThat(configState.getConfig().intval(), is(33));
    assertTrue(configState.isConfigChanged());
    assertTrue(configState.isGenerationChanged());
    assertTrue(sub.isConfigChangedAndReset(7L));
    assertSame(configState, sub.getConfigState());
    assertTrue(configState.isConfigChanged());
    assertTrue(configState.isGenerationChanged());
    assertTrue(sub.isConfigChangedAndReset(1L));
    assertNotSame(configState, sub.getConfigState());
    configState = sub.getConfigState();
    assertFalse(configState.isConfigChanged());
    assertFalse(configState.isGenerationChanged());
    sub.reload(2);
    assertTrue(sub.nextConfig(1000));
    configState = sub.getConfigState();
    assertThat(configState.getConfig().intval(), is(33));
    assertFalse(configState.isConfigChanged());
    assertTrue(configState.isGenerationChanged());
    assertFalse(sub.isConfigChangedAndReset(2L));
    assertNotSame(configState, sub.getConfigState());
    configState = sub.getConfigState();
    assertFalse(configState.isConfigChanged());
    assertFalse(configState.isGenerationChanged());
}
Also used : SimpletypesConfig(com.yahoo.foo.SimpletypesConfig) ConfigSubscriber(com.yahoo.config.subscription.ConfigSubscriber) FileSource(com.yahoo.config.subscription.FileSource) Test(org.junit.Test)

Example 13 with ConfigSubscriber

use of com.yahoo.config.subscription.ConfigSubscriber in project vespa by vespa-engine.

the class FileConfigSubscriptionTest method require_that_dir_config_id_reference_is_not_changed.

@Test
public void require_that_dir_config_id_reference_is_not_changed() {
    final String cfgDir = "src/test/resources/configs/foo";
    final String cfgId = "dir:" + cfgDir;
    final ConfigKey<TestReferenceConfig> key = new ConfigKey<>(TestReferenceConfig.class, cfgId);
    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));
}
Also used : TestReferenceConfig(com.yahoo.foo.TestReferenceConfig) ConfigKey(com.yahoo.vespa.config.ConfigKey) ConfigSubscriber(com.yahoo.config.subscription.ConfigSubscriber) TimingValues(com.yahoo.vespa.config.TimingValues) DirSource(com.yahoo.config.subscription.DirSource) File(java.io.File) Test(org.junit.Test)

Example 14 with ConfigSubscriber

use of com.yahoo.config.subscription.ConfigSubscriber in project vespa by vespa-engine.

the class FileConfigSubscriptionTest method require_that_new_config_is_detected_in_time.

@Test
public void require_that_new_config_is_detected_in_time() throws IOException, InterruptedException {
    writeConfig("intval", "23");
    ConfigSubscriber subscriber = new ConfigSubscriber(new FileSource(TEST_TYPES_FILE));
    ConfigSubscription<SimpletypesConfig> sub = new FileConfigSubscription<>(new ConfigKey<>(SimpletypesConfig.class, ""), subscriber, TEST_TYPES_FILE);
    assertTrue(sub.nextConfig(1000));
    assertThat(sub.getConfigState().getConfig().intval(), is(23));
    Thread.sleep(1000);
    writeConfig("intval", "33");
    assertTrue(sub.nextConfig(1000));
    assertThat(sub.getConfigState().getConfig().intval(), is(33));
}
Also used : SimpletypesConfig(com.yahoo.foo.SimpletypesConfig) ConfigSubscriber(com.yahoo.config.subscription.ConfigSubscriber) FileSource(com.yahoo.config.subscription.FileSource) Test(org.junit.Test)

Example 15 with ConfigSubscriber

use of com.yahoo.config.subscription.ConfigSubscriber in project vespa by vespa-engine.

the class JRTConfigRequesterTest method testTransientErrorSubscribed.

@Test
public void testTransientErrorSubscribed() {
    ConfigSubscriber subscriber = new ConfigSubscriber();
    final TimingValues timingValues = getTestTimingValues();
    JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
    sub.setConfig(1L, config());
    final MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
    JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
    requester.request(sub);
    waitUntilResponse(connection);
    assertThat(requester.getFatalFailures(), is(0));
    assertThat(requester.getTransientFailures(), is(1));
}
Also used : SimpletypesConfig(com.yahoo.foo.SimpletypesConfig) ConfigSubscriber(com.yahoo.config.subscription.ConfigSubscriber) TimingValues(com.yahoo.vespa.config.TimingValues) Test(org.junit.Test)

Aggregations

ConfigSubscriber (com.yahoo.config.subscription.ConfigSubscriber)18 Test (org.junit.Test)15 TimingValues (com.yahoo.vespa.config.TimingValues)12 SimpletypesConfig (com.yahoo.foo.SimpletypesConfig)11 FileSource (com.yahoo.config.subscription.FileSource)3 JRTConfigSubscription (com.yahoo.config.subscription.impl.JRTConfigSubscription)3 ConfigSet (com.yahoo.config.subscription.ConfigSet)2 GenericConfigSubscriber (com.yahoo.config.subscription.impl.GenericConfigSubscriber)2 ConfigSourceSet (com.yahoo.config.subscription.ConfigSourceSet)1 DirSource (com.yahoo.config.subscription.DirSource)1 MockConnection (com.yahoo.config.subscription.impl.MockConnection)1 FunctionTestConfig (com.yahoo.foo.FunctionTestConfig)1 TestReferenceConfig (com.yahoo.foo.TestReferenceConfig)1 Request (com.yahoo.jrt.Request)1 ConfigKey (com.yahoo.vespa.config.ConfigKey)1 JRTServerConfigRequestV3 (com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3)1 File (java.io.File)1