Releases: reactor/BlockHound
1.0.6.RELEASE
What's Changed
- Ensure junit-platform has compile dep to blockhound in pom (#189) @simonbasle
1.0.5.RELEASE
What's Changed
⚠️ Update considerations
blockhound-junit-platform'spom.xmldeclares a dependency toblockhoundwith runtime scope instead of compile- consider adding an explicit dependency to
blockhound(using same version number) if it isn't already the case
- consider adding an explicit dependency to
🚀 Features / Enhancements
- Deploy releases to SonatypeOSS (staging repo) instead of Bintray (#182) @simonbasle
📖 Documentation
- Document special name in (dis)allowBlockingCallsInside (#185) @simonbasle
🧹 Housekeeping
- Deploy releases to SonatypeOSS (staging repo) instead of Bintray (#182) @simonbasle
- Fix the pom: no module metadata, fix name and description (#181) @simonbasle
- Switch CD to GitHub Actions (#180) @simonbasle
- Change Sergei's email in generated pom.xml (#177) @simonbasle
- Build polish and upgrade, switch to Gradle 6.8.3, snapshot of 1.0.5 (#175) @simonbasle
📦 Dependency updates
- Bump junit-jupiter-engine from 5.7.0 to 5.7.1 (#168) @dependabot-preview
- Bump junit-jupiter-api from 5.7.0 to 5.7.1 (#167) @dependabot-preview
- Bump junit from 4.13.1 to 4.13.2 (#169) @dependabot-preview
- Bump assertj-core from 3.18.1 to 3.19.0 (#164) @dependabot-preview
- Bump org.unbroken-dome.test-sets from 2.2.1 to 3.0.1 (#109) @dependabot-preview
- Bump com.github.johnrengelman.shadow from 4.0.3 to 6.1.0 (#147) @dependabot-preview
- Bump byte-buddy from 1.10.19 to 1.10.22 (#176) @dependabot-preview
- Build polish and upgrade, switch to Gradle 6.8.3, snapshot of 1.0.5 (#175) @simonbasle
- Bump junit-jupiter-engine from 5.6.0 to 5.7.0 (#141) @dependabot-preview
- Bump blockhound from 1.0.3.RELEASE to 1.0.4.RELEASE (#131) @dependabot-preview
- Bump junit-jupiter-api from 5.6.0 to 5.7.0 (#142) @dependabot-preview
- Bump junit from 4.13 to 4.13.1 (#150) @dependabot-preview
- Bump byte-buddy from 1.10.12 to 1.10.19 (#162) @dependabot-preview
- Bump auto-service from 1.0-rc6 to 1.0-rc7 (#122) @dependabot-preview
- Bump assertj-core from 3.15.0 to 3.18.1 (#158) @dependabot-preview
- Bump byte-buddy-agent from 1.10.12 to 1.10.19 (#163) @dependabot-preview
1.0.4.RELEASE
What's Changed
🚀 Features / Enhancements
🐛 Bug Fixes
📖 Documentation
📦 Dependency updates
- Bump byte-buddy from 1.10.11 to 1.10.12 (#129) @dependabot-preview
- Bump byte-buddy-agent from 1.10.11 to 1.10.12 (#130) @dependabot-preview
- Bump blockhound from 1.0.0.M5 to 1.0.3.RELEASE (#105) @dependabot-preview
- Bump byte-buddy from 1.10.8 to 1.10.11 (#126) @dependabot-preview
- Bump byte-buddy-agent from 1.10.8 to 1.10.11 (#127) @dependabot-preview
1.0.3.RELEASE
What's Changed
This release adds Java 14 compatibility.
A smoke test is added to ensure that Java 13+ environment is properly configured (see #33).
🚀 Features / Enhancements
📖 Documentation
- Add maven installation instructions. (#79) @daggerok
- Improve example of custom blockingMethodCallback (#81) @lhotari
📦 Dependency updates
- Bump jmh-generator-annprocess from 1.21 to 1.23 (#90) @dependabot-preview
- Bump assertj-core from 3.12.2 to 3.15.0 (#97) @dependabot-preview
- Bump rxjava from 2.2.5 to 2.2.18 (#84) @dependabot-preview
- Bump junit-jupiter-engine from 5.4.0 to 5.6.0 (#86) @dependabot-preview
- Bump auto-service from 1.0-rc4 to 1.0-rc6 (#87) @dependabot-preview
- Bump junit from 4.12 to 4.13 (#88) @dependabot-preview
- Bump byte-buddy from 1.10.1 to 1.10.8 (#93) @dependabot-preview
1.0.2.RELEASE
What's Changed
🚀 Features / Enhancements
- Add dynamic predicate support (Kotlin, Scala, others) (#72) @bsideup
- Add new JDK13 calls, fix tests (#73) @bsideup
- Hide BlockHound's own frame from the
Error(#62) @bsideup - Throw specific
BlockingOperationErrorinstead ofError(#65) @bhchandra - Use newly introduced
BlockingOperationErrorin assertions (#67) @bsideup
🐛 Bug Fixes
🧹 Housekeeping
1.0.1.RELEASE
What's Changed
- Supported libraries section added to readme to resolve #44 (#60) @tarungulati1988
🐛 Bug Fixes
1.0.0.RELEASE
This is a first release of BlockHound 🎉
Changes since 1.0.0.RC1
📃 Docs
🚀 Features / Enhancements
- Simplify integrations after RC1 refactorings (#54) @bsideup
- hide
BlockHoundRuntimefrom public API (#53) @bsideup
⚠️ note that this is a source (not binary) breaking change (if you were usingBlockHoundRuntimeclass directly), but it was never intended to be used directly, only by instrumentation.
🐛 Bug Fixes
1.0.0.RC1
What's Changed
This this is the first release candidate and it focuses on the performance.
Previous versions were using a native agent (in C++).
But it was problematic due to the complexity of the build plus the performance overhead of the native switch.
This release includes a major rewrite that removes the native code and now only uses the bytecode instrumentation to achieve the same result.
Not only it helped us to reduce the complexity of the project (both build-wise and code-wise, making it easier for potential contributors to submit their changes), but the performance was improved significantly!
Before:
Benchmark Mode Cnt Score Error Units
BlockHoundBenchmark.baselineBlockingCallInBlockingThread avgt 9 0,520 ± 0,028 us/op
BlockHoundBenchmark.measureBlockingCallInBlockingThread avgt 9 0,853 ± 0,040 us/op
BlockHoundBenchmark.measureAllowedBlockingCall avgt 9 3,039 ± 0,145 us/op
After:
Benchmark Mode Cnt Score Error Units
BlockHoundBenchmark.measureBlockingCallInBlockingThread avgt 9 0,528 ± 0,025 us/op
BlockHoundBenchmark.measureAllowedBlockingCall avgt 9 0,538 ± 0,037 us/op
If a blocking call in non-non-blocking thread was previously having an overhead of ~0,320us/op, it is now close to 0,010us/op, which is already a great improvement!
But, there was a case where the implementation detail of BlockHound was adding even more overhead - allowed blocked calls (logging, class loading, etc etc).
And, if before it was ~2,500us/op, it went down to ~0,020us/op 🎉