Search in sources :

Example 66 with Cursor

use of com.yahoo.slime.Cursor in project vespa by vespa-engine.

the class ConfigBuilderGeneratorTest method require_that_custom_classes_can_be_generated.

@Test
public void require_that_custom_classes_can_be_generated() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
    String[] schema = new String[] { "namespace=foo.bar", "intval int", "stringval string" };
    File tempDir = Files.createTempDir();
    ConfigDefinitionKey key = new ConfigDefinitionKey("quux", "foo.bar");
    ConfigCompiler compiler = new LazyConfigCompiler(tempDir);
    ConfigInstance.Builder builder = compiler.compile(new ConfigDefinition(key.getName(), schema).generateClass()).newInstance();
    assertNotNull(builder);
    ConfigPayloadApplier<?> payloadApplier = new ConfigPayloadApplier<>(builder);
    Slime slime = new Slime();
    Cursor root = slime.setObject();
    root.setString("intval", "3");
    root.setString("stringval", "Hello, world");
    payloadApplier.applyPayload(new ConfigPayload(slime));
    String className = createClassName(key.getName());
    ConfigInstance instance = (ConfigInstance) builder.getClass().getClassLoader().loadClass("com.yahoo." + key.getNamespace() + "." + className).getConstructor(new Class<?>[] { builder.getClass() }).newInstance(builder);
    assertNotNull(instance);
    assertEquals("intval 3\nstringval \"Hello, world\"", instance.toString());
}
Also used : ConfigDefinitionKey(com.yahoo.vespa.config.ConfigDefinitionKey) Slime(com.yahoo.slime.Slime) Cursor(com.yahoo.slime.Cursor) ConfigPayload(com.yahoo.vespa.config.ConfigPayload) ConfigPayloadApplier(com.yahoo.vespa.config.ConfigPayloadApplier) File(java.io.File) ConfigInstance(com.yahoo.config.ConfigInstance) Test(org.junit.Test)

Example 67 with Cursor

use of com.yahoo.slime.Cursor in project vespa by vespa-engine.

the class ConfigChangeActionsSlimeConverter method toSlime.

public void toSlime(Cursor root) {
    Cursor actionsCursor = root.setObject("configChangeActions");
    restartActionsToSlime(actionsCursor);
    refeedActionsToSlime(actionsCursor);
}
Also used : Cursor(com.yahoo.slime.Cursor)

Example 68 with Cursor

use of com.yahoo.slime.Cursor in project vespa by vespa-engine.

the class ConfigChangeActionsSlimeConverter method servicesToSlime.

private static void servicesToSlime(Cursor entryCursor, Set<ServiceInfo> services) {
    Cursor servicesCursor = entryCursor.setArray("services");
    for (ServiceInfo service : services) {
        Cursor serviceCursor = servicesCursor.addObject();
        serviceCursor.setString("serviceName", service.getServiceName());
        serviceCursor.setString("serviceType", service.getServiceType());
        serviceCursor.setString("configId", service.getConfigId());
        serviceCursor.setString("hostName", service.getHostName());
    }
}
Also used : ServiceInfo(com.yahoo.config.model.api.ServiceInfo) Cursor(com.yahoo.slime.Cursor)

Example 69 with Cursor

use of com.yahoo.slime.Cursor in project vespa by vespa-engine.

the class ConfigPayloadBuilderTest method require_that_maps_support_simple_values.

@Test
public void require_that_maps_support_simple_values() {
    ConfigPayloadBuilder builder = new ConfigPayloadBuilder();
    ConfigPayloadBuilder.MapBuilder map = builder.getMap("foo");
    map.put("fookey", "foovalue");
    map.put("barkey", "barvalue");
    map.put("bazkey", "bazvalue");
    map.put("fookey", "lolvalue");
    assertThat(map.getElements().size(), is(3));
    Cursor root = createSlime(builder);
    Cursor a = root.field("foo");
    assertThat(a.field("barkey").asString(), is("barvalue"));
    assertThat(a.field("bazkey").asString(), is("bazvalue"));
    assertThat(a.field("fookey").asString(), is("lolvalue"));
}
Also used : Cursor(com.yahoo.slime.Cursor) Test(org.junit.Test)

Example 70 with Cursor

use of com.yahoo.slime.Cursor in project vespa by vespa-engine.

the class ConfigPayloadBuilderTest method require_that_simple_fields_are_set.

@Test
public void require_that_simple_fields_are_set() {
    ConfigPayloadBuilder builder = new ConfigPayloadBuilder();
    builder.setField("foo", "bar");
    builder.setField("bar", "barz");
    builder.getObject("bar").setValue("baz");
    Cursor root = createSlime(builder);
    assertEquals("bar", root.field("foo").asString());
    assertEquals("baz", root.field("bar").asString());
}
Also used : Cursor(com.yahoo.slime.Cursor) Test(org.junit.Test)

Aggregations

Cursor (com.yahoo.slime.Cursor)112 Slime (com.yahoo.slime.Slime)79 Test (org.junit.Test)33 SlimeJsonResponse (com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse)19 ByteArrayOutputStream (java.io.ByteArrayOutputStream)17 DefParser (com.yahoo.config.codegen.DefParser)15 InnerCNode (com.yahoo.config.codegen.InnerCNode)15 StringReader (java.io.StringReader)15 IOException (java.io.IOException)9 ApplicationId (com.yahoo.config.provision.ApplicationId)8 JsonFormat (com.yahoo.slime.JsonFormat)8 Application (com.yahoo.vespa.hosted.controller.Application)6 List (java.util.List)6 Map (java.util.Map)6 Inspector (com.yahoo.slime.Inspector)5 SlimeUtils (com.yahoo.vespa.config.SlimeUtils)5 Ignore (org.junit.Ignore)5 Version (com.yahoo.component.Version)4 RegionName (com.yahoo.config.provision.RegionName)4 TenantName (com.yahoo.config.provision.TenantName)4