Skip to content

Releases: apache/maven-shared-utils

3.5.0

Choose a tag to compare

Maven Shared Utils 3.5.0 is the first release since 3.4.2 (May 2023). The baseline is unchanged: Java 8 and Maven 3.

Most of the work deprecates utilities that now have JDK or Apache Commons equivalents, and fixes bugs in process handling, StringUtils, PathTool and Xpp3Dom.

Runtime dependency changes:

  • commons-io 2.11.0 → 2.22.0
  • jansi (optional) 2.4.0 → 2.4.3
  • The provided-scope jsr305 dependency is gone. slf4j-api stays at 1.7.36.

🚨 Removed

  • Commandline and Shell no longer implement Cloneable. Their clone() methods always threw, so only code that references them is affected (#365) @elharo

⚠️ Deprecated

🐛 Bug fixes

Process handling:

  • Close process streams after exit, to work around the JDK-4311711 hang (#412) @elharo
  • CommandLineUtils: wait on every pumper in a try/finally (#399) @elharo
  • AbstractStreamHandler.setDone: call notifyAll to wake waiting threads (#405) @elharo
  • StreamPollFeeder: declare done and exception as volatile (#387) @elharo
  • Pass streamCharset to the stdout and stderr pumpers (#432) @slachiewicz
  • CmdShell: quote items that cmd.exe would otherwise interpret (#434) @slachiewicz

XML:

  • Xpp3DomBuilder.createXmlReader: stop changing system properties, which was not thread-safe (#393) @elharo
  • Xpp3Dom.removeChild(int): fix childMap corruption with duplicate names (#395) @elharo
  • Xpp3Dom.getValue(): honour the @NonNull contract (#389) @elharo
  • Xpp3DomWriter: reject a null DOM with a named NullPointerException (#426) @slachiewicz
  • PrettyPrintXMLWriter: handle a null lineIndent in the constructors (#382) @elharo

Strings, paths and files:

  • StringUtils.chompLast: fix StringIndexOutOfBoundsException when the separator is longer than the string (#401) @elharo
  • StringUtils.chopNewline(""): fix StringIndexOutOfBoundsException (#380) @elharo
  • StringUtils.leftPad and rightPad: handle an empty delimiter without ArithmeticException (#409) @elharo
  • PathTool.getRelativeFilePath: fix the Windows drive-letter regex (#384) and return an empty string instead of null for cross-drive paths (#403) @elharo
  • Os.getOsFamily: return an empty string instead of null (#425) @slachiewicz
  • Copy a symbolic link even when its target does not exist (#433) @slachiewicz

📝 Documentation

  • Port the site from APT to Markdown (#420) and migrate the site descriptor to the v2 model (#430) @slachiewicz
  • Rewrite the documentation in ASD-STE100 Simplified Technical English (#418) @elharo
  • Correct the class names that deprecation notes point at (#428) @slachiewicz
  • Stop naming individual Windows versions in the CmdShell docs (#435) @elharo
  • Fix site page issues (#417), follow Oracle Javadoc conventions (#360), and clean up Javadoc (#150, #353) @elharo
  • Correct the StringUtils.abbreviate() Javadoc (#343) @phymod0

👻 Maintenance

✅ Tests

🔧 Build and infrastructure

📦 Dependency updates

Runtime:

Build and test:

Full changelog: maven-shared-utils-3.4.2...maven-shared-utils-3.5.0

3.4.2

Choose a tag to compare

@github-actions github-actions released this 15 May 17:01
maven-shared-utils-3.4.2
2dc9eb5

🐛 Bug Fixes

👻 Maintenance

3.4.1

Choose a tag to compare

@github-actions github-actions released this 03 May 21:14
maven-shared-utils-3.4.1
3896942

Release Notes

🚀 New features and improvements

🐛 Bug Fixes

📦 Dependency updates

👻 Maintenance

3.3.4

Choose a tag to compare

@olamy olamy released this 21 Jul 10:59

What's Changed

New Contributors

Full Changelog: https://github.com/apache/maven-shared-utils/commits/maven-shared-utils-3.3.4