Commit Graph

47 Commits

Author SHA1 Message Date
Vladimir Sitnikov 14c87df76f chore: bump com.github.vlsi. Gradle plugins to 3.0.1
Dependency Submission / Submit dependencies (push) Waiting to run Details
Validate Gradle Wrapper / Validation (push) Waiting to run Details
CI / Matrix Preparation (push) Waiting to run Details
CI / ${{ matrix.name }} (push) Blocked by required conditions Details
CI / Error Prone (JDK 21) (push) Waiting to run Details
Release Drafter / Update Release Draft (push) Waiting to run Details
2025-11-20 14:59:14 +03:00
Vladimir Sitnikov fc1d6682ea chore: use Java 21 for building the sources 2025-10-31 10:56:52 +03:00
Vladimir Sitnikov 832c3b2edc chore: bump org.jsoup to 1.21.2
Dependency Submission / Submit dependencies (push) Waiting to run Details
Validate Gradle Wrapper / Validation (push) Waiting to run Details
CI / Matrix Preparation (push) Waiting to run Details
CI / ${{ matrix.name }} (push) Blocked by required conditions Details
CI / Error Prone (JDK 17) (push) Waiting to run Details
Release Drafter / Update Release Draft (push) Waiting to run Details
2025-10-30 15:57:19 +03:00
Vladimir Sitnikov 9b2e03ab0c chore: bump org.jetbrains.kotlin to 2.2.21 2025-10-30 13:42:10 +03:00
Vladimir Sitnikov 57767aef1d chore: bump org.jetbrains.dokka-javadoc to 2.1.0 2025-10-30 13:39:16 +03:00
Vladimir Sitnikov 01d5985e03 test: replace the usage of org.hamcrest with junit's assertions 2025-10-30 13:25:59 +03:00
Vladimir Sitnikov 759dd46905 chore: bump com.github.vlsi plugins to 2.0.0
Dependency Submission / Submit dependencies (push) Waiting to run Details
Validate Gradle Wrapper / Validation (push) Waiting to run Details
CI / Matrix Preparation (push) Waiting to run Details
CI / ${{ matrix.name }} (push) Blocked by required conditions Details
CI / Error Prone (JDK 17) (push) Waiting to run Details
Release Drafter / Update Release Draft (push) Waiting to run Details
2025-10-26 21:48:03 +03:00
Vladimir Sitnikov b68f8e1462 fix: bump Kotlin compiler to 2.2.20, use Kotlin 2.0.0 API
Dependency Submission / Submit dependencies (push) Has been cancelled Details
Validate Gradle Wrapper / Validation (push) Has been cancelled Details
CI / Matrix Preparation (push) Has been cancelled Details
CI / Error Prone (JDK 17) (push) Has been cancelled Details
Release Drafter / Update Release Draft (push) Has been cancelled Details
CI / ${{ matrix.name }} (push) Has been cancelled Details
We target Kotlin 1.9 (released July 2023), so the projects using Kotlin 1.9+
should be able to use JMeter.
2025-10-16 23:40:20 +03:00
Vladimir Sitnikov 67782623f6 chore: skip jar task as well when writing dependency verification 2025-10-11 11:43:45 +03:00
Vladimir Sitnikov a972b8ebd9 chore: skip building the classes when writing dependnecy verification
Currently, renovate executes dependencies task which builds all JMeter jars,
however, we do not need it.
2025-10-10 23:58:19 +03:00
Vladimir Sitnikov b5c96a8a3a fix(deps): update dependency org.junit:junit-bom to v5.14.0
Validate Gradle Wrapper / Validation (push) Waiting to run Details
CI / Matrix Preparation (push) Waiting to run Details
CI / ${{ matrix.name }} (push) Blocked by required conditions Details
CI / Error Prone (JDK 17) (push) Waiting to run Details
Release Drafter / Update Release Draft (push) Waiting to run Details
2025-10-10 10:01:19 +03:00
Mend Renovate 9a7173c3f2 fix(deps): update dependency me.champeau.jmh:me.champeau.jmh.gradle.plugin to v0.7.3 2025-10-08 15:43:23 +03:00
Vladimir Sitnikov 9e8470dbb8 chore: bump Dokka to v2, and reduce Gradle daemon memory consumption
Previously, Dokka (kotlin doc + javadoc) was running within Gradle Daemon process,
so it required every Gradle Daemon to allocate lots of heap.

