Package org.zeromq

Class ZConfig


  • public class ZConfig
    extends java.lang.Object

    Lets applications load, work with, and save configuration files. This is a minimal implementation of the ZeroMQ Property Language, which is a simple structured text format for configuration files.

    Here is an example ZPL stream and corresponding config structure:

     
            context
                iothreads = 1
                verbose = 1      #   Ask for a trace
            main
                type = zqueue    #  ZMQ_DEVICE type
                frontend
                    option
                        hwm = 1000
                        swap = 25000000     #  25MB
                    bind = 'inproc://addr1'
                    bind = 'ipc://addr2'
                backend
                    bind = inproc://addr3
       
    
       
        root                    Down = child
        |                     Across = next
        v
        context-->main
        |         |
        |         v
        |       type=queue-->frontend-->backend
        |                      |          |
        |                      |          v
        |                      |        bind=inproc://addr3
        |                      v
        |                    option-->bind=inproc://addr1-->bind=ipc://addr2
        |                      |
        |                      v
        |                    hwm=1000-->swap=25000000
        v
        iothreads=1-->verbose=false
     
     

    It can put and get values and save and load them to disk:

     
     ZConfig conf = new ZConfig("root", null);
     conf.put("/curve/public-key","abcdef");
     String val = conf.get("/curve/public-key","fallback-defaultkey");
     conf.save("test.cert");
     ZConfig loaded = ZConfig.load("test.cert");
     
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map<java.lang.String,​ZConfig> children  
      private java.util.List<java.lang.String> comments  
      private static java.lang.String LEFT  
      private java.lang.String name  
      private static java.util.regex.Pattern PTRN_CONTAINER  
      private static java.util.regex.Pattern PTRN_KEYVALUE  
      private java.lang.String value  
    • Constructor Summary

      Constructors 
      Constructor Description
      ZConfig​(java.lang.String name, ZConfig parent)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addComment​(java.lang.String comment)
      add comment
      private static ZConfig child​(ZConfig parent, java.util.regex.Matcher matcher, int currentLevel, java.lang.String currentLine, java.util.concurrent.atomic.AtomicInteger lineNumber)  
      private void fillValues​(java.lang.String prefix, java.util.Map<java.lang.String,​java.lang.String> values)  
      ZConfig getChild​(java.lang.String name)  
      java.lang.String getName()  
      java.lang.String getValue​(java.lang.String path)  
      java.lang.String getValue​(java.lang.String path, java.lang.String defaultValue)  
      java.util.Map<java.lang.String,​java.lang.String> getValues()  
      static ZConfig load​(java.lang.String filename)  
      private static ZConfig load​(ZConfig parent, java.util.List<java.lang.String> content, int currentLevel, java.util.concurrent.atomic.AtomicInteger lineNumber)  
      boolean pathExists​(java.lang.String path)
      check if a value-path exists
      ZConfig putValue​(java.lang.String path, java.lang.String value)  
      void putValues​(ZConfig src)  
      void save​(java.io.Writer writer)  
      java.io.File save​(java.lang.String filename)
      Saves the configuration to a file.
      private void visit​(ZConfig startNode, ZConfig.IVisitor handler, int level)  
      • Methods inherited from class java.lang.Object

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

      • PTRN_CONTAINER

        private static final java.util.regex.Pattern PTRN_CONTAINER
      • PTRN_KEYVALUE

        private static final java.util.regex.Pattern PTRN_KEYVALUE
      • name

        private final java.lang.String name
      • children

        private final java.util.Map<java.lang.String,​ZConfig> children
      • comments

        private final java.util.List<java.lang.String> comments
      • value

        private java.lang.String value
    • Constructor Detail

      • ZConfig

        public ZConfig​(java.lang.String name,
                       ZConfig parent)
    • Method Detail

      • getChild

        public ZConfig getChild​(java.lang.String name)
      • getValues

        public java.util.Map<java.lang.String,​java.lang.String> getValues()
      • fillValues

        private void fillValues​(java.lang.String prefix,
                                java.util.Map<java.lang.String,​java.lang.String> values)
      • getName

        public java.lang.String getName()
      • getValue

        public java.lang.String getValue​(java.lang.String path)
      • getValue

        public java.lang.String getValue​(java.lang.String path,
                                         java.lang.String defaultValue)
      • pathExists

        public boolean pathExists​(java.lang.String path)
        check if a value-path exists
        Parameters:
        path -
        Returns:
        true if value-path exists
      • addComment

        public void addComment​(java.lang.String comment)
        add comment
        Parameters:
        comment -
      • putValue

        public ZConfig putValue​(java.lang.String path,
                                java.lang.String value)
        Parameters:
        path -
        value - set value of config item
      • putValues

        public void putValues​(ZConfig src)
      • visit

        private void visit​(ZConfig startNode,
                           ZConfig.IVisitor handler,
                           int level)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • save

        public java.io.File save​(java.lang.String filename)
                          throws java.io.IOException
        Saves the configuration to a file.

        This method will overwrite contents of existing file

        Parameters:
        filename - the path of the file to save the configuration into, or "-" to dump it to standard output
        Returns:
        the saved file or null if dumped to the standard output
        Throws:
        java.io.IOException - if unable to save the file.
      • save

        public void save​(java.io.Writer writer)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        public static ZConfig load​(java.lang.String filename)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        private static ZConfig load​(ZConfig parent,
                                    java.util.List<java.lang.String> content,
                                    int currentLevel,
                                    java.util.concurrent.atomic.AtomicInteger lineNumber)
      • child

        private static ZConfig child​(ZConfig parent,
                                     java.util.regex.Matcher matcher,
                                     int currentLevel,
                                     java.lang.String currentLine,
                                     java.util.concurrent.atomic.AtomicInteger lineNumber)