Class AbstractConfigProducer<CHILD extends AbstractConfigProducer<?>>

    • Field Detail

      • log

        public static final java.util.logging.Logger log
    • Constructor Detail

      • AbstractConfigProducer

        public AbstractConfigProducer​(AbstractConfigProducer parent,
                                      java.lang.String subId)
        Creates a new AbstractConfigProducer with the given parent and subId. This constructor will add the resulting producer to the children of parent.
        Parameters:
        parent - The parent of this ConfigProducer
        subId - The fragment of the config id for the producer
      • AbstractConfigProducer

        public AbstractConfigProducer​(java.lang.String subId)
        Create an config producer with a configId only. Used e.g. to create root nodes, and producers that are given children after construction using addChild(AbstractConfigProducer).
        Parameters:
        subId - The sub configId. Note that this can be prefixed when calling addChild with this producer as arg.
    • Method Detail

      • stateIsHosted

        protected static boolean stateIsHosted​(DeployState deployState)
      • getSubId

        public final java.lang.String getSubId()
      • addChild

        protected void addChild​(CHILD child)
        Adds a child to this config producer.
        Parameters:
        child - The child config producer to add.
      • removeChild

        public void removeChild​(CHILD child)
      • setUserConfigs

        public void setUserConfigs​(UserConfigRepo repo)
        Sets the user configs for this producer.
        Parameters:
        repo - User configs repo.
      • getConfigId

        public final java.lang.String getConfigId()
        ConfigProducers that must have a special config id should use setConfigId() instead of overloading this method. This is because config IDs must be registered through setConfigId().
        Specified by:
        getConfigId in interface ConfigProducer
      • addConfigId

        protected void addConfigId​(java.lang.String id)
        Sets the config id for this producer. Will also add this service to the root node, so the new config id will be picked up. Note that this producer will be known with both the old and the new config id in the root node after using this method.
      • getChildren

        public java.util.Map<java.lang.String,​CHILD> getChildren()
        Returns this ConfigProducer's children (only 1st level)
        Specified by:
        getChildren in interface ConfigProducer
      • getChildrenByTypeRecursive

        @Beta
        public <J extends AbstractConfigProducer<?>> java.util.List<J> getChildrenByTypeRecursive​(java.lang.Class<J> type)
      • getDescendantServices

        public java.util.List<Service> getDescendantServices()
        Returns a list of all the children of this who are instances of Service
        Specified by:
        getDescendantServices in interface ConfigProducer
      • addDescendantService

        protected void addDescendantService​(Service s)
      • cascadeConfig

        public final boolean cascadeConfig​(com.yahoo.config.ConfigInstance.Builder builder)
        Description copied from interface: ConfigProducer
        Build config from this and all parent ConfigProducers, such that the root node's config will be added first, and this ConfigProducer's config last in the returned builder.
        Specified by:
        cascadeConfig in interface ConfigProducer
        Parameters:
        builder - The builder implemented by the concrete ConfigInstance class
        Returns:
        true if a model config producer was found, so config was applied
      • addUserConfig

        public final boolean addUserConfig​(com.yahoo.config.ConfigInstance.Builder builder)
        Description copied from interface: ConfigProducer
        Adds user config override from this ConfigProducer to the existing builder
        Specified by:
        addUserConfig in interface ConfigProducer
        Parameters:
        builder - The ConfigBuilder to add user config overrides.
        Returns:
        true if overrides were added, false if not.
      • hostSystem

        public HostSystem hostSystem()
        Returns the one and only HostSystem of the root node. Must be overridden by root node.
        Specified by:
        hostSystem in interface ConfigProducer
      • dump

        public void dump​(java.io.PrintStream out)
        Description copied from interface: ConfigProducer
        Dump the three of config producers to the specified stream.
        Specified by:
        dump in interface ConfigProducer
        Parameters:
        out - The stream to print to, e.g. System.out
      • getConfigClassLoader

        protected java.lang.ClassLoader getConfigClassLoader​(java.lang.String producerName)
      • mergeUserConfigs

        public void mergeUserConfigs​(UserConfigRepo newRepo)
      • validate

        public void validate()
                      throws java.lang.Exception
        Description copied from interface: ConfigProducer
        check constraints depending on the state of the vespamodel graph. When overriding, you must invoke super.
        Specified by:
        validate in interface ConfigProducer
        Throws:
        java.lang.Exception
      • getMonitoringService

        protected Monitoring getMonitoringService()
        Returns a monitoring service if configured, null otherwise