Package akka.cluster
Class JoinConfigCompatChecker
- java.lang.Object
-
- akka.cluster.JoinConfigCompatChecker
-
- Direct Known Subclasses:
ClusterReceptionistConfigCompatChecker
,JoinConfigCompatCheckCluster
,JoinConfigCompatCheckerClusterSharding
,JoinConfigCompatCheckSharding
public abstract class JoinConfigCompatChecker extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description JoinConfigCompatChecker()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract ConfigValidation
check(com.typesafe.config.Config toCheck, com.typesafe.config.Config actualConfig)
Runs the Config check.static ConfigValidation
exists(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config toCheck)
Checks that allrequiredKeys
are available intoCheck
Config.static com.typesafe.config.Config
filterWithKeys(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config config)
INTERNAL API Builds a new Config object containing only the required entries defined byrequiredKeys
static ConfigValidation
fullMatch(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config toCheck, com.typesafe.config.Config actualConfig)
Checks that allrequiredKeys
are available intoCheck
Config and its values match exactly the values incurrentConfig
.static JoinConfigCompatChecker
load(ExtendedActorSystem system, ClusterSettings clusterSettings)
INTERNAL APIstatic scala.collection.immutable.Seq<java.lang.String>
removeSensitiveKeys(com.typesafe.config.Config config, ClusterSettings clusterSettings)
INTERNAL API Builds a Seq of keys using the passedConfig
not including any sensitive keys, as defined in 'akka.cluster.configuration-compatibility-check.sensitive-config-paths'.static scala.collection.immutable.Seq<java.lang.String>
removeSensitiveKeys(scala.collection.immutable.Seq<java.lang.String> requiredKeys, ClusterSettings clusterSettings)
INTERNAL API Removes sensitive keys, as defined in 'akka.cluster.configuration-compatibility-check.sensitive-config-paths', from the passedrequiredKeys
Seq.abstract scala.collection.immutable.Seq<java.lang.String>
requiredKeys()
The configuration keys that are required for this checker
-
-
-
Method Detail
-
exists
public static ConfigValidation exists(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config toCheck)
Checks that allrequiredKeys
are available intoCheck
Config.- Parameters:
requiredKeys
- - a Seq of required keystoCheck
- - the Config instance to be checked
-
fullMatch
public static ConfigValidation fullMatch(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config toCheck, com.typesafe.config.Config actualConfig)
Checks that allrequiredKeys
are available intoCheck
Config and its values match exactly the values incurrentConfig
.- Parameters:
requiredKeys
- - a Seq of required keystoCheck
- - the Config instance to be checkedactualConfig
- - the Config instance containing the expected values
-
filterWithKeys
public static com.typesafe.config.Config filterWithKeys(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config config)
INTERNAL API Builds a new Config object containing only the required entries defined byrequiredKeys
This method is used from the joining side to prepare the
Config
instance that will be sent over the wire. We don't send the full config to avoid unnecessary data transfer, but also to avoid leaking any sensitive information that users may have added to their configuration.
-
removeSensitiveKeys
public static scala.collection.immutable.Seq<java.lang.String> removeSensitiveKeys(scala.collection.immutable.Seq<java.lang.String> requiredKeys, ClusterSettings clusterSettings)
INTERNAL API Removes sensitive keys, as defined in 'akka.cluster.configuration-compatibility-check.sensitive-config-paths', from the passedrequiredKeys
Seq.
-
removeSensitiveKeys
public static scala.collection.immutable.Seq<java.lang.String> removeSensitiveKeys(com.typesafe.config.Config config, ClusterSettings clusterSettings)
INTERNAL API Builds a Seq of keys using the passedConfig
not including any sensitive keys, as defined in 'akka.cluster.configuration-compatibility-check.sensitive-config-paths'.
-
load
public static JoinConfigCompatChecker load(ExtendedActorSystem system, ClusterSettings clusterSettings)
INTERNAL APIThis method loads the
JoinConfigCompatChecker
defined in the configuration. Checkers are then combined to be used whenever a join node tries to join an existing cluster.
-
requiredKeys
public abstract scala.collection.immutable.Seq<java.lang.String> requiredKeys()
The configuration keys that are required for this checker
-
check
public abstract ConfigValidation check(com.typesafe.config.Config toCheck, com.typesafe.config.Config actualConfig)
Runs the Config check.Implementers are free to define what makes Config entry compatible or not. We do provide some pre-build checks tough:
JoinConfigCompatChecker.exists
andJoinConfigCompatChecker.fullMatch
- Parameters:
toCheck
- - the Config instance to be checkedactualConfig
- - the Config instance containing the actual values- Returns:
- a
ConfigValidation
. Can beValid
orInvalid
, the later must contain a descriptive list of error messages.
-
-