JFig Changelog

What's new in JFig 2.4.0

Jan 10, 2015
  • New Features:
  • The JFig entry xml node has been enhanced to include several new attributes.
  • A comment attribute to add comments for an entry o An isActive attribute to inactivate an entry o An isHidden attribute to control printing of values (for not printing passwords)
  • An isPropery attribute to export a key/value as a Java Property. This is in addition to the previously existing "property" section way of exporting properties.
  • Track the filenames that affected each entry. As JFig parses each config file, add the current filename to a list on each JFig Entry object. This list is available for display from the JFig.print(true) command. The "true" parameter gives detailed printing.
  • JFig print to show new options The JFig print method now has an optional boolean flag to print a JFig entry with all its attributes in addition to the key/value pairs. These additional attributes are. comments,, isActive, and isHidden. It will also display the configuration files that were involved in setting or changing the value of a JFig entry. The format of the new method is: JFig.print(true); The previous method declaration, JFig.print(), defaults to JFig.print(false). It prints just the key and the value as before.
  • Add toHtmlString() to JFigIF interface Return the contents of the dictionary formatted in HTML
  • Changes to how JFig looks for files By default, the JFigLocator so it will look first in the file system then the classpath for configuration files. The user may control where in the file system to look. This may be explicitly defined in the JFig startup properties as jfig.location=BOTH or config.location=BOTH (see "New startup property definitions" for more on this.)
  • New startup property definitions
  • fig.location
  • jfig.filename These replace the original config.location and config.filename. The older property names will continue to work.
  • jfig.directory Specifies a directory within the file system.
  • Spring property resolver in the distribution The JFigSpringConfigurer allows the user to set spring values from values defined in JFig. This way, Spring can dynamically start up with different values depending on the JFig configuration files. More details will be provided in the online documentation.
  • Support for multiple JFig instances Users may specify an explicit JFig instance name at initialization. They may continue to reference that instance by specifying the name in the JFig.getInstance() calls. For example: Call initialize with an explicit name: JFig.initialize("myName); Access this instance by specifying the same name: JFig.getInstance("myName").getValue("aSection", "aKey", "defaultValue);
  • Separate instance per class loader This is handled internally. The user does not have to do anything for this feature.
  • User may specify the characters or the regular expression used to define the JFig substitution format. Normal substitution is defined usingthe following format: Users may now change the delimetrs([, ], {. }) with the following methods: JFigConstants.setSECTION_START_DELIMITER(delimiter); JFigConstants.setSECTION_END_DELIMITER(delimiter); JFigConstants.setKEY_START_DELIMITER(delimiter); JFigConstants.setKEY_END_DELIMITER(delimiter);
  • For example: JFigConstants.setSECTION_START_DELIMITER("#"); JFigConstants.setSECTION_END_DELIMITER("#"); For more flexibility, users may change the entire regular expression: JFigConstants.setRegexSubstitution(Pattern pattern);
  • Use current directory as default directory when looking for config files in the file system. (2.4.0) The current directory where JFig is started will be the default directory if no directory is explicitly requested using the -Djfig.directory property. By default, JFig will look for files in this directory, then in the classpath. Bug Fixes
  • getSectionAsProperties() throws NullPointerException when supplying a non-existent file name.
  • UnknownHostException on getHostName() not handled correctly; throws NullPointerException
  • getSection methods return sorted values. Fix to retain original order. Sort when printing. (2.2)
  • JFigLocator.isValidLocaion was not using the passed parameter for its comparison; was using configFileLocation
  • When an entry is updated by a substitution value, add fileNames from the substituting entry to the list of "affecting" file names (2.3.1)
  • Add getEntry(section, key) method to JFigIF so users can get an Entry object (2.3.1) Infrastructure
  • Java 1.6 upgrade
  • Maven builds
  • Refactoring o Separate JFig (static methods) and JFigImpl (JFigIF implementer) classes (2.2.0) o Separate Resolver from Parser class o Much more
  • Test cases for all new features

