Package akka.cluster

Class 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)  
      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 by requiredKeys
      static ConfigValidation fullMatch​(scala.collection.immutable.Seq<java.lang.String> requiredKeys, com.typesafe.config.Config toCheck, com.typesafe.config.Config actualConfig)
      Checks that all requiredKeys are available in toCheck Config and its values match exactly the values in currentConfig.
      static JoinConfigCompatChecker load​(ExtendedActorSystem system, ClusterSettings clusterSettings)
      INTERNAL API
      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 passed Config 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 passed requiredKeys Seq.
      abstract scala.collection.immutable.Seq<java.lang.String> requiredKeys()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JoinConfigCompatChecker

        public JoinConfigCompatChecker()
    • Method Detail

      • exists

        public static ConfigValidation exists​(scala.collection.immutable.Seq<java.lang.String> requiredKeys,
                                              com.typesafe.config.Config toCheck)
      • 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 all requiredKeys are available in toCheck Config and its values match exactly the values in currentConfig.

        Parameters:
        requiredKeys - - a Seq of required keys
        toCheck - - the Config instance to be checked
        actualConfig - - the Config instance containing the expected values
        Returns:
        (undocumented)
      • 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 by requiredKeys

        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.

        Parameters:
        requiredKeys - (undocumented)
        config - (undocumented)
        Returns:
        (undocumented)
      • 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 passed requiredKeys Seq.
        Parameters:
        requiredKeys - (undocumented)
        clusterSettings - (undocumented)
        Returns:
        (undocumented)
      • 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 passed Config not including any sensitive keys, as defined in 'akka.cluster.configuration-compatibility-check.sensitive-config-paths'.
        Parameters:
        config - (undocumented)
        clusterSettings - (undocumented)
        Returns:
        (undocumented)
      • requiredKeys

        public abstract scala.collection.immutable.Seq<java.lang.String> requiredKeys()
      • 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: {@link JoinConfigCompatChecker.exists()} and {@link JoinConfigCompatChecker.fullMatch()}

        Parameters:
        toCheck - - the Config instance to be checked
        actualConfig - - the Config instance containing the actual values
        Returns:
        a ConfigValidation. Can be Valid or Invalid, the later must contain a descriptive list of error messages.