- Minimum Java version changed from 1.7 to 1.8.
- New wrappers to avoid closing streams and writers.
- New method Writable.trim() that trims the contents of the writable.
Added new variants of
StringUtility.indexOf(…)that accept a
BitSetof the characters to find.
- Fixed bug in CalendarUtils.parseDate(…) that failed to set the month before verifying date is valid within the month.
- Moved the following classes from the new AOCode Public project:
- Added missing
Stringreplacement methods in
- New methods in
XmlUtilsfor element ID validation and generation.
- Breaking changes (source-compatible, rebuild required):
- CalendarUtils returns
- New class Monies for processing multiple monetary values in different currencies at once.
New class CurrencyUtil
for help working with
new GregorianCalendar()to work correctly independent of locale settings.
TimeZonevariants of date/time conversion methods.
AoCollections.emptyIterator()in favor of
Collections.emptyIterator()available since Java 1.7.
ErrorPrinternow includes all suppressed exceptions from
New method SafeMath.castShort(long)
to safely cast from
shortwith bounds checks.
- Using managed dependencies:
- This project uses managed dependencies.
- This project's managed dependencies may also be imported by other projects.
- Resolved Javadoc warnings.
- Minimum Java version changed from 1.6 to 1.7.
- Deprecated FileUtils.getFile(URL url, String urlEncoding, boolean deleteOnExit) in favor of new TempFileContext that does not suffer from a memory leak in long-running applications.
- New class CallableE for callables with parameterized exceptions.
- New methods in ThreadLocale to support CallableE or ThreadLocale.Supplier.
- New localizable exceptions:
- MinimalList now represents
an empty list as using Collections.emptyList()
- MinimalMap now represents
an empty map as using Collections.emptyMap()
- New methods in AoCollections to assist in efficiently converting Iterable to different types of Collection.
This does not introduce any runtime dependency on
commons-collections. The dependencies are both
<provided />because they are only used for javadoc
This is not an exhaustive search for redundant behavior. We will identify and deprecate over time as we go.
- New methods in SafeMath to handle multiple values via varargs.
- New class Classes to help when dealing with Class.
- New classes PolymorphicRegistry and PolymorphicMultimap supporting efficient registration of objects and looking up instances by their class, or any parent class and interface they implement. Optimized for high concurrency lookups in O(1) time.
- Pulling small, general-purpose extensions to the standard Java libraries out of AOCode Public into a new AO Lang project.
AoArrays.sortParallelArraysmethod to sort parallel arrays.
execmethod now allows varargs.
- Now uses only one additional thread to read standard error.
- Delays the allocation of
StringBuilderobjects until needed.
- Provides an appropriate starting buffer size to the
- Reduces the amount of
- Uses soft references to avoid potential runaway memory leaks.
- Provides additional statistics including the number of buffers zero-filled and detected as garbage collected.
- Javadoc comment improvements.
writeFastUTFcompares strings with
.equalsto find all duplicates.
- Removed internal quick-scan arrays. We've learned to not underestimate the performance of
- Improved Javadocs.
- 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.
filterByValuemethods to get the key set from maps for all entries matching a given value.
unmodifiableCopy*methods allow wider generic bounds for more versatility.
optimalUnmodifiable*methods allow wider generic bounds for more versatility.
unmodifiableIteratormethod allows wider generic bounds for more versatility.
filtermethod allows wider generic bounds for more versatility.
filterByValuemethods 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
- Updated dependencies.