All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog 1.1.0, and this project adheres to Semantic Versioning.
- OpenSSF Best Practices badge added to README (project 12861).
CONTRIBUTING.mdwith build instructions, test policy, and PR workflow.SECURITY.mdwith vulnerability reporting process and response SLA.CODE_OF_CONDUCT.mdbased on the Contributor Covenant 2.0.docs/RELEASE.mddescribing the Maven Central release process (moved out ofCHANGELOG.md).- Initial
CHANGELOG.md, retroactively populated from git tags v1.0.0–v1.2.0 and GitHub release notes. - Cancellable pipeline start-gate via a
startgateGitHub Environment with configurable wait timer.
- CI
publish.yml: addedcheck-snapshot/check-taggate jobs to fix release routing. - CI
publish.yml:softprops/action-gh-releasebumped from v2 to v3. - CI
publish.yml:org.codehaus.mojo:exec-maven-pluginbumped to 3.6.3. - Release Process prompt template moved from
CHANGELOG.mdtodocs/RELEASE.md.
1.2.0 - 2026-05-11
- Statistics tracking:
getTotalBytesWritten(),getTotalBytesRead(),getMaxObservedBytes()— user I/O only, excluding internal trim operations. - Configurable trim allocation size via
setMaxAllocationSize(long)/getMaxAllocationSize(); trim may produce multiple smaller chunks whenavailableBytes > maxAllocationSize. - Trim observer signals:
addTrimStartSignal(Semaphore),removeTrimStartSignal(Semaphore),addTrimEndSignal(Semaphore),removeTrimEndSignal(Semaphore). isTrimRunning()volatile flag reflecting active trim execution.decideTrimExecutionpure function with comprehensive table-driven tests.getBufferElementCount()synchronized method (preferred over legacygetBufferSize()).- JMH throughput benchmark (
StreamBufferThroughputBenchmark) replacing the prior ad-hoc memory test. - CI: JARs are now attached to GitHub Releases on tag push.
- CI: GitHub Packages snapshot pre-release updated on every push to
main. - CI: unified
publish.ymlwith Sonatype Central Portal publishing (replaced OSSRH). - CI: CodeQL workflow with
security-and-qualityquery suite. - CI: Coveralls and Codecov coverage reporting.
- CI: PIT mutation testing in the report job (100% mutation coverage threshold).
- Claude Code review workflow (
claude-code-review.yml). - Dependabot configuration for Maven and GitHub Actions dependencies.
- Testing framework migrated from JUnit 4 (
DataProviderRunner) to JUnit 5 (JUnit Jupiter) with@Nestedand@DisplayNamegrouping. - Internal semaphore (
signalModification) now registered via the publicaddSignalmechanism. - Listener/callback pattern replaced by signal/slot via external
Semaphoreobjects. read()conditional replaced withMath.minto eliminate equivalent mutation.- All Javadoc comments updated to use HTML entities for operators and Unicode symbols.
- Distribution management migrated from OSSRH to Sonatype Central Publisher Portal.
- GH Actions bumped to latest:
checkout@v6,setup-java@v5,upload-artifact@v7,download-artifact@v8,codecov-action@v6,codeql-action@v4. - Maven plugins updated: JaCoCo 0.8.14, PIT 1.23.0, and others to latest stable.
- Race condition between
trim()write-back andclose()—releaseTrimStartSignals()moved insidetry-finally. read(byte[], int, int)over-read on closed stream — six edge-case tests added.- Coveralls authentication switched from deprecated token to
GITHUB_TOKEN. - JaCoCo re-enabled and JMH run in in-process mode (
-f 0) to fix CI flakiness. - CodeQL action bumped from v3 to v4 with explicit workflow permissions.
1.1.0 - 2015-02-03
setMaxBufferElements(int)andsetSafeWrite(boolean)runtime setters allowing reconfiguration after construction (commit87cdff1).
- Maven plugins updated to current versions (commit
1fb046f). - README and test improvements (commits
3409a44,9c467f1,d8a8b9e,7fe9577).
1.0.1 - 2014-10-31
blockDataAvailable()method (commit7a780d5).
- Repository moved to GitHub; version bumped to 1.0.1 (commit
5e3203c).
1.0.0 - 2014-09-17
- Initial public release of
net.ladenthin:streambuffer(commit64e8739). Project inception year 2014 (perpom.xml<inceptionYear>).