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());
}
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);
}
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());
}
}
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"));
}
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());
}
Aggregations