Class XmlConfigFile


  • public class XmlConfigFile
    extends Object
    Wrapper around an XML DOM object to provide convenient accessors to it. Intended for XML config files.
    • Constructor Detail

      • XmlConfigFile

        public XmlConfigFile​(SolrResourceLoader loader,
                             Function<String,​InputStream> fileSupplier,
                             String name,
                             InputSource is,
                             String prefix,
                             Properties substituteProps)
                      throws IOException
        Builds a config.

        Note that the 'name' parameter is used to obtain a valid input stream if no valid one is provided through 'is'. If no valid stream is provided, a valid SolrResourceLoader instance should be provided through 'loader' so the resource can be opened (@see SolrResourceLoader#openResource); if no SolrResourceLoader instance is provided, a default one will be created.

        Consider passing a non-null 'name' parameter in all use-cases since it is used for logging & exception reporting.

        Parameters:
        loader - the resource loader used to obtain an input stream if 'is' is null
        name - the resource name used if the input stream 'is' is null
        is - the resource as a SAX InputSource
        prefix - an optional prefix that will be prepended to all non-absolute xpath expressions
        substituteProps - optional property substitution
        Throws:
        IOException
    • Method Detail

      • assertWarnOrFail

        public static void assertWarnOrFail​(String reason,
                                            boolean assertCondition,
                                            boolean failCondition)
      • getSubstituteProperties

        protected Properties getSubstituteProperties()
        Returns non-null props to substitute. Param is the base/default set, also non-null.
      • getResourceName

        public String getResourceName()
        Since:
        solr 1.3
      • getName

        public String getName()
      • getDocument

        public Document getDocument()
      • getXPath

        public XPath getXPath()
      • getNode

        public Node getNode​(String path,
                            boolean errifMissing)
      • getNodeList

        public NodeList getNodeList​(String path,
                                    boolean errIfMissing)
      • getUnknownAttributes

        public Set<String> getUnknownAttributes​(Element element,
                                                String... knownAttributes)
        Returns the set of attributes on the given element that are not among the given knownAttributes, or null if all attributes are known.
      • complainAboutUnknownAttributes

        public void complainAboutUnknownAttributes​(String elementXpath,
                                                   String... knownAttributes)
        Logs an error and throws an exception if any of the element(s) at the given elementXpath contains an attribute name that is not among knownAttributes.
      • getVal

        public String getVal​(String path,
                             boolean errIfMissing)
      • getInt

        public int getInt​(String path)
      • getInt

        public int getInt​(String path,
                          int def)
      • getBool

        public boolean getBool​(String path)
      • getBool

        public boolean getBool​(String path,
                               boolean def)
      • getFloat

        public float getFloat​(String path)
      • getFloat

        public float getFloat​(String path,
                              float def)
      • getDouble

        public double getDouble​(String path)
      • getDouble

        public double getDouble​(String path,
                                double def)
      • getZnodeVersion

        public int getZnodeVersion()
        If this config is loaded from zk the version is relevant otherwise -1 is returned