use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class SlimeUtilsTest method test_copying_slime_types_into_cursor.
@Test
public void test_copying_slime_types_into_cursor() {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setString("foo", "foobie");
Cursor subobj = root.setObject("bar");
Slime slime2 = new Slime();
Cursor root2 = slime2.setObject();
root2.setString("a", "a");
root2.setLong("b", 2);
root2.setBool("c", true);
root2.setDouble("d", 3.14);
root2.setData("e", new byte[] { 0x64 });
root2.setNix("f");
SlimeUtils.copyObject(slime2.get(), subobj);
assertThat(root.toString(), is("{\"foo\":\"foobie\",\"bar\":{\"a\":\"a\",\"b\":2,\"c\":true,\"d\":3.14,\"e\":\"0x64\",\"f\":null}}"));
}
use of com.yahoo.slime.Slime 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.Slime in project vespa by vespa-engine.
the class SlimeTraceSerializerTest method assertSerialize.
private void assertSerialize(TraceNode root) {
Slime slime = new Slime();
SlimeTraceSerializer serializer = new SlimeTraceSerializer(slime.setObject());
root.accept(serializer);
SlimeTraceDeserializer deserializer = new SlimeTraceDeserializer(slime.get());
TraceNode deser = deserializer.deserialize();
assertTraceEqual(deser, root);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ConfigPayload method fromInstance.
public static ConfigPayload fromInstance(ConfigInstance instance) {
Slime slime = new Slime();
ConfigInstanceSerializer serializer = new ConfigInstanceSerializer(slime);
ConfigInstance.serialize(instance, serializer);
return new ConfigPayload(slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ConfigPayload method fromBuilder.
public static ConfigPayload fromBuilder(ConfigPayloadBuilder builder) {
Slime slime = new Slime();
builder.resolve(slime.setObject());
return new ConfigPayload(slime);
}
Aggregations