Changelog
All notable changes to this project will be documented in this file.
Download at Maven Search
Added
Changed
- Make the shade property createDependencyReducedPom configurable using the Maven property
shade.createDependencyReducedPom
.
Fixed
Removed
0.9.16 (2024-06-21)
Download at Maven Search
Fixed
- Removed warnings in PMD output as of removed rules
0.9.15 (2024-06-21)
Download at Maven Search
Changed
de.larssh.utils.text.ParseException
renamed to de.larssh.utils.text.StringParseException
to avoid confusion with java.text.ParseException
de.larssh.utils.Finals.lazy
now returns a CachingSupplier
to allow others to determine if the lazy-loading value has been calculated already
de.larssh.utils.net.SecureConnections.getSocketFactory
updated from using TLS
to TLSv1.2
Fixed
de.larssh.utils.text.Strings.toLowerCaseAscii
and de.larssh.utils.text.Strings.toUpperCaseAscii
for single character strings
Removed
de.larssh.utils.maven.AetherUtils
and de.larssh.utils.maven.DependencyScope
- Triggering builds on all pushes to avoid duplicate triggering. Instead, builds are triggered for pull requests and pushes to the master branch only.
0.9.14 (2022-12-30)
Download at Maven Search
Fixed
- Possible
NullPointerException
in de.larssh.utils.text.Lines.consecutive(...)
Removed
- POM Property
jar.manifest.addClasspath
0.9.13 (2021-12-27)
Download at Maven Search
Added
- Methods to handle lower and upper case handling on an ASCII basis:
de.larssh.utils.text.Characters.*Ascii*
and de.larssh.utils.text.Strings.*Ascii
- Structures to handle CSV data (
de.larssh.utils.text.Csv
) and corresponding methods in de.larssh.utils.text.StringConverters
- Support being unmodifiable on demand for
de.larssh.utils.collection.Proxied*
Therefore protected getters were renamed to getProxied*
and now differentiate between read-only access and the need to check for write access.
In addition a method isModifiable
is forced to be implemented.
- Method overloads to retrieve the first non-null or present value:
de.larssh.utils.Nullables.getFirst
and de.larssh.utils.Optionals.getFirst
- Method
de.larssh.utils.io.ProcessBuilders.toCommandLine
to create command line string out of ProcessBuilder
instances
Changed
- Renamed constants of
de.larssh.utils.text.SplitLimit
to be more precise
- Renamed methods
de.larssh.utils.text.Strings.toNeutral*
to de.larssh.utils.text.Strings.to*Neutral
to match the naming of the new ASCII methods.
- Most methods inside
de.larssh.utils.text.Strings
allow to pass any kind of CharSequence
, not just String
.
- Allow underscores in the name of test methods.
Fixed
- Support point-relative paths in
de.larssh.utils.io.Resources
Removed
de.larssh.utils.test.Assertions#assertEqualsAndHashCode
as most equals
and hashCode
implementations don’t need to be tested in a that specific way.
0.9.12 (2021-04-03)
Download at Maven Search
Added
- Creation of a GitHub Action for release deployment to OSSRH (Maven Central via Sonartype Nexus).
You can enable this feature by setting the Maven property parent-pom.create-github-release-yml
to true
.
- Possibility to add custom Checkstyle rules on a per-project basis.
Changed
- GitHub snapshot builds are signed by default.
This might require additional action to specify the private key and its passphrase in GitHub. Checkout the Readme for more information.
- Providing snapshot builds through GitHub Packages
- Using JDK16 for builds instead of JDK14.
0.9.11 (2021-01-04)
Download at Maven Search
Added
- Creation of GitHub Action configuration instead of Travis CI file.
You can still enable the creation of .travis.yml
by setting the Maven property parent-pom.create-travis-yml
to true
.
- Creation of a GitHub native Dependabot configuration file
Use the Maven property parent-pom.create-dependabot-yml
to suppress writing this file.
- Class
de.larssh.utils.io.MultiInputStream
- Class
de.larssh.utils.io.MultiReader
Changed
- Moved class
Resources
to new package de.larssh.utils.io
- Rename file
travis-suppressions.sh
to mvn-suppressions.sh
- Update formatter and clean-up settings for Eclipse 2020-12
Fixed
- Fix formatting of multiline
else if
statements
- Fix creation of the Spotbugs Eclipse plugin configuration
0.9.10 (2020-10-18)
Download at Maven Search
Added
- Checkstyle check
XAvoidSerialVersionUID
, warning on usage of serialVersionUID
.
- Collection of XML processing attributes, features and properties inside package
de.larssh.utils.xml
Changed
- Avoid using serialVersionUID.
- Suppressing additional SpotBugs null checks when using JDK 11 and later as they might fail when using try-with-resource statements as of https://github.com/spotbugs/spotbugs/issues/259 and https://github.com/spotbugs/spotbugs/issues/756
- Missing dependency scopes inside the
utils
project
0.9.9 (2020-08-20)
Download at Maven Search
Added
- Interface
de.larssh.utils.collection.PeekableIterator
- Method
de.larssh.utils.collection.Iterators.iterator(elements supplier)
- Method
de.larssh.utils.collection.Iterators.peekableIterator(iterator)
- Method
de.larssh.utils.collection.Iterators.stream(iterator)
- Method
de.larssh.utils.collection.Iterators.stream(elements supplier)
- Method
de.larssh.utils.collection.Streams.indexed(stream)
- Method
de.larssh.utils.collection.Streams.indexedLong(stream)
- Method
de.larssh.utils.text.Patterns.quote(input)
Changed
- Method
Maps.Builder#get()
is not typed any longer to simplify generics of Maps.Builder
- Methods inside
de.larssh.utils.text.Lines
no longer require Google Guava to be part of your dependencies.
- Updated the list of JDKs to be used by Travis CI based on the list of currently supported JDKs.
Fixed
- Travis didn’t fail, even though Maven failed building
- PMD errors were not printed and therefore didn’t let the build fail.
- PMD checks are no longer processed in aggregate mode unless building reports.
0.9.8 (2020-07-03)
Download at Maven Search
Added
- Methods
de.larssh.text.Lines.consecutive(...)
, de.larssh.text.Lines.grouped(...)
and de.larssh.text.Lines.lines(...)
with credits to Olaf Neumann
- Travis CI validates its Maven output for previously silent errors and warnings.
Changed
- Improved Maven site generation.
- Maven property
parent-pom.create-travis-yml
changed to be true
by default to override existing files
- Methods of
de.larssh.utils.Resources
force case sensitivity to enforce compatibility between file systems.
- Activate spotbugs for JDK 11 and later
Removed
- Method
Strings.lines(String)
(use Lines.lines(String)
instead)
Fixed
- Checkstyle check XFinalsConstant
- Changed the dependency scope of the utility annotations to
provided
.
- Changed the dependency scope of the utilities for tests to
test
.
- Compatibility with OpenJDK 9 to 13
- Relative Path of the Parent POM inside Parent Archetype
0.9.7 (2020-02-26)
Download at Maven Search
Added
- Maven property
eclipse.compiler.nullAnalysis
allows to disable the null analysis feature of Eclipse.
- Maven property
eclipse.compiler.potentialNullReference
allows adjusting the potential null pointer access feature of Eclipse.
Changed
- Project Lombok has been configured to add nullable annotations by itself. This simplifies e.g. @EqualsAndHashCode usage.
- Do not execute the delombok plugin unless a lombok sources folder exists
- Improved generics for methods inside
de.larssh.utils.Optionals
Fixed
- Ignoring Spotbugs Annotations in the dependency plugin
0.9.6 (2020-01-27)
Download at Maven Search
Added
- Method
de.larssh.utils.Maps.builder()
- Method
de.larssh.utils.Maps.builder(Map)
- Method
de.larssh.utils.Optionals.comparator()
- Method
de.larssh.utils.Optionals.comparator(Comparator)
- Configure Eclipse to respect the value specified for
maven.compiler.parameters
Changed
- Update formatter and clean-up settings for Eclipse 2019-09
de.larssh.utils.net.InsecureConnections.getTrustManagersThatDoNotVerifyCertificates()
is now based on javax.net.ssl.X509ExtendedTrustManager
Fixed
- Work around a bug in Eclipse 2019-12 when performing clean up or save actions to handle
this
.
- Maven property
eclipse.compiler.javadoc
0.9.5 (2019-12-03)
Download at Maven Search
Added
- Check code format via command line prior compiling. This simplifies working in teams with different editors.
- IntelliJ IDEA compatibility instructions as of
README.md
- AssertJ test dependency
- Method
de.larssh.utils.Either.ifPresent(firstConsumer, secondConsumer)
- Method
de.larssh.utils.Either.ifFirstIsPresent(consumer)
- Method
de.larssh.utils.Either.ifSecondIsPresent(consumer)
- Constant
de.larssh.utils.SystemUtils.DEFAULT_FILE_NAME_SEPARATOR
- Constant
de.larssh.utils.SystemUtils.DEFAULT_FILE_NAME_SEPARATOR_CHAR
- Constant
de.larssh.utils.SystemUtils.FILE_EXTENSION_SEPARATOR
- Constant
de.larssh.utils.SystemUtils.FILE_EXTENSION_SEPARATOR_CHAR
- Class
de.larssh.collections.Enumerations
- Class
de.larssh.utils.Resources
- Additional POM properties to configure generation of files and folders
Removed
- Checkstyle nearby comment filter for the MultipleStringLiterals check. Use
@SuppressWarnings
instead.
- Renamed the Maven property
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation
.
Use eclipse.compiler.missingNonNullByDefaultAnnotation
instead.
- Renamed the Maven property
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary
.
Use eclipse.compiler.nonnull.secondary
instead.
- Renamed the Maven property
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary
.
Use eclipse.compiler.nonnullbydefault.secondary
instead.
- Renamed the Maven property
org.eclipse.jdt.core.compiler.annotation.nullable.secondary
.
Use eclipse.compiler.nullable.secondary
instead.
- Renamed the Maven property
org.eclipse.jdt.core.compiler.doc.comment.support
.
Use eclipse.compiler.javadoc
instead.
- Renamed the Maven property
project.build.mainClass
.
Use jar.manifest.mainClass
instead.
- Renamed the Maven property
project.build.packageDependenciesPhase
.
Use shade.packageDependenciesPhase
instead.
Changed
- Moved execution of the
tidy-maven-plugin
to validate
and creation of project files to the Maven lifecycle phase initialize
.
- Checkstyle no longer runs on delomboked sources.
- Avoid some ignorable warnings inside the Maven output.
Fixed
- Lifecycle mapping documentation inside
README.md
0.9.4 (2019-08-29)
Download at Maven Search
Added
- Annotation
de.larssh.utils.annotations.SuppressJacocoGenerated
to indicate that JaCoCo should ignore the annotated type, constructor or method
- Method
Maps.entry(K, V)
Changed
- Travis CI: JDK 11, Caching and speed improvements. Run
mvn generate-sources -P update-travis-yml
to update existing .travis.yml
files.
- The properties
dirty
and dirty-package
changed into profiles. Instead of -Ddirty=true
you need to use -P dirty
now.
- CPD and SpotBugs exclude files no longer require the additional property to be set manually.
- Automatically releasing after closing deployment
- Finals.constant should not be used for private constants.
Fixed
- Fix checkstyle rule XFinalsConstantPrivate for static imports
- Fix SpotBugs when using JDK 11
- Fix Eclipse Oxygen failing while trying to save charset preferences
- Fix
Stopwatch.waitFor(...)
when reaching the timeout value exactly
0.9.3 (2019-07-22)
Download at Maven Search
Added
- Properties
dirty
and dirty-package
allow to skip multiple checks at once
- Allow updating Eclipse settings manually
- SplitLimit utility to handle
Pattern.split
and String.split
in a clean way
- New method
Stopwatch.waitFor(...)
to simplify working with timeouts
- New method
SecureConnections.getHttpsUrlConnection()
- New utility class
InsecureConnections
- Disallow
super()
using checkstyle
- Tip in the README that describes how to add timestamps to the Maven output
Changed
- Fail on JavaDoc warnings
- Disallow the usage of @lombok.Builder as of compatibility problems with the default non-null concept
- Disallow parameter names that match
arg
or arg0
and similar
- Hide CPD warnings about suppressed classes
- Run PMD as build goal instead of as report
- Remove redundant semicolons when running save actions or doing clean up
Removed
- Methods
Completable.getLock()
and ClosableStopwatch.getLock()
- Dependency Management entries inside POM that were not used by one of the parent projects
Fixed
SecureConnections.getSocketFactory(...)
not returning a SSLSocketFactory
- JavaDoc processing when using JDK 9 and later
- Working around bad formatter behavior related to indentation of blocks after long lines.
- Scope of maven-resolver-util dependency
0.9.2 (2019-05-06)
Download at Maven Search
Added
- Archetype
- Changelog
- Class de.larssh.utils.Nullables
- Class de.larssh.utils.maven.DependencyScope
- Class de.larssh.utils.net.GlobalProxyConfiguration
- Class de.larssh.utils.time.ClosableStopwatch
- Class de.larssh.utils.time.LoggingStopwatch
- Class de.larssh.utils.time.Stopwatch
- Method de.larssh.utils.Collectors.toLinkedHashMap()
- Method de.larssh.utils.Collectors.toMap(mapSupplier)
- Method de.larssh.utils.Collectors.toMap(keyMapper, valueMapper [, mergeFunction] [, mapSupplier])
- Method de.larssh.utils.OptionalDoubles.ofNullable(value)
- Method de.larssh.utils.OptionalInts.ofNullable(value)
- Method de.larssh.utils.OptionalLongs.ofNullable(value)
- Method de.larssh.utils.Optionals.getFirst(isPresent, suppliers)
- Method de.larssh.utils.Optionals.getFirstValue(isPresent, values)
-
Method de.larssh.utils.Optionals.ofNonEmpty(array |
collection) |
-
Method de.larssh.utils.Optionals.ofSingle(array |
iterable |
iterator |
stream |
string) |
- Method de.larssh.utils.text.Characters.equalsIgnoreCase(first, second)
- Method de.larssh.utils.text.Strings.endsWithIgnoreCase(value, suffix)
- Method de.larssh.utils.text.Strings.find(input, pattern)
- Method de.larssh.utils.text.Strings.matches(input, pattern)
- Method de.larssh.utils.text.Strings.startsWithIgnoreCase(value, prefix)
- Method de.larssh.utils.text.Strings.startsWithIgnoreCase(value, prefix, offset)
- Annotation de.larssh.utils.annotations.PackagePrivate
Changed
- Disallow usage of java.lang.StringBuffer
- Disallow catching java.lang.NullPointerException
- Update README.md with information on skipping plugins
- Allow overwriting some predefined Eclipse settings using Maven Properties
- Update formatter settings for Eclipse 2019-03
- Enforce Maven version 3.3.9 (as JaCoCo requires it)
- Execute SpotBugs, copy-paste-detection (CPD) and dependency analysis from Maven reporting to build phase
- Validate Javadoc inside Travis CI
- Make classes Completable and Finals thread-safe
- NumericTextComparator handles numerics as signed only if the sign is preceeded by a whitespace or at a strings start
- Moved de.larssh.utils.AetherUtils to de.larssh.utils.maven.AetherUtils
- ParseException initializes cause
- Update dependencies and Maven plugins
Checkstyle
- Validate lombok sources.
- Allow empty // comments at the end of lines with code.
- Force Finals.constant for string and primitive constants.
- Force @SuppressFBWarnings to include a justification that is not-empty and not “TODO”.
- Force usage of OptionalDouble, OptionalInt and OptionalLong instead of Optionals.
- Force usage of Strings.replaceAll/replaceFirst as far as possible.
- Warnings may be suppressed using @SuppressWarnings
- Suppressions file name changed from “suppressions.xml” to “checkstyle-suppressions.xml”
- For unit tests suppressing checks ExecutableStatementCountCheck, MagicNumberCheck and MethodLengthCheck
- Refined checkstyles SeparatorWrap checks.
Fixed
- Maven plugins were not compatible with Maven versions unequal to 3.6.0
- Formatter tags
0.9.1 (2018-12-12)
Download at Maven Search
Fixed
- Handling of parent projects module version
0.9.0 (2018-12-10)
Download at Maven Search