New in JFig 2.2.3 (Oct 31, 2013)

  • New Features:
  • The JFig entry xml node has been enhanced to include several new attributes.
  • A comment attribute to add comments for an entry
  • An isActive attribute to inactivate an entry
  • An isHidden attribute to control printing of values (for not printing passwords)
  • An isPropery attribute to export a key/value as a Java Property. This is in addition to the previously existing "property" section way of exporting properties.
  • Track the filenames that affected each entry.
  • JFig print to show new options
  • Add toHtmlString() to JFigIF interface
  • Return the contents of the dictionary formatted in HTML
  • Changes to how JFig looks for files
  • New startup property definitions
  • Spring property resolver in the distribution
  • Support for multiple JFig instances
  • Separate instance per class loader
  • User may specify the characters or the regular expression used to define the JFig substitution format.
  • Bug Fixes:
  • getSectionAsProperties() throws NullPointerException when supplying a non-existent file name.
  • UnknownHostException on getHostName() not handled correctly; throws NullPointerException
  • getSection methods return sorted values. Fix to retain original order. Sort when printing. (2.2)
  • JFigLocator.isValidLocaion was not using the passed parameter for its comparison; was using configFileLocation
  • Infrastructure:
  • Java 1.6 upgrade
  • Refactoring
  • Separate JFig (static methods) and JFigImpl (JFigIF implementer) classes (2.2.0)
  • Separate Resolver from Parser class

New in JFig 2.1.1 Snapshot (Apr 22, 2013)

  • New Features:
  • The JFig entry xml node has been enhanced to include several new attributes.
  • A comment attribute to add comments for an entry o An isActive attribute to inactivate an entry
  • An isHidden attribute to control printing of values (for not printing passwords)
  • Track the filenames that affected each entry.
  • JFig print to show new options The JFig print method now has an optional boolean flag to print a JFig entry with all its attributes in addition to the key/value pairs.
  • Changes to how JFig looks for files By default, the JFigLocator so it will look first in the file system then the classpath for configuration files.
  • New startup property definitions
  • Spring property resolver in the distribution The JFigSpringConfigurer allows the user to set spring values from values defined in JFig.
  • Support for multiple JFig instances Users may specify an explicit JFig instance name at initialization.
  • Separate instance per class loader This is handled internally. The user does not have to do anything for this feature.
  • User may specify the characters or the regular expression used to define the JFig substitution format.
  • Bug Fixes:
  • getSectionAsProperties() throws NullPointerException when supplying a non-existent file name.
  • UnknownHostException on getHostName() not handled correctly; throws NullPointerException

New in JFig 2.1.0 (Apr 22, 2013)

  • New Features:
  • The JFig entry xml node has been enhanced to include several new attributes.
  • A comment attribute to add comments for an entry
  • An isActive attribute to inactivate an entry
  • An isHidden attribute to control printing of values (for not printing passwords)
  • Track the filenames that affected each entry:
  • As JFig parses each config file, add the current filename to a list on each JFig Entry object. This list is available for display from the JFig.print(true) command. The "true" parameter gives detailed printing.
  • JFig print to show new options:
  • The JFig print method now has an optional boolean flag to print a JFig entry with all its attributes in addition to the key/value pairs. These additional attributes are. comments,, isActive, and isHidden. It will also display the configuration files that were involved in setting or changing the value of a JFig entry.
  • Changes to how JFig looks for files.
  • New startup property definitions
  • Spring property resolver in the distribution
  • Support for multiple JFig instances
  • Separate instance per class loader
  • User may specify the characters or the regular expression used to define the JFig substitution format.
  • Bug Fixes:
  • getSectionAsProperties() throws NullPointerException when supplying a non-existent file name.
  • UnknownHostException on getHostName() not handled correctly; throws NullPointerException