Interface CconfigClient

All Known Implementing Classes:
CconfigClientImpl

public interface CconfigClient
  • Method Summary

    Modifier and Type
    Method
    Description
    value(String module, String key)
     
    default <T> T
    value(String module, String key, com.fasterxml.jackson.core.type.TypeReference<T> targetType)
     
    default <T> T
    value(String module, String key, Class<T> targetType)
     
  • Method Details

    • value

      Map<String,Object> value(String module, String key)
      Parameters:
      module - - the module under which the key is defined. Modules can be nested.
      key - - the key for which value is desired.
      Returns:
      the value for the key. If key is null and only module name is specified, then all keys for module will be returned. Key value can be string or a map.
      If a module is specified and key is null it will be a map with all the keys as keys of the map. The value can be strings or map depending on how the value was defined by any of the Config Retrievers.
      Eg: The JSON config retriever defines the keys for a module can look like this:
      "key1": "value1" "key2": { "valid JSON": "here", "it": { "can": {"be": { "arbitrarily": "nested"}}} }
      These JSON values can be over-ridden in two ways :
      1. They can be over-ridden for all "requests" whether they have a custom attribute or not (__GLOBAL__)
      2. They can be over-ridden for specific "requests" that have a custom attribute (eg. all requests that belong to a client "tenant0")
      The whole JSON can be over-ridden or specific portions of the JSON (given by path) can be over-ridden. Please see the test cases for more details.
      New keys can be introduced by individual config retrievers.
    • value

      default <T> T value(String module, String key, Class<T> targetType)
    • value

      default <T> T value(String module, String key, com.fasterxml.jackson.core.type.TypeReference<T> targetType)