The change allows reducing heap consumption
2025-10-08 13:43:37 +03:00
Milamber 83e211fed7
Move to Java 17 (migrate source code from Java 8) (#6462)
Validate Gradle Wrapper / Validation (push) Has been cancelled Details
CI / Matrix Preparation (push) Has been cancelled Details
CI / Error Prone (JDK 17) (push) Has been cancelled Details
Release Drafter / Update Release Draft (push) Has been cancelled Details
CI / ${{ matrix.name }} (push) Has been cancelled Details
* Prepare to use Java 17 as minimal version

* See #6219 Pattern Matching for instanceof uses (Java 14/16)

* See #6219 - Implicit Typing with var (Java 10)

* See #6219 - Using Switch Expressions / yield Keyword (Java 14)

* See #6219 - Using Text Blocks (Java 15)

* See #6219 - some tunning / formating style

* See #6219 - tunning code

* See #6219 - Update Java argline params / remove java 8 / 9 args/comments

* See #6219 - formating code

* Remove not standard options for Java 17

* See #6219 - refactor CompOper to an enum

* See #6219 - fix unnecessary yield usage in the switch expression

* See #6219 - Optimize the code, fix formatting issue
2025-07-07 09:43:25 +01:00
Vladimir Sitnikov 09c3f810dd change: use Java 17 as the build target, require Java 17+ for execution 2024-01-09 11:44:25 +03:00
Vladimir Sitnikov aa22e93526 chore: apply kapt incremental execution failure workaround for all kapt tasks 2023-12-30 13:02:14 +03:00
Vladimir Sitnikov c962ec690a refactor: migrate JUnit 3 tests to JUnit 5, remove JUnit 4 test dependency
Now we have only JUnit 5 on the test compilation classpath, and IDE
no longer suggests multiple different @Test and assertEquals implementations.
2023-12-29 17:30:03 +03:00
Vladimir Sitnikov e5355de319 chore: remove Groovy compilation from the build pipeline 2023-12-29 17:30:03 +03:00
Mend Renovate 56a02b3b17 fix(deps): update kotlin monorepo to v1.9.22 2023-12-25 06:13:06 +03:00
Mend Renovate 56902b80e1 fix(deps): update dependency org.jetbrains.dokka:org.jetbrains.dokka.gradle.plugin to v1.9.10 2023-11-24 17:53:34 +03:00
Mend Renovate e8fa76aabd chore(deps): update Gradle to v8.4
Fixes https://github.com/apache/jmeter/pull/6121
2023-11-24 15:44:43 +03:00
Mend Renovate ee9b70a483 fix(deps): update dependency me.champeau.jmh:me.champeau.jmh.gradle.plugin to v0.7.2
Fixes https://github.com/apache/jmeter/pull/6119
2023-11-24 15:09:17 +03:00
Mend Renovate 39888d9867 fix(deps): update kotlin monorepo to v1.9.21 2023-11-24 13:21:21 +03:00
Vladimir Sitnikov 94a85af303 Add references to boms in the generated pom.xml files 2023-07-12 21:12:32 +03:00
Vladimir Sitnikov e424b5fa99 chore: Fix compatibility with Maven's pom.xml parser by adding explicit versions for com.google.auto.service:auto-service-annotations
Fixes https://github.com/apache/jmeter/issues/6041

See https://github.com/gradle/gradle/issues/25712
2023-07-11 13:48:53 +03:00
Mend Renovate bfff137ceb fix(deps): update dependency org.jetbrains.dokka:org.jetbrains.dokka.gradle.plugin to v1.8.20 2023-06-29 09:12:11 +03:00
Mend Renovate 6f11f23b96 fix(deps): update kotlin monorepo to v1.8.22 2023-06-29 07:38:36 +03:00
Mend Renovate c9cb9add59 fix(deps): update com.github.vlsi to v1.90 2023-06-27 08:18:40 +03:00
Vladimir Sitnikov 1ee08f4e28 chore: use Gradle toolchains for JDK provisioning
It enables automatic JDK provisioning (e.g. download), and it enables
using different JDKs for executing Gradle and for building JMeter

Java version can be specified when building with -PjdkVersion=11

You could use ./gradlew -q javaToolchains to list the detected toolchains.

See https://docs.gradle.org/8.0/userguide/toolchains.html#sec:consuming

Fixes https://github.com/apache/jmeter/issues/5986
2023-06-24 18:49:05 +03:00
Vladimir Sitnikov cabc3fbe15 chore: use testFixtures sourceset instead of depending on all the test classes
This change enables cleaner separation between "actual tests" and "support classes for the tests".

For instance, `:src:core` might provide dummy samplers like `ThreadSleep` for testing purposes.
`ThreadSleep` would depend on `src/test/main` (since it would `extend AbstractSampler`),
 and other modules (e.g. tests in `:src:protocols:http`) might need that `ThreadSleep` sampler.

It won't be practical to create `core-testkit` modules for every module,
so we move those reusable test classes to `testFixtures/...` source set.

See https://docs.gradle.org/current/userguide/java_testing.html#sec:java_test_fixtures
2023-06-08 13:37:07 +03:00
Vladimir Sitnikov 4e5b9df457 chore: bump vlsi-release-plugins to 1.89
It should reduce the number of created threads, and it should resolve
UnsupportedOperationException when filesystem contains inaccessible files.
2023-06-06 12:54:41 +03:00
Vladimir Sitnikov 5f6bb607be chore: reduce verbosity of the build logs
Ignore "missing javadoc" warnings
2023-06-04 08:54:44 +03:00
Vladimir Sitnikov 6f5936b5eb doc: use Dokka instead of Javadoc for building documentation in modules that contain Kotlin code in src/main
Java's Javadoc can't build documentation for Kotlin code, so we need something else.

Dokka can create documentation for both Kotlin and Java.

See https://kotlinlang.org/docs/dokka-introduction.html
2023-06-03 10:34:22 +03:00
Vladimir Sitnikov a2690e8a6d test: Add OpenJDK JMH for creating microbenchmarks in JMeter code
This enables creating benchmark for tracking performance of low-level code.

The way to add a benchmark is to add src/jmh folder (side by side with src/main).
Then benchmark jar can be generated with ./gradlew jmhJar, or the benchmark
can be executed from IDE if there's a corresponding main method.

See ResultCollectorBenchmark
2023-06-02 16:50:13 +03:00
Vladimir Sitnikov 7037a66198 feat: configure Kotlin to produce default methods in Java interfaces 2023-06-02 12:56:08 +03:00
Vladimir Sitnikov 89c69b47d3 deps: bump auto-service to 1.1.0 from 1.0.1
AutoService 1.1.0 improves the verifications, and it enables verifications by default.
For instance, it rejects the use of @AutoService for interfaces and abstract classes
since they can't be instantiated anyway.
2023-05-25 10:28:16 +03:00
Vladimir Sitnikov e609610160 chore: remove unused build-logic.testing.gradle.kts 2023-05-19 11:32:02 +03:00
Vladimir Sitnikov c6c363c511 chore: remove unused kotlin-test-junit5 dependency from the test classpath
Too many testing libraries make it hard to select the right `@Test` annotation.
2023-05-18 19:31:06 +03:00
Vladimir Sitnikov 75754ce637 ci: add randomized matrix for better test coverage
See https://github.com/vlsi/github-actions-random-matrix
2023-05-18 07:54:25 +03:00
Vladimir Sitnikov eedabdd6c0
feat: use ServiceLoader to find implementations instead of searching classes in jars (#5885)
ServiceLoader is Java standard approach for locating implementaitons,
and it allows pluggability without relying on a filesystem layout.

Fixes https://github.com/apache/jmeter/issues/5883
2023-05-11 16:20:17 +03:00
Vladimir Sitnikov 0a193334c4 chore: add --release 8 when compiling with Java 10+ so the generated bytecode uses Java 8 methods only
For instance, overrides like java.nio.DoubleBuffer#clear() do not exist in Java 8,
so without "--release 8" the bytecode will not execute in Java 8.
With --release 8, javac compiles the call to java.nio.Buffer#clear() which
exists in Java 8.
2023-05-01 16:48:00 +03:00
Vladimir Sitnikov 3443047c88 Use © instead of © for javadoc footer to better support non-UTF-8 encodings
By default, javadoc uses defaultCharset encoding which is not reliable with non-latin characters
2023-04-30 09:19:47 +03:00
Vladimir Sitnikov e52305d6a4 chore: use proper junit5 dependencies so the jupiter engine is added to test runtime classpath 2023-04-29 16:41:44 +03:00
Renovate Bot 0c34b9f082 fix(deps): update dependency org.jetbrains.gradle.plugin.idea-ext:org.jetbrains.gradle.plugin.idea-ext.gradle.plugin to v1
Fixes https://github.com/apache/jmeter/pull/5866
2023-04-29 11:50:05 +03:00
Vladimir Sitnikov d50c11e8ec chore: create separate BOM for dependencies used in tests
Moving test versions for testing dependencies to a separate BOM
would make it slightly easier for the consumers to work with regular JMeter dependencies.

In other words, JMeter should not require a specific JUnit 5 version,
so JUnit5 should not be a part of the regular dependencies.
2023-04-28 20:00:40 +03:00
Mend Renovate 97a5cea3a3
fix(deps): update com.github.vlsi to v1.88 (#5824) 2023-04-27 19:52:26 +03:00
Vladimir Sitnikov a9ec76d067 chore: factor build-logic so it is easier to reuse
See https://docs.gradle.org/current/userguide/structuring_software_products.html
2023-04-27 14:26:05 +03:00