Search in sources :

Example 1 with NamespacedRef

use of io.aklivity.zilla.runtime.engine.config.NamespacedRef in project zilla by aklivity.

the class BindingConfigsAdapter method adaptFromJson.

@Override
public BindingConfig[] adaptFromJson(JsonObject object) {
    List<BindingConfig> bindings = new LinkedList<>();
    for (String entry : object.keySet()) {
        JsonObject item = object.getJsonObject(entry);
        String type = item.getString(TYPE_NAME);
        route.adaptType(type);
        options.adaptType(type);
        NamespacedRef vault = item.containsKey(VAULT_NAME) ? NamespacedRef.of(item.getString(VAULT_NAME)) : null;
        KindConfig kind = this.kind.adaptFromJson(item.getJsonString(KIND_NAME));
        OptionsConfig opts = item.containsKey(OPTIONS_NAME) ? options.adaptFromJson(item.getJsonObject(OPTIONS_NAME)) : null;
        MutableInteger order = new MutableInteger();
        List<RouteConfig> routes = item.containsKey(ROUTES_NAME) ? item.getJsonArray(ROUTES_NAME).stream().map(JsonValue::asJsonObject).peek(o -> route.adaptFromJsonIndex(order.value++)).map(route::adaptFromJson).collect(toList()) : ROUTES_DEFAULT;
        RouteConfig exit = item.containsKey(EXIT_NAME) ? new RouteConfig(routes.size(), item.getString(EXIT_NAME)) : null;
        bindings.add(new BindingConfig(vault, entry, type, kind, opts, routes, exit));
    }
    return bindings.toArray(BindingConfig[]::new);
}
Also used : JsonValue(jakarta.json.JsonValue) Collections.emptyList(java.util.Collections.emptyList) JsonArrayBuilder(jakarta.json.JsonArrayBuilder) BindingConfig(io.aklivity.zilla.runtime.engine.config.BindingConfig) Json(jakarta.json.Json) JsonbAdapter(jakarta.json.bind.adapter.JsonbAdapter) JsonObjectBuilder(jakarta.json.JsonObjectBuilder) OptionsConfigAdapterSpi(io.aklivity.zilla.runtime.engine.config.OptionsConfigAdapterSpi) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) OptionsConfig(io.aklivity.zilla.runtime.engine.config.OptionsConfig) RouteConfig(io.aklivity.zilla.runtime.engine.config.RouteConfig) JsonObject(jakarta.json.JsonObject) KindConfig(io.aklivity.zilla.runtime.engine.config.KindConfig) LinkedList(java.util.LinkedList) MutableInteger(org.agrona.collections.MutableInteger) NamespacedRef(io.aklivity.zilla.runtime.engine.config.NamespacedRef) OptionsConfig(io.aklivity.zilla.runtime.engine.config.OptionsConfig) MutableInteger(org.agrona.collections.MutableInteger) JsonValue(jakarta.json.JsonValue) JsonObject(jakarta.json.JsonObject) RouteConfig(io.aklivity.zilla.runtime.engine.config.RouteConfig) NamespacedRef(io.aklivity.zilla.runtime.engine.config.NamespacedRef) LinkedList(java.util.LinkedList) BindingConfig(io.aklivity.zilla.runtime.engine.config.BindingConfig) KindConfig(io.aklivity.zilla.runtime.engine.config.KindConfig)

Example 2 with NamespacedRef

use of io.aklivity.zilla.runtime.engine.config.NamespacedRef in project zilla by aklivity.

the class BindingConfigsAdapterTest method shouldWriteBindingWithVault.

@Test
public void shouldWriteBindingWithVault() {
    NamespacedRef vault = new NamespacedRef("default", "test");
    BindingConfig[] bindings = { new BindingConfig(vault, "test", "test", SERVER, null, emptyList(), null) };
    String text = jsonb.toJson(bindings);
    assertThat(text, not(nullValue()));
    assertThat(text, equalTo("{\"test\":{\"vault\":\"test\",\"type\":\"test\",\"kind\":\"server\"}}"));
}
Also used : BindingConfig(io.aklivity.zilla.runtime.engine.config.BindingConfig) NamespacedRef(io.aklivity.zilla.runtime.engine.config.NamespacedRef) Test(org.junit.Test)

Aggregations

BindingConfig (io.aklivity.zilla.runtime.engine.config.BindingConfig)2 NamespacedRef (io.aklivity.zilla.runtime.engine.config.NamespacedRef)2 KindConfig (io.aklivity.zilla.runtime.engine.config.KindConfig)1 OptionsConfig (io.aklivity.zilla.runtime.engine.config.OptionsConfig)1 OptionsConfigAdapterSpi (io.aklivity.zilla.runtime.engine.config.OptionsConfigAdapterSpi)1 RouteConfig (io.aklivity.zilla.runtime.engine.config.RouteConfig)1 Json (jakarta.json.Json)1 JsonArrayBuilder (jakarta.json.JsonArrayBuilder)1 JsonObject (jakarta.json.JsonObject)1 JsonObjectBuilder (jakarta.json.JsonObjectBuilder)1 JsonValue (jakarta.json.JsonValue)1 JsonbAdapter (jakarta.json.bind.adapter.JsonbAdapter)1 Collections.emptyList (java.util.Collections.emptyList)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Collectors.toList (java.util.stream.Collectors.toList)1 MutableInteger (org.agrona.collections.MutableInteger)1 Test (org.junit.Test)1