Skip to content

Release v3.1.0 - #143

Merged
3dgiordano merged 58 commits into
masterfrom
development
Aug 6, 2026
Merged

Release v3.1.0#143
3dgiordano merged 58 commits into
masterfrom
development

Conversation

@3dgiordano

@3dgiordano 3dgiordano commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Enhance JMeter SSL support, dependency updates, and HTTP improvements

This pull request introduces significant improvements to compatibility, testing, and documentation for the BlazeMeter HTTP Plugin. The main changes include expanding CI to cover multiple JMeter versions, adding a comprehensive HTTP regression parity test suite, updating dependencies for improved compatibility and reliability, and clarifying buffer/truncation behavior in documentation.

CI and Compatibility Improvements:

  • Updated .github/workflows/ci-build.yaml to build and test against both JMeter 5.5 (minimum supported) and 5.6.3 (latest), ensuring the plugin works across supported versions. Artifacts are now version-tagged. [1] [2]
  • Enhanced .github/workflows/ci-jmeter-compatibility.yaml to run HTTP parity regression tests and verify plugin compatibility against all supported JMeter versions.

Testing Enhancements:

  • Added docs/jmeter-regression.md, a detailed guide and suite for HTTP regression parity tests, comparing plugin behavior with Apache JMeter’s HttpClient4 on official test plans. Supports core, extended, and external test groups, and JUnit-based parity tests.
  • Updated pom.xml to define regression test groups and add required test dependencies, including byte-buddy, commons-io, and updated versions for assertj, guava, and Apache HttpClient. [1] [2] [3] [4] [5] [6]

Documentation Updates:

  • Improved README.md:
    • Added a downloads badge.
    • Clarified buffer capacity and response truncation behavior, including precedence and default values. [1] [2]
    • Documented how to run HTTP parity regression tests and interpret results.

Build and Coding Standards:

  • Added .gitattributes to enforce consistent line endings and text file handling.
  • Updated checkstyle.xml to enforce a 100-character line length limit, improving code style consistency. [1] [2]

Version Updates:

  • Bumped plugin version to 3.1.0-SNAPSHOT and updated default JMeter, Jetty, Brotli, and log4j versions for better alignment with upstream and improved runtime compatibility. [1] [2]

Security

CVE-2026-2332 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') #119 and #121
CVE-2025-48924 - Apache Commons Lang is vulnerable to Uncontrolled Recursion when processing long inputs #104
CVE-2026-24400 - AssertJ has XML External Entity (XXE) vulnerability when parsing untrusted XML via isXmlEqualTo assertion #105
CVE-2023-2976 - Guava vulnerable to insecure use of temporary directory #52
CVE-2020-8908 - Information Disclosure in Guava #52
CVE-2026-10051 - Eclipse Jetty: Cross-Request Leakage for trailers on HTTP/1.1 keep-alive connections #121
CVE-2026-6790 - Eclipse Jetty: HTTP Authority/Host mismatch #121
CVE-2026-8384 - Use of Non-Canonical URL Paths for Authorization Decisions #121

These changes collectively improve plugin quality, maintainability, and user guidance, while ensuring robust compatibility with current and future JMeter releases.

3dgiordano and others added 30 commits July 1, 2026 14:21
…support. (#112)

* Relative path support for SSL KeyStore/TrustStore

* Improve SSL Keystore and Truststore support

* Protection against failure when configuring TrustStore or KeyStore

* Alias ​​in the same JMeter thread
…115)

* Gracefully handle JMeter keystore load failures

* Reinitialize SSLManager and client for mTLS client cert test
* Catch HPACK errors and Set Dynamic Response Header Size
Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.18.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.18.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump org.assertj:assertj-core from 3.12.2 to 3.27.7

Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.12.2 to 3.27.7.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](assertj/assertj@assertj-core-3.12.2...assertj-build-3.27.7)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.7
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: pin byte-buddy to 1.14.18 to resolve conflict between mockito-core 2.28.2 and assertj-core 3.27.7

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David <dgiordano@perforce.com>
Bumps [guava](https://github.com/google/guava) from 29.0-jre to 32.0.0-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David <3dgiordano@gmail.com>
* Customize header validation for HPACK.

* Remove reflection and add shims to gain access

* Test CustomHpackDecoder
* Delegate cached-resource sample result to JMeter HTTPHC4Impl

* Fix flaky test
* Support file:// sampler URLs

* Support file://  on embedded resources
…eter HTTP (#139)

* Add headless CLI tool to migrate stock JMeter HTTP samplers to BlazeMeter HTTP

* Cross compatibility 5.5 and 5.6.3
)

* Default maxBufferSize to unlimited

* Limit with warning and truncation like JMeter
* Improved negotiation and embedded hanging
* Checkstyle update and fixes

* Fix User Agent logic

* Migration CLI

* Fix initialization

* Recover clearContentDecoders and comments

* Cross compatibility 5.5 and 5.6.3

* Default minimum to JMeter to 5.5

* Compatibility with JMeter 5,5

* Matrix JMeter 5.5 and 5.6.3 for compatibility tests

* Fix, cross platform path format

* Renaming

* Fix flaky tests in parity tests

* RFC 9110 Redirection and Legacy JMeter Redirect
* Add Timers support toAsync Controller

* Inherit from TransactionControler to reuse logic from JMeter
@3dgiordano 3dgiordano changed the title Draft - Don't Merge to Main: Enhance JMeter SSL support, dependency updates, and HTTP improvements Draft - Don't Merge to Main: Release v3.1.0 Aug 5, 2026
@3dgiordano 3dgiordano changed the title Draft - Don't Merge to Main: Release v3.1.0 Release v3.1.0 Aug 5, 2026
@3dgiordano
3dgiordano marked this pull request as ready for review August 5, 2026 17:15
@3dgiordano
3dgiordano merged commit 9dbda59 into master Aug 6, 2026
3 checks passed
@3dgiordano
3dgiordano deleted the development branch August 6, 2026 07:31
@3dgiordano
3dgiordano restored the development branch August 6, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant