New |
New SemanticVersion and SemanticVersionParser classes.
|
|
New |
New PackageManifest class.
|
|
New |
New JarDuplicates#get(File) method and collection based constructor.
|
|
New |
New StringUtil #ifBlank and #ifNotBlank methods.
|
|
New |
New FluentPropertyDescriptor methods: #isReadable, #isWritable,
#readValue, and #writeValue.
|
|
New |
FluentPropertyDescriptor now has added support for builder-style
accessor methods.
|
|
New |
New BeanUtil methods: #getPropertyDescriptors(Class), #getWriteMethod,
#getReadMethod, #isWritable, #isReadable (the last two replaces the
now deprecated #isGettable and #isSettable).
|
|
New |
New SystemCommand methods: #getErrorListeners and #getOutputListeners.
|
|
New |
New FileUtil#isFile methods providing a null-safe variant to
File#isFile or Files#isRegularFile.
|
|
New |
New FileUtil#isFile methods providing a null-safe variant to
File#isDirectory or Files#isDirectory.
|
|
New |
New FileUtil#toPath methods providing a null-safe variant to
File#toPath.
|
|
New |
New FileUtil#toPaths methods.
|
|
New |
New JarDuplicates#getAllButGreatest method.
|
|
New |
New JarFile#toJarFiles methods.
|
|
New |
New #getMapChangeListeners and #clearMapChangeListeners methods
on ObservableMap and MapChangeSupport.
|
|
New |
New TextMatcher #trim and #matchEmpty methods.
|
|
New |
New Regex #trim and #matchEmpty methods.
|
|
New |
New Credentials constructors accepting username, password,
and password key.
|
|
New |
New DateUtil date conversion methods using UTC.
|
|
New |
New YearMonthDay LocalDate constructor plus new #toLocalDate and
#toLocalDateTime methods.
|
|
Updated |
Now require Java 11+.
|
|
Updated |
Taglets rewritten to use the new jdk.javadoc.doclet.* API.
|
|
Updated |
Event name now included in generated string from Event#toString().
|
|
Updated |
Introduced Lombok.
|
|
Updated |
Huge jump in unit test code coverage.
|
|
Updated |
CollectionUtil#toArray now returns an empty array instead of null
when a null collection is supplied.
|
|
Updated |
ConfigurationLoader#setVariablesFile now assumes the variables
file is of the ".variables" format when its extension is neither
".variables" nor ".properties".
|
|
Updated |
Converter#toString(Object, String) will now return the default value
when the object is null.
|
|
Updated |
EncryptionUtil#main(String[]) no longer issue a System#exit.
|
|
Updated |
EventManager#removeListener not remove entries by identity to be
consistent with add methods.
|
|
Updated |
EqualUtil now considers supplying an empty vargars as always non equal.
|
|
Updated |
FileUtil#head now returns lines in order they are read.
|
|
Updated |
FileUtil#deleteEmptyDirs now deletes directories with empty
directories, recursively.
|
|
Updated |
FileUtil#deleteEmptyDirs now throws IOException.
|
|
Updated |
FileUtil#deleteEmptyDirs methods were overloaded to support Path.
|
|
Updated |
FileUtil#dirEmpty method was overloaded to support Path.
|
|
Updated |
FileUtil#moveFile was overloaded to support Path and now creates
missing directories in destination path. I also waits
half a second between retries (was 1 second).
|
|
Updated |
FileUtil#moveFileToDir was overloaded to support Path.
|
|
Updated |
FileUtil#dirHasFile was overloaded to support Path.
|
|
Updated |
Dependency "java.xml.bind" replaced by "jakarta.xml.bind".
|
|
Updated |
ByteArrayOutputStream#toString method was overloaded to support Charset.
|
|
Updated |
IInputStreamFilter is now deprecated in favor of a string Predicate.
|
|
Updated |
JarDuplicates #hasVersionConflict and #getLatestVersion methods have
been deprecated in favor of #areEquivalent and #getGreatest
respectively.
|
|
Updated |
JarFile #getPath has been deprecated in favor of #toFile.
|
|
Updated |
JarDuplicateFinder#findJarDuplicates method was overloaded to also
support collection of files.
|
|
Updated |
JarCopier now distinguish between source action and target action
when resolving jar conflicts. Deprecated integer-based on-conflict
strategies in favor of OnJarConflict.
|
|
Updated |
PropertyMatcher now support null field and value matchers.
|
|
Updated |
PropertyMatchers#addAll(varargs) now returns a boolean with a true
value if the list has changed. Null values are now ignored.
|
|
Updated |
Regex#setFlags now returns itself.
|
|
Updated |
YearMonthDay methods affected by time-zone now always use UTC.
|
|
Updated |
YearMonthDayInterval now supports null values to represent infinity.
|
|
Updated |
XML now implements #equals and #hashCode.
|
|
Updated |
XML#populate and XML#validate methods no longer return
a list of errors. Relies on ErrorHandler instead.
|
|
Updated |
XML#join has been deprecated.
|
|
Updated |
Added extra safety checks in XMLUtil to prevent XXE attacks.
|
|
New |
TextMatcher now considers null values as non-matching by defualt.
|
|
Fixed |
Properties#loadFromXML is now null-safe.
|
|
Fixed |
Fixed CollectionUtil#testRemoveNulls having opposite effect.
|
|
Fixed |
Fixed ConfigurationLoader not resolving fragment ".variables" file
properly when including or parsing fragments.
|
|
Fixed |
Fixed CircularRange#is(...) always throwing IllegalArgumentException.
|
|
Fixed |
Fixed FileUtil#tail now always reading lines properly.
|
|
Fixed |
Fixed FileUtil#visitEmpty dir not always returning only empty dirs.
|
|
Fixed |
Fixed WebFile#compareTo throwing a ClassCastException when
comparing to another WebFile instance.
|
|
Fixed |
Fixed some InputStreamConsumer#consume methods not registering
listeners.
|
|
Fixed |
Fixed IOUtil#consumeUntil(Reader, IntPredicate) behaving like
"consumeWhile".
|
|
Fixed |
Fixed DateUtil#toDate[...](Instant) not converting non UTC dates
properly.
|
|
Removed |
Removed a number of classes and methods deprecated in previous major
release:
*.lang.config.IXMLConfigurable, *.lang.encrypt.EncryptionXMLUtil,
*.lang.StringUtil, *.lang.map.Properties#set[...],
*.lang.map.PropertyMatcher#[...], ProxySettings get|setProxy[...],
DurationUtil, DataUnit#convert, DataUnit@to[...]., DataUnitFormatter
constructors.
|
|
Removed |
Removed #finalize method from CachedInputStream and CachedOutputStream
(finalize is deprecated in the Java API since Java 9).
|
|