AO Lang Changelog

ao-lang-1.0.1-validation-SNAPSHOT

ao-lang-1.0.0

Release Notes

  • Pulling small, general-purpose extensions to the standard Java libraries out of AOCode Public into a new AO Lang project.
  • New AoArrays.sortParallelArrays method to sort parallel arrays.
  • ProcessResult improvements:
    1. exec method now allows varargs.
    2. Now uses only one additional thread to read standard error.
    3. Delays the allocation of StringBuilder objects until needed.
    4. Provides an appropriate starting buffer size to the StringBuilder objects.
    5. Reduces the amount of synchronization.
  • BufferManager improvements:
    1. Uses soft references to avoid potential runaway memory leaks.
    2. Provides additional statistics including the number of buffers zero-filled and detected as garbage collected.
    3. Javadoc comment improvements.
  • ApplicationResourcesAccessor improvements:
    1. Added Listener hook for code interested in calls to getMessage.
    2. Used this new hook to decouple AO Lang from AOCode Public.
  • FastObjectOutput improvements:
    1. writeFastUTF compares strings with .equals to find all duplicates.
    2. Removed internal quick-scan arrays. We've learned to not underestimate the performance of HashMap.
    3. Improved Javadocs.
  • FastObjectInput improvements:
    1. Improved Javadocs.
  • Also moving some of the small, general-purpose extensions to the standard Java libraries out of AOServ Client into this new AO Lang project.
  • AoCollections improvements:
    1. New filterByValue methods to get the key set from maps for all entries matching a given value.
    2. unmodifiableCopy* methods allow wider generic bounds for more versatility.
    3. optimalUnmodifiable* methods allow wider generic bounds for more versatility.
    4. unmodifiableIterator method allows wider generic bounds for more versatility.
    5. filter method allows wider generic bounds for more versatility.
    6. filterByValue methods allow wider generic bounds for more versatility.
  • New method XmlUtils.getChildTextContent(Element, String) to get child text content with a one-liner.
  • New method FileUtils.readFileAsString(File, Charset) to provide the character set when reading a file into a string.
  • New localized exception LocalizedIllegalStateException.
  • Updated dependencies.