object ConfigSource
- Alphabetic
- By Inheritance
- ConfigSource
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class ConfigSourceName(name: String) extends Product with Serializable
- type Managed[A] = ZIO[Scope, ReadError[K], A]
- type ManagedReader = ZIO[Scope, ReadError[K], TreeReader]
- type MemoizableManaged[A] = ZIO[Scope, Nothing, ZIO[Scope, ReadError[K], A]]
- type MemoizableManagedReader = ZIO[Scope, Nothing, ZIO[Scope, ReadError[K], TreeReader]]
- case class OrElse(self: ConfigSource, that: ConfigSource) extends ConfigSource with Product with Serializable
- case class Reader(names: Set[ConfigSourceName], access: MemoizableManagedReader) extends ConfigSource with Product with Serializable
- type TreeReader = (PropertyTreePath[K]) ⇒ ZIO[Any, ReadError[K], PropertyTree[K, V]]
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- val empty: ConfigSource
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
fromCommandLineArgs(args: List[String], keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None): ConfigSource
EXPERIMENTAL
EXPERIMENTAL
Assumption. All keys should start with -
This source supports almost all standard command-line patterns including nesting/sub-config, repetition/list etc
Example:
Given:
args = "-db.username=1 --db.password=hi --vault -username=3 --vault -password=10 --regions 111,122 --user k1 --user k2" keyDelimiter = Some('.') valueDelimiter = Some(',')
then, the following works:
final case class Credentials(username: String, password: String) val credentials = (string("username") zip string("password")).to[Credentials] final case class Config(databaseCredentials: Credentials, vaultCredentials: Credentials, regions: List[String], users: List[String]) (nested("db") { credentials } zip nested("vault") { credentials } zip list("regions")(string) zip list("user")(string)).to[Config] // res0 Config(Credentials(1, hi), Credentials(3, 10), List(111, 122), List(k1, k2))
- def fromManaged(sourceName: String, effect: ZIO[Scope, ReadError[String], TreeReader]): ConfigSource
-
def
fromMap(constantMap: Map[String, String], sourceName: String = "constant", keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Provide keyDelimiter if you need to consider flattened config as a nested config.
Provide keyDelimiter if you need to consider flattened config as a nested config. Provide valueDelimiter if you need any value to be a list
Example:
Given:
map = Map("KAFKA_SERVERS" -> "server1, server2", "KAFKA_SERDE" -> "confluent") keyDelimiter = Some('_') valueDelimiter = Some(',')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
-
def
fromMultiMap(map: Map[String, ::[String]], sourceName: String = "constant", keyDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Provide keyDelimiter if you need to consider flattened config as a nested config.
Provide keyDelimiter if you need to consider flattened config as a nested config.
Example:
Given:
map = Map("KAFKA_SERVERS" -> singleton(server1), "KAFKA_SERDE" -> singleton("confluent")) keyDelimiter = Some('_')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
-
def
fromProperties(property: Properties, sourceName: String = "properties", keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Provide keyDelimiter if you need to consider flattened config as a nested config.
Provide keyDelimiter if you need to consider flattened config as a nested config. Provide valueDelimiter if you need any value to be a list
Example:
Given:
property = "KAFKA.SERVERS" = "server1, server2" ; "KAFKA.SERDE" = "confluent" keyDelimiter = Some('.') valueDelimiter = Some(',')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
-
def
fromPropertiesFile[A](filePath: String, keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Provide keyDelimiter if you need to consider flattened config as a nested config.
Provide keyDelimiter if you need to consider flattened config as a nested config. Provide valueDelimiter if you need any value to be a list
Example:
Given:
properties (in file) = "KAFKA.SERVERS" = "server1, server2" ; "KAFKA.SERDE" = "confluent" keyDelimiter = Some('.') valueDelimiter = Some(',')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
-
def
fromPropertyTree(tree: PropertyTree[K, V], sourceName: String): ConfigSource
To obtain a config source directly from a property tree.
To obtain a config source directly from a property tree.
- tree
: PropertyTree
- sourceName
: Label the source with a name
-
def
fromSystemEnv(keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Consider providing keyDelimiter if you need to consider flattened config as a nested config.
Consider providing keyDelimiter if you need to consider flattened config as a nested config. Consider providing valueDelimiter if you need any value to be a list
Example:
Given:
vars in sys.env = "KAFKA_SERVERS" = "server1, server2" ; "KAFKA_SERDE" = "confluent" keyDelimiter = Some('_') valueDelimiter = Some(',')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
With filterKeys, you can choose to filter only those keys that needs to be considered.
Note: The delimiter '.' for keys doesn't work in system environment.
-
def
fromSystemProps(keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): ConfigSource
Consider providing keyDelimiter if you need to consider flattened config as a nested config.
Consider providing keyDelimiter if you need to consider flattened config as a nested config. Consider providing valueDelimiter if you need any value to be a list
Example:
Given:
vars in sys.props = "KAFKA.SERVERS" = "server1, server2" ; "KAFKA.SERDE" = "confluent" keyDelimiter = Some('.') valueDelimiter = Some(',')
then, the following works:
final case class kafkaConfig(server: String, serde: String) nested("KAFKA")(string("SERVERS") zip string("SERDE")).to[KafkaConfig]
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getPropertyTreeFromArgs(args: List[String], keyDelimiter: Option[Char], valueDelimiter: Option[Char])(implicit KS: =:=[String, K], VS: =:=[String, V]): List[PropertyTree[K, V]]
- def getPropertyTreeFromMap(constantMap: Map[String, String], keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): PropertyTree[K, V]
- def getPropertyTreeFromMapA[A](map: Map[K, A])(f: (A) ⇒ ::[V], keyDelimiter: Option[Char]): PropertyTree[K, V]
- def getPropertyTreeFromProperties(property: Properties, keyDelimiter: Option[Char] = None, valueDelimiter: Option[Char] = None, filterKeys: (String) ⇒ Boolean = _ => true): PropertyTree[K, V]
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()