Compare commits

...

227 Commits

Author SHA1 Message Date
Mend Renovate 6b9d2949da
fix(deps): update com.github.weisj to v3 2025-07-18 10:24:56 +00: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
Raul Almeida 77675e0b8e
fix: support trailing empty default values in JSON Extractor(#6448)
See https://errorprone.info/bugpattern/StringSplitter
2025-04-23 16:00:46 +03:00
Alioth Null 9c64fd2d27 factor out error handling logic 2025-03-25 11:35:47 +03:00
Alioth Null d154f27827 remove reflection 2025-03-25 11:35:47 +03:00
Mend Renovate 96ea3c0b02 fix(deps): update dependency jacoco to v0.8.12 2025-03-24 10:00:24 +03:00
Mend Renovate 6e58d4b509 fix(deps): update dependency io.mockk:mockk to v1.13.17 2025-03-24 09:31:52 +03:00
Raul Almeida 131c4cff5a fix typo on flotSyntheticResponseTimeDistribution caused export to png to fail 2025-03-20 15:57:25 +03:00
Anjanan a7bd8fabdc Update index.xml
Removed unnecessary space in  a link
2025-03-04 17:59:20 +03:00
Mend Renovate d3dcc82c75 fix(deps): update dependency commons-logging:commons-logging to v1.3.5 2025-03-04 17:58:54 +03:00
Mend Renovate 19c75638cf fix(deps): update dependency com.thoughtworks.xstream:xstream to v1.4.21 2025-03-03 11:21:58 +05:00
Mend Renovate 6d39ac6e69 fix(deps): update dependency com.github.tomakehurst:wiremock-jre8 to v2.35.2 2025-02-13 10:22:01 +03:00
junyejiang 30b3b7ef36 update according to CR 2025-02-10 13:36:50 +03:00
junyejiang 10491a6550 Correct mirror server class path 2025-02-10 13:36:50 +03:00
Mend Renovate d7f7bcc164 chore(deps): update plugin org.gradlex.build-parameters to v1.4.4 2025-01-28 10:36:29 +03:00
Clay Johnson ab65ec1810 Update Develocity plugin versions 2025-01-15 04:49:27 +03:00
Clay Johnson 9747669c2d Use `DEVELOCITY_ACCESS_KEY` to authenticate to `develocity.apache.org` 2025-01-15 04:49:27 +03:00
Clay Johnson ecac72df6c Publish build scans to develocity.apache.org 2025-01-15 04:49:27 +03:00
Gabriele Coletta 5d9778129a Removed duplicated call to applyHiDPIOnFonts 2024-12-08 13:53:45 +03:00
Gabriele Coletta 083d6fe15c Apply HiDPI mode on GUI setup 2024-12-08 13:53:45 +03:00
František Bílek be0cf3a661 Updated the `createMenuItem` method to use a more descriptive variable name `menuItem` for clarity and consistency. 2024-11-30 08:40:30 +03:00
linvaux 423c00b22e style(StandardJmeterEngine): remove unnecessary code
delete "return" in a private void method
2024-11-30 08:39:32 +03:00
Patrick Uiterwijk c846e66e92 Add explanation to UnrecoverableKeyException
Unrecoverable keys after opening the keystore could be a consequence of
the key having a different password than the keystore itself.
This could cause some people to spend a lot of time figuring out what's
going on, so let's just give them a quick heads up of a potential
(common?) reason for this error.

This could be fixed by running "keytool -keypasswd".
2024-11-26 10:25:27 +03:00
Patrick Uiterwijk f9fe8e4feb Fix KeyManage log when using CLI mode
Without this patch, whenever a KeyStore is used (for example for client
certificates) in CLI mode, there is a message that no password was
provided.
This was caused by the else of the condition being on the wrong if
statement, and can cause people to spend a lot of time trying to debug
why the key store won't work.
2024-11-26 10:24:57 +03:00
Felix Schumacher 872112bf5d Add test to check report generation from read-only directory
Closes #6357 and #6358
2024-10-25 13:11:19 +02:00
Felix Schumacher 939ae3c046 Ensure directories are writable when generating reports from read-only sources 2024-10-25 13:09:49 +02:00
Felix Schumacher 8268c1c499 Add since annotation to javadoc for new feature
Closes #6352 and #6353
2024-10-25 12:41:52 +02:00
Felix Schumacher 66c2df72ad Use simple long, as we are initialized before the reading threads are started 2024-10-06 17:46:59 +02:00
Felix Schumacher 9e2e2bcbd1 Add startTime to AbstractThreadGroup and use it in OMTG and PreciseThroughputTimer
A thread group might start later than the test. When we calculate delays on the start time of
the test, we might get a stampede of samples run at the start of the thread group.
2024-10-06 17:46:59 +02:00
Felix Schumacher 45996dbd69 Use current time as start time for OMTG
When we use the test start time via JMeterContextService#getTestStartTime,
we might create a storm of test samples at the beginning, when a setup thread group
made us wait.
2024-10-06 17:46:59 +02:00
Felix Schumacher 6abfb4d5cd Fix markup 2024-09-27 19:26:28 +02:00
Felix Schumacher 954d229fdd Add changes to changes.xml 2024-09-27 18:56:48 +02:00
Felix Schumacher 356775da35 More occurrences of com.mysql.jdbc.Driver / replace them all 2024-09-27 18:56:48 +02:00
David Getzlaff 9643596b15 Update component_reference.xml for com.mysql.cj.jdbc.Driver 2024-09-27 18:54:31 +02:00
David Getzlaff 3a38f0462a Add new jdbc.driver.class "com.mysql.cj.jdbc.Driver" to jmeter.properties
By providing this new class, this message can be prevented:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2024-09-27 18:54:31 +02:00
Felix Schumacher d1de0b8e1a Exclude Oracle Java on MacOS. It is not working currently
It seems, that the env variable JAVA_HOME__x64 is not set
2024-09-27 18:09:40 +02:00
Felix Schumacher 90f6998fa7 Fix flaky brotli decompression batch test
Sometimes in CI the brotli request will be redirected first, so try to not show
those redirects in the sampler output. Maybe we can get that test to working again.
2024-09-27 12:30:31 +02:00
wick 755011176b fix(Jmeter): fix a wrong method name
update org.apache.jmeter.JMeter#startUdpDdaemon to org.apache.jmeter.JMeter#startUdpDaemon

Closes 6325
2024-09-19 08:06:29 +03:00
Jitesh Kumar Raghav 8b25820e67 Fixed Typo in error message #6335 Issue 2024-09-19 08:05:08 +03:00
Vladimir Sitnikov 3e9af5de35 chore: bump Gradle to 8.9 2024-08-06 13:00:43 +03:00
Vladimir Sitnikov 871aa60522 style: remove unused imports 2024-08-06 12:29:38 +03:00
Dmitry Kryukov ca708c8ece Removed several collections which are updated, but seem to be never accessed. 2024-08-06 12:11:48 +03:00
Vladimir Sitnikov 6b650080c4 chore: use xercesImpl:2.12.1 for the buildscript classpath to avoid old xerces during the build
This is a build-time only change, and it does not change test/runtime classpath.
2024-08-06 10:37:53 +03:00
Piotr P. Karwasz cbdfd1ba43 Fix log4j package warning on JMeter startup: WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated ...
The Log4j Core `packages` configuration attribute is deprecated because:

* It triggers the scanning of the mentioned packages and slows down the
  startup process.
* It was replaced in version 2.0 by a faster mechanism that relies on a
  `Log4jPlugins.dat` metadata file. See [Log4j Plugins](https://logging.apache.org/log4j/2.x/manual/plugins.html) for more details.

This PR removes the `packages` attribute from the standard configuration
file and configures the build script of `jmeter-core` to use the
`PluginProcessor` contained in `log4j-core`.

See #5937.
2024-08-06 09:58:55 +03:00
David Coomber 174ba3178f Fixed grammar 2024-06-23 14:01:12 +02:00
David Coomber 339c793250 Fixed typo 2024-06-21 19:49:42 +03:00
Vladimir Sitnikov 289b3d189c fix: trim whitespace when parsing numeric properties
Motivation: if the value parses after trimming, then it would likely be the one
the user wants.

Currently, a trailing whitespace in UI is hard to notice, and it breaks test
execution. For instance ThreadGroup.threadNum becomes 0 without any warning,
and it invalidates test results.
2024-05-30 21:37:57 +03:00
Milamber bacaa8baff
Add a space between key and value after : in View Results Tree > Sampler result tab #6267 (#6268) 2024-04-12 12:01:50 +00: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 d3cba66416 chore: set next version to 6.0.0 2024-01-09 11:00:48 +03:00
Milamber 79bc2c831f
Add the 5.6.3 release 2024-01-07 18:12:57 +01:00
Vladimir Sitnikov 34a2785748 test: reduce JMeterTest > runSerialTest test noise
PropertyDescriptor requires arguments for instantiation, so it can't easily
be tested for serializability.
2024-01-01 17:41:17 +03:00
Vladimir Sitnikov ff63439527 fix: store ThreadGroup.scheduler fields
This fixes a regression in 278247608b
2024-01-01 17:41:17 +03:00
Milamber 6c2a009159
prepare new version 5.6.3 2023-12-31 10:34:31 +01:00
Vladimir Sitnikov 945281cfaa feat: pass JDBCSampler.maxRows to Statement.setMaxRows so the driver does not fetch extra rows from the database 2023-12-30 13:02:36 +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 05c8659f3b chore: add workaround for kapt failure "Number of loaded files in snapshots differs"
See https://youtrack.jetbrains.com/issue/KT-45329/IDE-KAPT-Number-of-loaded-files-in-snapshots-differs-when-using-Run-with-Coverage-and-project-has-Java-and-Kotlin-targets-with
2023-12-30 12:26:31 +03:00
Vladimir Sitnikov b36a9c41dc Reapply "refactor: JMeterSerialTest to Kotlin so we have one less compileJava task"
This reverts commit 8a5f5d8e98.
2023-12-30 12:19:55 +03:00
Vladimir Sitnikov c204d5c72d Reapply "refactor: @JMeterSerialTest.java -> JMeterSerialTest.kt"
This reverts commit 241078e518.
2023-12-30 12:19:50 +03:00
Vladimir Sitnikov 241078e518 Revert "refactor: @JMeterSerialTest.java -> JMeterSerialTest.kt"
This reverts commit 4199228f12.
2023-12-30 11:58:55 +03:00
Vladimir Sitnikov 8a5f5d8e98 Revert "refactor: JMeterSerialTest to Kotlin so we have one less compileJava task"
This reverts commit 1c64012830.
2023-12-30 11:58:48 +03:00
Vladimir Sitnikov 1c64012830 refactor: JMeterSerialTest to Kotlin so we have one less compileJava task 2023-12-30 10:19:05 +03:00
Vladimir Sitnikov 4199228f12 refactor: @JMeterSerialTest.java -> JMeterSerialTest.kt 2023-12-30 10:17:33 +03:00
Vladimir Sitnikov 8d629f196d test: use bin/temp/ftp_test instead of bin/ftp_test so the generated files are not accidentally committed 2023-12-30 10:12:14 +03:00
Vladimir Sitnikov be645a23c5 docs: update changelog for 5.6.3 2023-12-29 18:27:34 +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 ae75354d3c refactor: replace org.junit.Assert with org.junit.jupiter.api.Assertions
It is a step towards removing junit:junit:4.x dependency
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
Vladimir Sitnikov dfe4649a30 refactor: migrate :src:protocol:bolt Groovy tests to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov bf18733adb refactor: rename .groovy to .kt in :src:protocol:bolt to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov d80c0226f8 refactor: migrate :src:protocol:jdbc Groovy tests to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 2f2cbbd955 refactor: rename .groovy to .kt in :src:protocol:jdbc to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov a0ab4eee4e refactor: migrate :src:protocol:http Groovy tests to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 7df1f93e89 refactor: rename .groovy to .kt in :src:protocol:http to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov b9dc01feb4 refactor: migrate Groovy tests in :src:functions to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov d5bc84c44a refactor: rename .groovy to .kt in :src:functions to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 53f9066f91 refactor: remove unused JMeterSpec.groovy 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 5c7d63e889 refactor: migrate :src:dist-check Groovy tests to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov a7706f03dd refactor: rename .groovy to .kt in :src:dist-check to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 572698fac7 refactor: migrate :src:components Groovy tests to Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 5c0d592562 refactor: rename .groovy to .kt in :src:components to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 993ed37076 refactor: move JMeterSpec to :src:components as :src:core no longer has Groovy 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov e46aa4ce17 refactor: replace Groovy tests in :src:core with Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 6239f00bd4 refactor: rename .groovy to .kt in :src:core to allow Git track history better 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov 23f922817f refactor: replace Groovy tests in :src:jorphan with Kotlin 2023-12-29 17:30:03 +03:00
Vladimir Sitnikov a671815c95 refactor: rename .groovy -> .kt in :src:jorphan so Git tracks history better 2023-12-29 17:30:03 +03:00
Mend Renovate c7a41e09b1 fix(deps): update org.apache.logging.log4j to v2.22.1 2023-12-27 18:12:22 +03:00
Milamber 73719bdf80
Next major release will be for Java 17+ 2023-12-27 15:22:34 +01:00
Vladimir Sitnikov c3457ffc3c test: verify that GuiComponent.configure+modifyTestElement does not modify element after creation
It helps to verify both createTestElement, configure, and modifyTestElement implementations,
so JMeter does not accidentally show treat test plan as dirty when the user
merely switches across elements

At the same time, it ensures test elements do not accidentally lose properties
when processing modifyTestElement
2023-12-27 14:45:41 +03:00
Vladimir Sitnikov 0d9c3517ef refactor: use property bindings in TestPlanGui 2023-12-27 14:45:41 +03:00
Vladimir Sitnikov 278247608b refactor: use property bindings in ThreadGroupGui, OpenModelThreadGroupGui 2023-12-27 14:45:41 +03:00
Vladimir Sitnikov 1651026f19 refactor: use property bindings in BeanShellSamplerGui 2023-12-27 14:45:41 +03:00
Vladimir Sitnikov 9b258623b0 fix: add property bindings to reduce code duplication in UI classes and make "configure and modifyTestElement" simple in most cases 2023-12-27 14:45:41 +03:00
Vladimir Sitnikov ef82a00cad fix: allow setting empty strings with TestElement.set(...) API, and remove properties only in case the value is null 2023-12-27 14:45:41 +03:00
Vladimir Sitnikov 73b255962e test: remove AssertionGuiSpec as it duplicates existing org.apache.jmeter.junit.JMeterTest
junit.JMeterTest instantiates all detected Gui classes, create components,
and verify basic properties, so AssertionGuiSpec was not adding much
2023-12-27 12:19:21 +03:00
Vladimir Sitnikov 13b824a5a9 test: ensure all Gui elements initialize non-empty TestElement names 2023-12-27 12:19:21 +03:00
Vladimir Sitnikov 7ec460defe test: add DisabledIfHeadless annotation to selectively disabling tests in headless mode 2023-12-27 12:19:15 +03:00
Vladimir Sitnikov 221c14d6fc test: remove stale AllTests.java test launcher 2023-12-26 15:09:31 +03:00
Vladimir Sitnikov 5c95bcc43d refactor: replace use of deprecated DefaultPlotPanelBatik 2023-12-25 19:42:17 +03:00
Mend Renovate d863aa7ef8 fix(deps): update dependency org.codehaus.groovy:groovy-bom to v3.0.20
Fixes https://github.com/apache/jmeter/pull/6205
2023-12-25 11:51:13 +03:00
Mend Renovate 55f15377a9 fix(deps): update org.checkerframework
Fixes https://github.com/apache/jmeter/pull/6209
2023-12-25 11:34:40 +03:00
Mend Renovate 99460c992f fix(deps): update com.google.errorprone to v2.24.0
Fixes https://github.com/apache/jmeter/pull/6208
2023-12-25 11:31:55 +03:00
Mend Renovate 9532a8aa18 fix(deps): update dependency nl.jqno.equalsverifier:equalsverifier to v3.15.5 2023-12-25 06:41:16 +03:00
Mend Renovate 56a02b3b17 fix(deps): update kotlin monorepo to v1.9.22 2023-12-25 06:13:06 +03:00
Mend Renovate bd411da1a8 fix(deps): update dependency net.bytebuddy:byte-buddy to v1.14.11 2023-12-25 06:07:31 +03:00
Mend Renovate 851879f2cf fix(deps): update dependency org.neo4j.driver:neo4j-java-driver to v4.4.13 2023-12-25 06:06:51 +03:00
Mend Renovate 2ae93c8dfc fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.0.4 2023-12-25 05:35:27 +03:00
Mend Renovate f781395514 fix(deps): update com.fasterxml.jackson.core to v2.16.1 2023-12-25 05:35:11 +03:00
Mend Renovate 167038054f fix(deps): update dependency org.jetbrains.lets-plot:lets-plot-batik to v4 2023-12-23 21:31:30 +03:00
Vladimir Sitnikov 2395d49d98 test: remove timer.iterationStart calls from ConstantThroughputTimerTest 2023-12-19 14:20:55 +03:00
Vladimir Sitnikov 9c3c4bd5a0 fix: remove empty implementation of TestStateListener from AbstractJDBCTestElement
TestStateListener + TestBean cause issues like in https://github.com/apache/jmeter/issues/6174,
so we should remove empty implementations
2023-12-19 14:20:55 +03:00
Vladimir Sitnikov e9c2ef9cc0 fix: log errors happening while JMeter starts the test
Previously, the exceptions from TestStateListener.testStarted might
be unnoticed since the UI did not display them.

This change is a workaround to surface errors in common cases.

See https://github.com/apache/jmeter/issues/6174
2023-12-19 12:47:36 +03:00
Vladimir Sitnikov 1329c481fc fix: avoid NPE when ConstantTimer.delay accesses a variable
The variable might not yet be initialized at the first iteration

Fixes https://github.com/apache/jmeter/issues/6162
2023-12-18 18:06:26 +03:00
Vladimir Sitnikov 9b250b64c0 fix: allow usage of variables in ConstantThroughputTimer.throughput and PreciseThroughputTimer
Previously, the timers might fail initialization in case variable was not present
when test started.

The current workaround is to avoid implementing TestStateListener in the timers
so JMeter does not attempt evaluating all the properties before test starts.

fixes https://github.com/apache/jmeter/issues/6165
2023-12-18 16:26:33 +03:00
Mend Renovate a45bcc9172 fix(deps): update dependency net.sf.saxon:saxon-he to v11.6 2023-12-14 20:26:41 +03:00
Mend Renovate b3209293e3 fix(deps): update dependency spotbugs to v4.8.3 2023-12-14 20:26:29 +03:00
Mend Renovate 3e20b6fdca fix(deps): update dependency org.jsoup:jsoup to v1.17.1 2023-12-14 20:03:48 +03:00
Mend Renovate 95da3fd5de fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.3 2023-12-14 20:03:38 +03:00
Mend Renovate 7942db8187 fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6 2023-12-14 20:03:25 +03:00
Mend Renovate 58a9b2b333 fix(deps): update dependency commons-logging:commons-logging to v1.3.0
Fixes https://github.com/apache/jmeter/pull/6179
2023-12-14 19:50:28 +03:00
Vladimir Sitnikov 9e4485ac8f chore: prevent Renovate from upgrading Guava "0" 2023-12-14 19:46:13 +03:00
Mend Renovate 928c4fa043 chore(deps): update actions/setup-java action to v4 2023-12-14 19:43:52 +03:00
Mend Renovate eeb45b8052 fix(deps): update org.checkerframework
Fixes https://github.com/apache/jmeter/pull/6183
2023-12-14 19:43:13 +03:00
Mend Renovate 311342a7bc fix(deps): update com.fasterxml.jackson.core to v2.16.0
Fixes https://github.com/apache/jmeter/pull/6124
2023-12-14 19:32:23 +03:00
Mend Renovate 31c29af392 fix(deps): update dependency nl.jqno.equalsverifier:equalsverifier to v3.15.4 2023-12-14 19:16:02 +03:00
Mend Renovate a6bc6574f2 fix(deps): update dependency checkstyle to v10.12.6
Fixes https://github.com/apache/jmeter/pull/6177
2023-12-14 19:15:13 +03:00
Mend Renovate 2c8495368e chore(deps): update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12.1
Fixes https://github.com/apache/jmeter/pull/6176
2023-12-14 19:08:34 +03:00
Vladimir Sitnikov 8ce5097d27 chore: use Java 17 for Errorprone analysis 2023-12-14 18:51:30 +03:00
Vladimir Sitnikov 76bf21fb9e chore: make sure the build fails with a reasonable message if the build Java version is less than 17 2023-12-13 20:09:14 +03:00
Mend Renovate 91fa7041f4 fix(deps): update dependency com.fifesoft:rsyntaxtextarea to v3.3.4 2023-12-08 07:48:07 +03:00
Mend Renovate 43dac8805d fix(deps): update dependency commons-io:commons-io to v2.15.1 2023-12-07 17:50:29 +03:00
Vladimir Sitnikov 9d0961f093 fix: restore backward compatibility with JMeter < 5.6.2
We should not have changed public methods to static, and we should
probably restore the API.

Unfortuantely, it would break those who already recompiled with 5.6.2,
however, I hope it it would be less harm to restore the API to the original state.

This reverts some of the changes made in 12aefb0c70
2023-12-07 13:58:28 +03:00
Vladimir Sitnikov 2948281a3c test: exclude Semeru JDK from the builds as there are issues running with Gradle 8.5
See https://github.com/gradle/gradle/issues/27273
2023-12-04 14:52:12 +03:00
Mend Renovate 646a4060d3
fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v5.2.5 (#6167) 2023-12-04 08:03:03 +03:00
Vladimir Sitnikov 54a906918c chore: exclude Semeru + tr_TR combination from tests
See https://github.com/gradle/gradle/issues/27261
2023-12-02 21:58:39 +03:00
Vladimir Sitnikov c92b9cf244 chore: bump Gradle to 8.5 2023-12-02 11:45:34 +03:00
Mend Renovate b0c06a60e2 fix(deps): update io.burt to v0.6.0 2023-11-24 21:20:25 +03:00
Mend Renovate 2fc90f976b fix(deps): update dependency org.apache.commons:commons-lang3 to v3.14.0 2023-11-24 20:38:15 +03:00
Mend Renovate a875fa48bd fix(deps): update dependency org.apache.commons:commons-pool2 to v2.12.0
Fixes https://github.com/apache/jmeter/pull/6154
2023-11-24 20:23:32 +03:00
Mend Renovate f201bd6376 fix(deps): update dependency org.apache.commons:commons-text to v1.11.0
Fixes https://github.com/apache/jmeter/pull/6155
2023-11-24 20:14:45 +03:00
Mend Renovate 45c4b0466d fix(deps): update dependency org.junit:junit-bom to v5.10.1 2023-11-24 20:01:10 +03:00
Mend Renovate 047a6fbe69 fix(deps): update dependency commons-net:commons-net to v3.10.0 2023-11-24 20:01:00 +03:00
Mend Renovate 63f839d664 fix(deps): update dependency org.apache.xmlgraphics:xmlgraphics-commons to v2.9 2023-11-24 20:00:21 +03:00
Mend Renovate 3e6c3f7a6a fix(deps): update net.minidev json-smart to v2.5.0 2023-11-24 19:58:30 +03:00
Mend Renovate 8ba840a73f fix(deps): update org.apache.logging.log4j to v2.22.0 2023-11-24 19:58:09 +03:00
Mend Renovate f9201d7ea3 chore(deps): update plugin com.gradle.enterprise to v3.15.1
Fixes https://github.com/apache/jmeter/pull/6151
2023-11-24 19:44:36 +03:00
Mend Renovate 7a5ef78db8 fix(deps): update dependency org.sonarqube:org.sonarqube.gradle.plugin to v4.4.1.3373
Fixes https://github.com/apache/jmeter/pull/6151
2023-11-24 19:42:44 +03:00
Mend Renovate a186172503 chore(deps): update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12
Fixes https://github.com/apache/jmeter/pull/6149
2023-11-24 19:34:52 +03:00
Mend Renovate 5fb39e2d60 fix(deps): update dependency org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin to v0.8.1
Fixes https://github.com/apache/jmeter/pull/6129
2023-11-24 19:29:06 +03:00
Mend Renovate dc1c767165 fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v5.2.3
Fixes https://github.com/apache/jmeter/pull/6137
2023-11-24 19:26:21 +03:00
Mend Renovate 59afeed54e fix(deps): update org.checkerframework
Fixes https://github.com/apache/jmeter/pull/6144
2023-11-24 19:21:53 +03:00
Vladimir Sitnikov a1db7e9a98 style: correct import order in TargetRateChart 2023-11-24 19:19:24 +03:00
Mend Renovate 5d8f11650f fix(deps): update dependency de.thetaphi.forbiddenapis:de.thetaphi.forbiddenapis.gradle.plugin to v3.6
Fixes https://github.com/apache/jmeter/pull/6136
2023-11-24 19:17:10 +03:00
Vladimir Sitnikov d5b50e354f style: fix letsPlot deprecations 2023-11-24 19:03:38 +03:00
Mend Renovate d9c32eb850 fix(deps): update com.google.errorprone to v2.23.0
Fixes https://github.com/apache/jmeter/pull/6148
2023-11-24 18:59:42 +03:00
Vladimir Sitnikov d61dadd7ef chore: add PGP keys for the updated Spotbugs 2023-11-24 18:26:08 +03:00
Mend Renovate ccadefe53e fix(deps): update dependency spotbugs to v4.8.1 2023-11-24 18:08:50 +03:00
Mend Renovate f0e70f8c19 fix(deps): update dependency org.jetbrains.lets-plot:lets-plot-kotlin-jvm to v4.5.0 2023-11-24 17:54:41 +03:00
Mend Renovate 44e9e5fc6b fix(deps): update dependency nl.jqno.equalsverifier:equalsverifier to v3.15.3 2023-11-24 17:53:46 +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 46c5e6923c fix(deps): update org.openjdk.jmh to v1.37 2023-11-24 17:26:29 +03:00
Mend Renovate 6b8155107b chore(deps): update actions/github-script action to v7 2023-11-24 17:25:54 +03:00
Mend Renovate 045d0525c4 chore(deps): update actions/checkout action to v4 2023-11-24 17:25:22 +03:00
Mend Renovate 5e6b7d486b fix(deps): update dependency commons-io:commons-io to v2.15.0 2023-11-24 17:16:10 +03:00
Mend Renovate e734757fd8 fix(deps): update dependency org.jetbrains:annotations to v24.1.0 2023-11-24 17:15:55 +03:00
Mend Renovate 5b2753eb18 fix(deps): update dependency commons-codec:commons-codec to v1.16.0 2023-11-24 17:15:41 +03:00
Mend Renovate 5ba571b217 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.2.2 2023-11-24 17:01:48 +03:00
Mend Renovate 35968fc4c4 fix(deps): update dependency org.apache.mina:mina-core to v2.2.3 2023-11-24 17:01:34 +03:00
Mend Renovate d07a87905d fix(deps): update dependency org.jsoup:jsoup to v1.16.2 2023-11-24 17:01:21 +03:00
Mend Renovate 295c57b42f fix(deps): update dependency org.ow2.asm:asm to v9.6 2023-11-24 17:00:58 +03:00
Mend Renovate 3c6cacb507 fix(deps): update org.apache.activemq to v5.16.7 2023-11-24 16:27:42 +03:00
Mend Renovate a793855b14 chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v0.7.0
Fixes https://github.com/apache/jmeter/pull/6123
2023-11-24 16:25:23 +03:00
Vladimir Sitnikov d4a2cde3e1 style: fix extra whitespace in src/core/build.gradle.kts 2023-11-24 16:00:39 +03:00
Vladimir Sitnikov a8ef142b8f chore: use proper Gradle release checksum
The previous one was a checksum for the wrapper.jar

See https://gradle.org/release-checksums/
2023-11-24 15:50:41 +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 fa227e48ba fix(deps): update dependency checkstyle to v10.12.5
Fixes https://github.com/apache/jmeter/pull/6116
2023-11-24 15:16: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 367c065b97 fix(deps): update dependency net.bytebuddy:byte-buddy to v1.14.10 2023-11-24 15:00:51 +03:00
Mend Renovate 047fa01684 fix(deps): update dependency com.github.tomakehurst:wiremock-jre8 to v2.35.1 2023-11-24 15:00:26 +03:00
Mend Renovate ff0c320a26 fix(deps): update dependency jacoco to v0.8.11 2023-11-24 15:00:13 +03:00
Vladimir Sitnikov 71bb952320 chore: add Java 22 (ignored) version to the build matrix 2023-11-24 14:45:26 +03:00
Mend Renovate e47e59cd2a chore(deps): update release-drafter/release-drafter digest to 09c613e 2023-11-24 14:43:00 +03:00
Renovate Bot b788603409 fix(deps): update dependency org.mongodb:mongo-java-driver to v2.14.3
Fixes https://github.com/apache/jmeter/pull/5865
2023-11-24 14:18:54 +03:00
Vladimir Sitnikov 5bf0e2dd8c chore: increase test coverage for Java 21 by testing more distributions 2023-11-24 14:09:56 +03:00
Vladimir Sitnikov 3c38098347 chore: use toolchains for kotlin-dsl for Gradle 9 compatibility 2023-11-24 14:09:56 +03:00
Mend Renovate 39888d9867 fix(deps): update kotlin monorepo to v1.9.21 2023-11-24 13:21:21 +03:00
Vladimir Sitnikov 05a71a0891 chore: remove dependency on jetbrains.kotlin.jvm.gradle.plugin in build-logic-commons 2023-11-24 13:18:55 +03:00
Vladimir Sitnikov 9b4221a23e chore: use Java 17 for building the build scripts 2023-11-24 13:17:19 +03:00
Vladimir Sitnikov b080ca648f chore: bump oracle-actions/setup-java to v1.3.2 2023-11-24 12:49:05 +03:00
Vladimir Sitnikov b2c483c596 chore: add explicit dependency from kaptGenerateStubsKotlin on versionClass 2023-11-24 12:45:30 +03:00
Vladimir Sitnikov d077087997 chore: set Java LTS release for build script compilation
Previously the build failed if the default Java was newer than 20.

Now we explicitly specify jvmTarget for the build script compilation.

Note: it does not impact the target JVM for the resulting JMeter binaries.
2023-11-24 12:28:35 +03:00
Vladimir Sitnikov 15f5ca036b chore: miglayout 11.0+ requires Java 11, so we can't upgrade yet 2023-11-24 10:34:07 +03:00
Vladimir Sitnikov ad083e60fd Revert "fix(deps): update com.miglayout to v11"
This reverts commit caa75cecb1.
2023-11-24 10:32:37 +03:00
Vladimir Sitnikov eadc5561bd chore: group jmespath updates in Renovate 2023-11-24 09:56:44 +03:00
Vladimir Sitnikov 597ea90ec9 chore: group JMH updates in Renovate 2023-11-24 09:56:33 +03:00
Mend Renovate caa75cecb1 fix(deps): update com.miglayout to v11
Fixes https://github.com/apache/jmeter/pull/5894
2023-11-24 09:51:34 +03:00
Vladimir Sitnikov 1c58dad1a6 chore: add checksum for jgit-5.13.2.202306221912 2023-11-24 09:47:25 +03:00
Mend Renovate 241f50d332 fix(deps): update dependency org.codehaus.groovy:groovy-bom to v3.0.19 2023-11-24 08:13:50 +03:00
Mend Renovate aa52a5ab14 fix(deps): update dependency org.eclipse.jgit:org.eclipse.jgit to v5.13.2.202306221912-r 2023-11-24 08:11:53 +03:00
Mend Renovate 6c3a1fd14a fix(deps): update dependency org.jetbrains.kotlinx:kotlinx-coroutines-bom to v1.7.3 2023-11-24 08:11:20 +03:00
Mend Renovate 2a4fc061d4 fix(deps): update dependency org.neo4j.driver:neo4j-java-driver to v4.4.12 2023-11-24 08:11:04 +03:00
MarkHoo 9ee70beb6f Fixed Chinese translation errors in multiple languages 2023-11-24 08:10:32 +03:00
Tyler Bertrand 91d8aea7c4 Resolve checkstyle cache miss
Instead of the absolute path to checkstyle cacheFile which was causing a cache miss, use the relative path from configDir for cacheFile path
2023-09-06 04:14:02 +03:00
sebbASF c94db9741f Fix link to bug database 2023-07-19 06:37:05 +03:00
Vladimir Sitnikov 94a85af303 Add references to boms in the generated pom.xml files 2023-07-12 21:12:32 +03:00
pochopsp 52c0bf2547 Add space before stopping_test_host
Edited MainFrame.java in order to add a space before stopping_test_host message string in showStoppingMessage(String host) to separate this message string from the stopping_test one
2023-07-12 16:24:31 +03:00
Vladimir Sitnikov ce1f32af87 Fix computation of min in Summary report
Fixes https://github.com/apache/jmeter/issues/6043
2023-07-12 16:20:25 +03:00
Milamber 8e612ec7cc
Add the 5.6.2 release 2023-07-11 17:07:22 +01:00
Milamber e663d1d585
prepare new version 5.6.2 2023-07-11 13:19:58 +01:00
Milamber f99eb5ea93
Add PR number and mention regression since JMeter 5.6. See #6041 2023-07-11 13:18:03 +01: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
Milamber 7a3d3e4c4a
Add the 5.6.1 release 2023-07-10 15:14:26 +01:00
Milamber 9f803e313a
Adding note for next Java supported version for next major release of JMeter 2023-07-04 10:45:03 +01:00
Vladimir Sitnikov ede7cb93f8 chore: trim dependencyManagement and optional dependencies from pom.xml
Fixes https://github.com/apache/jmeter/issues/6030
See https://github.com/gradle/gradle/issues/14936
2023-07-03 18:07:32 +03:00
Vladimir Sitnikov 4340b2a048 doc: update documentation for sampleresult.default.encoding default value
sampleresult.default.encoding defaults to DEFAULT_HTTP_ENCODING which moved
to UTF-8, so updating the documentation accordingly.

See https://github.com/apache/jmeter/issues/6005#issuecomment-1617473097
2023-07-03 10:16:57 +03:00
Vladimir Sitnikov c1a2a0c8fd fix: treat null or blank values as empty for saved properties
It turned out it was impossible to modify element while iterating over its
properties since ReentrantReadWriteLock is not upgradable in Java.

So this commit adds upgrading locks for writeLock paths

Fixes https://github.com/apache/jmeter/issues/6026
See https://www.javaspecialists.eu/archive/Issue279-Upgrading-ReadWriteLock.html>Issue279-Upgrading-ReadWriteLock
2023-07-01 11:09:25 +03:00
Milamber 2fcc6fd625
prepare new version 5.6.1 2023-06-29 16:33:10 +01:00
Vladimir Sitnikov 45db4c561b doc: update changelog for 5.6.1 2023-06-29 15:50:51 +03:00
Vladimir Sitnikov 3543bc4080 test: avoid HttpSamplerTest failure when platform default charset is not UTF-8
This fix is needed to workaround https://issues.apache.org/jira/browse/FILEUPLOAD-206
2023-06-29 12:44:02 +03:00
Vladimir Sitnikov 7450e4b049 fix: use UTF-8 as a default encoding in HTTP sampler
In PR 5987 HTTP sampler encoded filenames with percent encoding,
however, it should not encode all the characters.

Fixes https://github.com/apache/jmeter/issues/6005
This is a fixup to https://github.com/apache/jmeter/pull/5987
2023-06-29 11:18:55 +03:00
Mend Renovate 143ac9681a fix(deps): update org.checkerframework
Fixes https://github.com/apache/jmeter/pull/6023
2023-06-29 11:10:38 +03:00
Mend Renovate 5f2762c17b chore(deps): update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11
Fixes https://github.com/apache/jmeter/pull/6022
2023-06-29 11:07:27 +03:00
Vladimir Sitnikov cf5b41f1e1 doc: reduce severity from error to info when logging "JavaFX is missing" 2023-06-29 10:56:05 +03:00
Vladimir Sitnikov c6ea946334 style: fix raw type usage in TestElementPropertyConverter 2023-06-29 10:25:40 +03:00
Mend Renovate f55fd3a613 fix(deps): update com.google.errorprone to v2.20.0
Fixes https://github.com/apache/jmeter/pull/6020
2023-06-29 10:25:40 +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 e636ecffed fix(deps): update dependency checkstyle to v10.12.1 2023-06-29 09:10:33 +03:00
499 changed files with 10684 additions and 9230 deletions

View File

@ -6,5 +6,5 @@ jobs:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v1

View File

@ -27,7 +27,7 @@ jobs:
# Number of jobs to generate in matrix.js
MATRIX_JOBS: 4
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- id: set-matrix
run: |
node .github/workflows/matrix.js
@ -43,17 +43,17 @@ jobs:
fail-fast: false
# max-parallel: 4
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 50
- name: Set up Java ${{ matrix.java_version }}, oracle
if: ${{ matrix.oracle_java_website != '' }}
uses: oracle-actions/setup-java@1611a647972adb8b04779be3529a044d650fd510 # v1
uses: oracle-actions/setup-java@7a0114d66dbd02646abd345c3395b34c148e6126 # v1.3.2
with:
website: ${{ matrix.oracle_java_website }}
release: ${{ matrix.java_version }}
- name: Set up Java 17 and ${{ matrix.non_ea_java_version }}, ${{ matrix.java_distribution }}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
# The latest one will be the default, so we use Java 17 for launching Gradle
java-version: |
@ -62,7 +62,7 @@ jobs:
distribution: ${{ matrix.java_distribution }}
architecture: x64
- name: Steps to reproduce
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: |
console.log('The following command might help reproducing CI results, use Java ${{ matrix.java_version }}')
@ -84,17 +84,17 @@ jobs:
org.gradle.java.installations.auto-download=false
env:
_JAVA_OPTIONS: ${{ matrix.extraJvmArgs }}
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
errorprone:
name: 'Error Prone (JDK 11)'
name: 'Error Prone (JDK 17)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 'Set up JDK 11'
uses: actions/setup-java@v3
- uses: actions/checkout@v4
- name: 'Set up JDK 17'
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 17
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
@ -103,4 +103,4 @@ jobs:
multi-cache-enabled: false
arguments: --scan --no-parallel --no-daemon -PenableErrorprone classes
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

View File

@ -12,21 +12,22 @@ matrix.addAxis({
{value: 'liberica', vendor: 'bellsoft', weight: 1},
{value: 'microsoft', vendor: 'microsoft', weight: 1},
{value: 'oracle', vendor: 'oracle', weight: 1},
{value: 'semeru', vendor: 'ibm', weight: 4},
// There are issues running Semeru JDK with Gradle 8.5
// See https://github.com/gradle/gradle/issues/27273
// {value: 'semeru', vendor: 'ibm', weight: 4},
{value: 'temurin', vendor: 'eclipse', weight: 1},
{value: 'zulu', vendor: 'azul', weight: 1},
]
});
const eaJava = '21';
const eaJava = '22';
matrix.addAxis({
name: 'java_version',
// Strings allow versions like 18-ea
values: [
'8',
'11',
'17',
'21',
eaJava,
]
});
@ -77,27 +78,25 @@ matrix.setNamePattern(['java_version', 'java_distribution', 'hash', 'os', 'tz',
// Semeru uses OpenJ9 jit which has no option for making hash codes the same
matrix.exclude({java_distribution: {value: 'semeru'}, hash: {value: 'same'}});
// Semeru 8 fails when Semeru 17 is on the PATH (we use 17 for build)
matrix.exclude({java_distribution: {value: 'semeru'}, java_version: '8'});
// Microsoft Java has no distribution for 8
matrix.exclude({java_distribution: {value: 'microsoft'}, java_version: '8'});
// Oracle JDK is only supported for JDK 17 and later
matrix.exclude({java_distribution: {value: 'oracle'}, java_version: ['8', '11']});
// MacOS and Oracle Java does not work currently. No JAVA_HOME_${VERSION}_x64 set and thus no java found
matrix.exclude({os: 'macos-latest', java_distribution: {value: 'oracle'}})
// Ignore builds with JAVA EA for now, see https://github.com/apache/jmeter/issues/6114
matrix.exclude({java_version: eaJava})
matrix.imply({java_version: eaJava}, {java_distribution: {value: 'oracle'}})
// TODO: Semeru does not ship Java 21 builds yet
matrix.exclude({java_distribution: {value: 'semeru'}, java_version: '21'});
// Ensure at least one job with "same" hashcode exists
matrix.generateRow({hash: {value: 'same'}});
// Ensure at least one Windows and at least one Linux job is present (macOS is almost the same as Linux)
matrix.generateRow({os: 'windows-latest'});
// TODO: un-comment when xvfb will be possible
// matrix.generateRow({os: 'ubuntu-latest'});
// Ensure there will be at least one job with Java 8
matrix.generateRow({java_version: "8"});
// Ensure there will be at least one job with Java 11
matrix.generateRow({java_version: "11"});
// Ensure there will be at least one job with Java 17
matrix.generateRow({java_version: "17"});
// Ensure there will be at least one job with Java 21
matrix.generateRow({java_version: "21"});
// Ensure there will be at least one job with Java EA
matrix.generateRow({java_version: eaJava});
// matrix.generateRow({java_version: eaJava});
const include = matrix.generateRows(process.env.MATRIX_JOBS || 5);
if (include.length === 0) {
throw new Error('Matrix list is empty');
@ -110,15 +109,6 @@ include.forEach(v => {
`-Duser.country=${v.locale.country}`,
`-Duser.language=${v.locale.language}`,
];
if (v.hash.value === 'same' && v.java_version <= 8) {
// processSiteXslt fails with VerifyError when running with Java 8 and the same hashcode
// Skip the task in that case
//java.lang.VerifyError: (class: website_style, method: issue_separator signature: (Lcom/sun/org/apache/xala...)
// Illegal target of jump or branch
gradleArgs.push('-x :src:dist:processSiteXslt');
// javadoc tool seems take too much CPU when there are many hash collisions
gradleArgs.push('-x :src:dist:javadocAggregate');
}
v.extraGradleArgs = gradleArgs.join(' ');
});
include.forEach(v => {

View File

@ -17,7 +17,7 @@ jobs:
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- name: Update release body draft
uses: release-drafter/release-drafter@65c5fb495d1e69aa8c08a3317bc44ff8aabe9772 # v5
uses: release-drafter/release-drafter@09c613e259eb8d4e7c81c2cb00618eb5fc4575a7 # v5
id: prepare_release
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
with:

View File

@ -53,9 +53,8 @@ Optionally you can generate an Eclipse project by running
The steps to import the sources (based on Eclipse 2019-06) into Eclipse are as follows:
1. Install `Eclipse IDE for Java Developers`
1. Install the Groovy Eclipse plugin and select Groovy Compiler 2.4 (some tests are written in Groovy)
1. Install `Kotlin for Eclipse` plugin (builds scripts are written in Kotlin)
1. Make sure you have a Java 8 compatible JDK configured in your workspace
1. Install `Kotlin for Eclipse` plugin (JMeter code uses Java and Kotlin)
1. Make sure you have a Java 17 compatible JDK configured in your workspace
1. Open `File->Import...`
1. Select `Existing Gradle Project` and click `Next`
1. Read `How to experience the best Gradle integration` and click `Next`

2
NOTICE
View File

@ -1,5 +1,5 @@
Apache JMeter
Copyright 1998-2023 The Apache Software Foundation
Copyright 1998-2024 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

View File

@ -92,7 +92,7 @@ The following requirements exist for running Apache JMeter:
- Java Interpreter:
A fully compliant Java 8 Runtime Environment is required
A fully compliant Java 17 Runtime Environment is required
for Apache JMeter to execute. A JDK with `keytool` utility is better suited
for Recording HTTPS websites.

View File

@ -115,18 +115,19 @@ if [ -z "$JAVA_HOME" ]; then
JAVA_HOME="$JRE_HOME"
fi
#--add-opens if JAVA 9
JAVA9_OPTS=
# Module access for modern Java versions (required for JMeter components)
JAVA_OPTS="--add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED --add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED --add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED"
# Minimal version to run JMeter
MINIMAL_VERSION=8
MINIMAL_VERSION=17
# Check if version is from OpenJDK or Oracle Hotspot JVM prior to 9 containing 1.${version}.x
# Check if version meets the minimal requirement
CURRENT_VERSION=`"${JAVA_HOME}/bin/java" -version 2>&1 | awk -F'"' '/version/ {gsub("^1[.]", "", $2); gsub("[^0-9].*$", "", $2); print $2}'`
# Check if Java is present and the minimal version requirement
if [ "$CURRENT_VERSION" -gt "$MINIMAL_VERSION" ]; then
JAVA9_OPTS="--add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED --add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED --add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED"
# Check if Java is present and meets the minimal version requirement
if [ "$CURRENT_VERSION" -lt "$MINIMAL_VERSION" ]; then
echo "ERROR: Java version $CURRENT_VERSION is too low. JMeter requires Java $MINIMAL_VERSION or higher."
exit 1
fi
: "${JMETER_OPTS:=""}"
@ -169,15 +170,19 @@ esac
# Default to en_EN
: "${JMETER_LANGUAGE:="-Duser.language=en -Duser.region=EN"}"
# Uncomment this to generate GC verbose file with Java prior to 9
# VERBOSE_GC="-verbose:gc -Xloggc:gc_jmeter_%p.log -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps"
# Legacy GC verbose options removed (Java 8/9 support discontinued)
# Uncomment this to generate GC verbose file with Java 9 and above
# VERBOSE_GC="-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmeter_%p.log"
# Optimized GC logging for Java 17 with structured output and performance analysis
# Uncomment to enable comprehensive GC logging with rotation and detailed metrics
# VERBOSE_GC="-Xlog:gc,gc+heap,gc+regions,gc+refine,gc+phases:gc_jmeter_%p_%t.log:time,level,tags:filecount=5,filesize=50M"
# Alternative: Minimal GC logging for production (uncomment if needed)
# VERBOSE_GC="-Xlog:gc:gc_jmeter_%p.log:time"
# Docker support for Java 17+
# Modern container memory detection is automatic in Java 17+
# RUN_IN_DOCKER="-XX:+UseContainerSupport"
# Uncomment this if you run JMeter in DOCKER (need Java SE 8u131 or JDK 9)
# see https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
# RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
# Finally, some tracing to help in case things go astray:
# You may want to add those settings:
@ -191,7 +196,7 @@ SYSTEM_PROPS="-Djava.security.egd=file:/dev/urandom"
SERVER="-server"
if [ -z "${JMETER_COMPLETE_ARGS}" ]; then
ARGS="$JAVA9_OPTS $SERVER $DUMP $HEAP $VERBOSE_GC $GC_ALGO $SYSTEM_PROPS $JMETER_LANGUAGE $RUN_IN_DOCKER"
ARGS="$JAVA_OPTS $SERVER $DUMP $HEAP $VERBOSE_GC $GC_ALGO $SYSTEM_PROPS $JMETER_LANGUAGE $RUN_IN_DOCKER"
else
ARGS=""
fi

View File

@ -78,12 +78,19 @@ if not defined JMETER_LANGUAGE (
)
rem Minimal version to run JMeter
set MINIMAL_VERSION=1.8.0
set MINIMAL_VERSION=17.0.0
rem --add-opens if JAVA 9
set JAVA9_OPTS=
rem Optimized GC logging for Java 17 with structured output and performance analysis
rem Uncomment to enable comprehensive GC logging with rotation and detailed metrics
rem set VERBOSE_GC=-Xlog:gc,gc+heap,gc+regions,gc+refine,gc+phases:gc_jmeter_%%p_%%t.log:time,level,tags:filecount=5,filesize=50M
rem Alternative: Minimal GC logging for production (uncomment if needed)
rem set VERBOSE_GC=-Xlog:gc:gc_jmeter_%%p.log:time
rem Module access for modern Java versions (required for JMeter components)
set JAVA_OPTS=--add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED --add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED
for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
rem @echo Debug Output: %%g
@ -95,36 +102,24 @@ if not defined JAVAVER (
goto pause
)
rem Check if version is from OpenJDK or Oracle Hotspot JVM prior to 9 containing 1.${version}.x
rem JAVAVER will be equal to "9.0.4" (quotes are part of the value) for Oracle Java 9
rem JAVAVER will be equal to "1.8.0_161" (quotes are part of the value) for Oracle Java 8
rem so we extract 2 chars starting from index 1
IF "%JAVAVER:~1,2%"=="1." (
set JAVAVER=%JAVAVER:"=%
for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
set current_minor=%%w
)
) else (
rem Java 9 at least
set current_minor=9
set JAVA9_OPTS=--add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED --add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED
rem Extract major version number from Java version string
for /f "delims=. tokens=1" %%v in ("%JAVAVER:~1,-1%") do (
set current_major=%%v
)
for /f "delims=. tokens=1-3" %%v in ("%MINIMAL_VERSION%") do (
set minimal_minor=%%w
rem Extract minimal major version
for /f "delims=. tokens=1" %%v in ("%MINIMAL_VERSION%") do (
set minimal_major=%%v
)
if not defined current_minor (
if not defined current_major (
@echo Not able to find Java executable or version. Please check your Java installation.
set ERRORLEVEL=2
goto pause
)
rem @echo Debug: CURRENT=%current_minor% - MINIMAL=%minimal_minor%
if %current_minor% LSS %minimal_minor% (
@echo Error: Java version -- %JAVAVER% -- is too low to run JMeter. Needs a Java version greater than or equal to %MINIMAL_VERSION%
if %current_major% LSS %minimal_major% (
@echo Error: Java version -- %JAVAVER% -- is too low to run JMeter. Needs Java %MINIMAL_VERSION% or higher.
set ERRORLEVEL=3
goto pause
)
@ -151,13 +146,7 @@ if not defined HEAP (
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)
rem Uncomment this to generate GC verbose file with Java prior to 9
rem set VERBOSE_GC=-verbose:gc -Xloggc:gc_jmeter_%%p.log -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintAdaptiveSizePolicy
rem Uncomment this to generate GC verbose file with Java 9 and above
rem set VERBOSE_GC=-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmeter_%%p.log
rem You may want to add those settings
rem -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem
rem Legacy GC verbose options removed (Java 8/9 support discontinued)
if not defined GC_ALGO (
set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20
)
@ -167,9 +156,9 @@ set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
rem Always dump on OOM (does not cost anything unless triggered)
set DUMP=-XX:+HeapDumpOnOutOfMemoryError
rem Uncomment this if you run JMeter in DOCKER (need Java SE 8u131 or JDK 9)
rem see https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
rem set RUN_IN_DOCKER=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
rem Docker support for Java 17+
rem Modern container memory detection is automatic in Java 17+
rem set RUN_IN_DOCKER=-XX:+UseContainerSupport
rem Additional settings that might help improve GUI performance on some platforms
rem See: http://www.oracle.com/technetwork/java/perf-graphics-135933.html
@ -188,7 +177,7 @@ if not defined DDRAW (
rem Collect the settings defined above
if not defined JMETER_COMPLETE_ARGS (
set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%
set ARGS=%JAVA_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%
) else (
set ARGS=
)

View File

@ -807,7 +807,7 @@ wmlParser.types=text/vnd.wap.wml
# Database validation query
# based in https://stackoverflow.com/questions/10684244/dbcp-validationquery-for-different-databases list
jdbc.config.check.query=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS|select 1 from dual|select 1 from sysibm.sysdummy1|select 1|select 1 from rdb$database
jdbc.config.jdbc.driver.class=com.mysql.jdbc.Driver|org.postgresql.Driver|oracle.jdbc.OracleDriver|com.ingres.jdbc.IngresDriver|com.microsoft.sqlserver.jdbc.SQLServerDriver|com.microsoft.jdbc.sqlserver.SQLServerDriver|org.apache.derby.jdbc.ClientDriver|org.hsqldb.jdbc.JDBCDriver|com.ibm.db2.jcc.DB2Driver|org.apache.derby.jdbc.ClientDriver|org.h2.Driver|org.firebirdsql.jdbc.FBDriver|org.mariadb.jdbc.Driver|org.sqlite.JDBC|net.sourceforge.jtds.jdbc.Driver|com.exasol.jdbc.EXADriver
jdbc.config.jdbc.driver.class=com.mysql.cj.jdbc.Driver|com.mysql.jdbc.Driver|org.postgresql.Driver|oracle.jdbc.OracleDriver|com.ingres.jdbc.IngresDriver|com.microsoft.sqlserver.jdbc.SQLServerDriver|com.microsoft.jdbc.sqlserver.SQLServerDriver|org.apache.derby.jdbc.ClientDriver|org.hsqldb.jdbc.JDBCDriver|com.ibm.db2.jcc.DB2Driver|org.apache.derby.jdbc.ClientDriver|org.h2.Driver|org.firebirdsql.jdbc.FBDriver|org.mariadb.jdbc.Driver|org.sqlite.JDBC|net.sourceforge.jtds.jdbc.Driver|com.exasol.jdbc.EXADriver
#---------------------------------------------------------------------------
# OS Process Sampler configuration
@ -1101,8 +1101,8 @@ csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII
# List of extra HTTP methods that should be available in select box
#httpsampler.user_defined_methods=VERSION-CONTROL,REPORT,CHECKOUT,CHECKIN,UNCHECKOUT,MKWORKSPACE,UPDATE,LABEL,MERGE,BASELINE-CONTROL,MKACTIVITY
# The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1
# The encoding to be used if none is provided (default UTF-8 since JMeter 5.6.1)
#sampleresult.default.encoding=UTF-8
# CookieManager behaviour - should cookies with null/empty values be deleted?
# Default is true. Use false to revert to original behaviour

View File

@ -90,14 +90,17 @@ fi
JAVA9_OPTS=
# Minimal version to run JMeter
MINIMAL_VERSION=8
MINIMAL_VERSION=17
# Check if version is from OpenJDK or Oracle Hotspot JVM prior to 9 containing 1.${version}.x
CURRENT_VERSION=`"${JAVA_HOME}/bin/java" -version 2>&1 | awk -F'"' '/version/ {gsub("^1[.]", "", $2); gsub("[^0-9].*$", "", $2); print $2}'`
# Check if Java is present and the minimal version requirement
if [ "$CURRENT_VERSION" -gt "$MINIMAL_VERSION" ]; then
if [ "$CURRENT_VERSION" -ge "$MINIMAL_VERSION" ]; then
JAVA9_OPTS="--add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.swing=ALL-UNNAMED --add-opens java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED --add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED"
else
echo "JMeter requires Java $MINIMAL_VERSION or later. Current Java version is $CURRENT_VERSION"
exit 1
fi
# Don't add additional arguments to the JVM start, except those needed for Java 9

View File

@ -16,7 +16,7 @@
~ limitations under the License.
-->
<Configuration status="WARN" packages="org.apache.jmeter.gui.logging">
<Configuration status="WARN">
<Appenders>
<!-- Uncomment to set rotating logs up to 5 files of 100 MB-->

View File

@ -27,8 +27,8 @@ set JMETER_CMD_LINE_ARGS=%*
cd /D %~dp0
set CP=..\lib\ext\ApacheJMeter_http.jar;..\lib\ext\ApacheJMeter_core.jar;..\lib\jorphan.jar;..\lib\oro-2.0.8.jar
set CP=%CP%;..\lib\slf4j-api-1.7.25.jar;..\lib\jcl-over-slf4j-1.7.25.jar;..\lib\log4j-slf4j-impl-2.11.1.jar
set CP=%CP%;..\lib\log4j-api-2.11.1.jar;..\lib\log4j-core-2.11.1.jar;..\lib\log4j-1.2-api-2.11.1.jar
set CP=%CP%;..\lib\slf4j-api-1.7.36.jar;..\lib\jcl-over-slf4j-1.7.36.jar;..\lib\log4j-slf4j-impl-2.22.1.jar
set CP=%CP%;..\lib\log4j-api-2.22.1.jar;..\lib\log4j-core-2.22.1.jar;..\lib\log4j-1.2-api-2.22.1.jar
java -cp %CP% org.apache.jmeter.protocol.http.control.HttpMirrorServer %JMETER_CMD_LINE_ARGS%

View File

@ -22,7 +22,7 @@
cd "$(dirname "$0")" || exit 1
CP=../lib/ext/ApacheJMeter_http.jar:../lib/ext/ApacheJMeter_core.jar:../lib/jorphan.jar:../lib/oro-2.0.8.jar
CP=${CP}:../lib/slf4j-api-1.7.25.jar:../lib/jcl-over-slf4j-1.7.25.jar:../lib/log4j-slf4j-impl-2.11.0.jar
CP=${CP}:../lib/log4j-api-2.11.1.jar:../lib/log4j-core-2.11.1.jar:../lib/log4j-1.2-api-2.11.1.jar
CP=${CP}:../lib/slf4j-api-1.7.36.jar:../lib/jcl-over-slf4j-1.7.36.jar:../lib/log4j-slf4j-impl-2.22.1.jar
CP=${CP}:../lib/log4j-api-2.22.1.jar:../lib/log4j-core-2.22.1.jar:../lib/log4j-1.2-api-2.22.1.jar
java -cp $CP org.apache.jmeter.protocol.http.control.HttpMirrorServer "$@"

View File

@ -217,7 +217,7 @@
</li>
<li><a href="#syntheticResponseTimeDistribution" onClick="uncheckAll('choicesSyntheticResponseTimeDistribution');">Hide all samples</a>
</li>
<li><a href="#syntheticResponseTimeDistribution" onclick="exportToPNG('flotSyntheticResponseTimesDistribution', this);">Save as PNG</a></li>
<li><a href="#syntheticResponseTimeDistribution" onclick="exportToPNG('flotSyntheticResponseTimeDistribution', this);">Save as PNG</a></li>
</ul>
<button type="button" class="btn btn-link btn-xs dropdown-toggle" data-toggle="collapse" href="#bodySyntheticResponseTimeDistribution" aria-expanded="true" aria-controls="bodySyntheticResponseTimeDistribution">
<i class="fa fa-chevron-down"></i>

View File

@ -82,12 +82,12 @@ import org.apache.commons.io.FileUtils;
import org.apache.ftpserver.DataConnectionConfiguration;
import org.apache.ftpserver.DataConnectionConfigurationFactory;
FileUtils.deleteDirectory(new File(JMeterUtils.getJMeterHome(), &quot;bin/ftp_test&quot;));
new File(JMeterUtils.getJMeterHome(), &quot;bin/ftp_test&quot;).mkdir();
FileUtils.deleteDirectory(new File(JMeterUtils.getJMeterHome(), &quot;bin/temp/ftp_test&quot;));
new File(JMeterUtils.getJMeterHome(), &quot;bin/temp/ftp_test&quot;).mkdirs();
DataConnectionConfigurationFactory dataConnectionConfigurationFactory =
DataConnectionConfigurationFactory dataConnectionConfigurationFactory =
new DataConnectionConfigurationFactory();
dataConnectionConfigurationFactory.setPassivePorts(vars.get(&quot;passivePort&quot;));
dataConnectionConfigurationFactory.setPassivePorts(vars.get(&quot;passivePort&quot;));
DataConnectionConfiguration dataConnectionConfiguration = dataConnectionConfigurationFactory.createDataConnectionConfiguration();
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
@ -107,7 +107,7 @@ listenerFactory.setPort(Integer.parseInt(vars.get(&quot;port&quot;)));
FtpServerFactory factory = new FtpServerFactory();
factory.setUserManager(userManager);
factory.addListener(&quot;default&quot;, listenerFactory.createListener());
FtpServer server = factory.createServer();
server.start();
@ -145,7 +145,7 @@ props.put(&quot;FTP_SERVER&quot;, server);
<stringProp name="FTPSampler.server"></stringProp>
<stringProp name="FTPSampler.port"></stringProp>
<stringProp name="FTPSampler.filename">jmeter.properties</stringProp>
<stringProp name="FTPSampler.localfilename">ftp_test/jmeter-from-ftp-binary.properties</stringProp>
<stringProp name="FTPSampler.localfilename">temp/ftp_test/jmeter-from-ftp-binary.properties</stringProp>
<stringProp name="FTPSampler.inputdata"></stringProp>
<boolProp name="FTPSampler.binarymode">true</boolProp>
<boolProp name="FTPSampler.saveresponse">true</boolProp>
@ -168,7 +168,7 @@ props.put(&quot;FTP_SERVER&quot;, server);
<stringProp name="FTPSampler.server"></stringProp>
<stringProp name="FTPSampler.port"></stringProp>
<stringProp name="FTPSampler.filename">jmeter.properties</stringProp>
<stringProp name="FTPSampler.localfilename">ftp_test/jmeter-from-ftp-ascii.properties</stringProp>
<stringProp name="FTPSampler.localfilename">temp/ftp_test/jmeter-from-ftp-ascii.properties</stringProp>
<stringProp name="FTPSampler.inputdata"></stringProp>
<boolProp name="FTPSampler.binarymode">false</boolProp>
<boolProp name="FTPSampler.saveresponse">true</boolProp>
@ -190,8 +190,8 @@ props.put(&quot;FTP_SERVER&quot;, server);
<FTPSampler guiclass="FtpTestSamplerGui" testclass="FTPSampler" testname="FTP Request-put-text" enabled="true">
<stringProp name="FTPSampler.server"></stringProp>
<stringProp name="FTPSampler.port"></stringProp>
<stringProp name="FTPSampler.filename">ftp_test/jmeter-from-ftp-ascii-write.properties</stringProp>
<stringProp name="FTPSampler.localfilename">ftp_test/jmeter-from-ftp-ascii.properties</stringProp>
<stringProp name="FTPSampler.filename">temp/ftp_test/jmeter-from-ftp-ascii-write.properties</stringProp>
<stringProp name="FTPSampler.localfilename">temp/ftp_test/jmeter-from-ftp-ascii.properties</stringProp>
<stringProp name="FTPSampler.inputdata"></stringProp>
<boolProp name="FTPSampler.binarymode">false</boolProp>
<boolProp name="FTPSampler.saveresponse">true</boolProp>
@ -203,8 +203,8 @@ props.put(&quot;FTP_SERVER&quot;, server);
<FTPSampler guiclass="FtpTestSamplerGui" testclass="FTPSampler" testname="FTP Request-check-upload" enabled="true">
<stringProp name="FTPSampler.server"></stringProp>
<stringProp name="FTPSampler.port"></stringProp>
<stringProp name="FTPSampler.filename">ftp_test/jmeter-from-ftp-ascii-write.properties</stringProp>
<stringProp name="FTPSampler.localfilename">ftp_test/jmeter-from-ftp-ascii-write-tocheck.properties</stringProp>
<stringProp name="FTPSampler.filename">temp/ftp_test/jmeter-from-ftp-ascii-write.properties</stringProp>
<stringProp name="FTPSampler.localfilename">temp/ftp_test/jmeter-from-ftp-ascii-write-tocheck.properties</stringProp>
<stringProp name="FTPSampler.inputdata"></stringProp>
<boolProp name="FTPSampler.binarymode">false</boolProp>
<boolProp name="FTPSampler.saveresponse">true</boolProp>
@ -248,7 +248,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FileUtils;
FileUtils.deleteDirectory(new File(JMeterUtils.getJMeterHome(), &quot;bin/ftp_test&quot;));
FileUtils.deleteDirectory(new File(JMeterUtils.getJMeterHome(), &quot;bin/temp/ftp_test&quot;));
FtpServer server = (FtpServer) props.get(&quot;FTP_SERVER&quot;);
try {

View File

@ -10,7 +10,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2.html</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="1321" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="1321" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -29,7 +29,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/halfbanner.htm</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2_files/halfbanner.htm-1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="5421" sc="1" ec="0" ng="0" na="0">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2_files/halfbanner.htm-1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="5421" sc="1" ec="0" ng="0" na="0">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -46,7 +46,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/halfbanner.htm</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-3" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="8584" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-3" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="8584" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -55,7 +55,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/jakarta-logo.gif</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-4" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="8886" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-4" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="8886" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -64,7 +64,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/logo.jpg</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-5" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="3064" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-5" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="3064" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -73,7 +73,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/http-config-example.png</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-6" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="2395" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-6" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="2395" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -82,7 +82,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/scoping1.png</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-7" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="2641" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-7" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="2641" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>
@ -91,7 +91,7 @@
<queryString class="java.lang.String"></queryString>
<java.net.URL>file:testfiles/HTMLParserTestFile_2_files/scoping2.png</java.net.URL>
</httpSample>
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-8" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="" by="3260" sc="1" ec="0" ng="1" na="1">
<httpSample s="true" lb="file:testfiles/HTMLParserTestFile_2.html-8" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" de="UTF-8" by="3260" sc="1" ec="0" ng="1" na="1">
<responseHeader class="java.lang.String"></responseHeader>
<requestHeader class="java.lang.String"></requestHeader>
<responseFile class="java.lang.String"></responseFile>

View File

@ -23,7 +23,7 @@ JDBC_SELECT_LIMIT_RESULTSET_1,200,OK,TG-OK 1-1,text,true,1,1,1,0
JDBC_SELECT_LIMIT_RESULTSET_2,200,OK,TG-OK 1-1,text,true,1,1,1,0
JDBC_SELECT_LIMIT_RESULTSET_3,200,OK,TG-OK 1-1,text,true,1,1,1,0
JDBC_SELECT_LIMIT_RESULTSET_4,200,OK,TG-OK 1-1,text,true,1,1,1,0
JDBC_NoConfig,000,java.lang.IllegalArgumentException: Name for DataSoure must not be empty in JDBC_NoConfig,TG-Errors 2-1,text,true,1,1,1,0
JDBC_NoConfig,000,java.lang.IllegalArgumentException: Name for DataSource must not be empty in JDBC_NoConfig,TG-Errors 2-1,text,true,1,1,1,0
JDBC_Wrong_Sql,42581 -5581,java.sql.SQLSyntaxErrorException: unexpected token: WHERE,TG-Errors 2-1,text,true,1,1,1,0
JDBC_With_Failing_PreProcessor,200,OK,TG-Errors 2-1,text,true,1,1,1,0
JDBC_With_Failing_PostProcessor,200,OK,TG-Errors 2-1,text,true,1,1,1,0

1 label responseCode responseMessage threadName dataType success grpThreads allThreads SampleCount ErrorCount
23 JDBC_SELECT_LIMIT_RESULTSET_2 200 OK TG-OK 1-1 text true 1 1 1 0
24 JDBC_SELECT_LIMIT_RESULTSET_3 200 OK TG-OK 1-1 text true 1 1 1 0
25 JDBC_SELECT_LIMIT_RESULTSET_4 200 OK TG-OK 1-1 text true 1 1 1 0
26 JDBC_NoConfig 000 java.lang.IllegalArgumentException: Name for DataSoure must not be empty in JDBC_NoConfig java.lang.IllegalArgumentException: Name for DataSource must not be empty in JDBC_NoConfig TG-Errors 2-1 text true 1 1 1 0
27 JDBC_Wrong_Sql 42581 -5581 java.sql.SQLSyntaxErrorException: unexpected token: WHERE TG-Errors 2-1 text true 1 1 1 0
28 JDBC_With_Failing_PreProcessor 200 OK TG-Errors 2-1 text true 1 1 1 0
29 JDBC_With_Failing_PostProcessor 200 OK TG-Errors 2-1 text true 1 1 1 0

View File

@ -67,7 +67,7 @@ def user = &apos;SA&apos;
def password = &apos;&apos;
def driver = &apos;org.hsqldb.jdbcDriver&apos;
def sql = Sql.newInstance(url, user, password, driver)
def row = sql.firstRow(&apos;select count(*) from INFORMATION_SCHEMA.system_sessions&apos;)
def row = sql.firstRow(&apos;select count(*) from INFORMATION_SCHEMA.system_sessions&apos;)
def sessionNum = row[0]
try {
@ -164,7 +164,7 @@ sql.close()
title VARCHAR(50) NOT NULL,
author VARCHAR(20) NOT NULL,
submission_date DATE,
PRIMARY KEY (id)
PRIMARY KEY (id)
);
</stringProp>
@ -196,7 +196,7 @@ sql.close()
BEGIN ATOMIC
DECLARE result CURSOR FOR SELECT * FROM USERS WHERE ID = IDENTITY();
INSERT INTO USERS VALUES (DEFAULT, title, author, CURRENT_DATE);
OPEN result;
OPEN result;
END ;</stringProp>
<stringProp name="queryArguments"></stringProp>
<stringProp name="queryArgumentsTypes"></stringProp>
@ -225,7 +225,7 @@ sql.close()
MODIFIES SQL DATA DYNAMIC RESULT SETS 1
BEGIN ATOMIC
DECLARE result CURSOR FOR SELECT * FROM USERS order by id FOR READ ONLY;
OPEN result;
OPEN result;
END ;</stringProp>
<stringProp name="queryArguments"></stringProp>
<stringProp name="queryArgumentsTypes"></stringProp>
@ -1284,7 +1284,7 @@ if (list.size()==3) {
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="-1643270117">Name for DataSoure must not be empty in JDBC_NoConfig</stringProp>
<stringProp name="-1643270117">Name for DataSource must not be empty in JDBC_NoConfig</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_message</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>

View File

@ -340,7 +340,7 @@
<error>false</error>
</assertionResult>
</sample>
<sample s="true" lb="JDBC_NoConfig" rc="000" rm="java.lang.IllegalArgumentException: Name for DataSoure must not be empty in JDBC_NoConfig" tn="TG-Errors 2-1" dt="text" sc="1" ec="0" ng="1" na="1">
<sample s="true" lb="JDBC_NoConfig" rc="000" rm="java.lang.IllegalArgumentException: Name for DataSource must not be empty in JDBC_NoConfig" tn="TG-Errors 2-1" dt="text" sc="1" ec="0" ng="1" na="1">
<assertionResult>
<name>Response Assertion</name>
<failure>false</failure>

View File

@ -160,8 +160,8 @@
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>

View File

@ -932,7 +932,7 @@ mirrorServer.start();</stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="script">String textToCheck = &apos;Content-Disposition: form-data; name=&quot;?_param&quot;&apos;;
<stringProp name="script">String textToCheck = &apos;Content-Disposition: form-data; name=&quot;_param&quot;&apos;;
if(prev.getSamplerData().indexOf(textToCheck) &lt; 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage(&quot;Request does not contains &apos;&quot;+textToCheck+&quot;&apos;&quot;);
@ -1005,7 +1005,7 @@ if(prev.getSamplerData().indexOf(textToCheck) &lt; 0) {
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="-1049865380">nv_contentType</stringProp>
<stringProp name="817335912">text/plain</stringProp>
<stringProp name="1947100436">text/plain; charset=UTF-8</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>

View File

@ -30,3 +30,15 @@ dependencies {
// See https://github.com/gradle/gradle/issues/17016 regarding expectedKotlinDslPluginsVersion
implementation("org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:$expectedKotlinDslPluginsVersion")
}
// We need to figure out a version that is supported by the current JVM, and by the Kotlin Gradle plugin
// So we settle on 17 or 11 if the current JVM supports it
listOf(17, 11)
.firstOrNull { JavaVersion.toVersion(it) <= JavaVersion.current() }
?.let { buildScriptJvmTarget ->
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(buildScriptJvmTarget))
}
}
}

View File

@ -24,3 +24,15 @@ tasks.validatePlugins {
failOnWarning.set(true)
enableStricterValidation.set(true)
}
// We need to figure out a version that is supported by the current JVM, and by the Kotlin Gradle plugin
// So we settle on 17 or 11 if the current JVM supports it
listOf(17, 11)
.firstOrNull { JavaVersion.toVersion(it) <= JavaVersion.current() }
?.let { buildScriptJvmTarget ->
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(buildScriptJvmTarget))
}
}
}

View File

@ -19,6 +19,10 @@ tasks.withType<AbstractArchiveTask>().configureEach {
// Ensure builds are reproducible
isPreserveFileTimestamps = false
isReproducibleFileOrder = true
dirMode = "775".toInt(8)
fileMode = "664".toInt(8)
filePermissions {
unix("rw-r--r--")
}
dirPermissions {
unix("rwxr-xr-x")
}
}

View File

@ -21,5 +21,5 @@ plugins {
dependencies {
implementation("org.ajoberstar.grgit:grgit-gradle:4.1.1")
implementation("org.eclipse.jgit:org.eclipse.jgit:5.13.1.202206130422-r")
implementation("org.eclipse.jgit:org.eclipse.jgit:5.13.2.202306221912-r")
}

View File

@ -16,7 +16,7 @@
*/
plugins {
id("org.gradlex.build-parameters") version "1.4.3"
id("org.gradlex.build-parameters") version "1.4.4"
id("com.github.vlsi.gradle-extensions") version "1.90"
id("build-logic.kotlin-dsl-gradle-plugin")
}
@ -38,7 +38,7 @@ buildParameters {
description.set("Collect test coverage")
}
integer("targetJavaVersion") {
defaultValue.set(8)
defaultValue.set(17)
mandatory.set(true)
description.set("Java version for source and target compatibility")
}

View File

@ -11,6 +11,7 @@
<trusted-key id='8a10792983023d5d14c93b488d7f1bec1e2ecae7' group='com.fasterxml.woodstox' />
<trusted-key id='d112630c899f508198c09018105cb91cac2aee0e' group='com.github.autostyle' />
<trusted-key id='253e8e4c6fb28d11748115c1249dee8e2c07a0a2' group='com.github.javaparser' />
<trusted-key id='9857c388d7d1d9d031274cd0a5def5a76f94a471' group='com.github.spotbugs.snom' />
<trusted-key id='d112630c899f508198c09018105cb91cac2aee0e' group='com.github.vlsi.gradle' />
<trusted-key id='7616eb882daf57a11477aaf559a252fb1199d873' group='com.google.code.findbugs' />
<trusted-key id='afcc4c7594d09e2182c60e0f7a01b0f236e5430f' group='com.google.code.gson' />
@ -41,6 +42,7 @@
<trusted-key id='124dac8350968ec2a8260584ee8ecbbbc188fd5d' group='org.ajoberstar.grgit' />
<trusted-key id='8da70c00df7af1b0d2f9dc74ddbcc1270a29d081' group='org.apache.ant' />
<trusted-key id='12d16069219c90212a974d119ae296fd02e9f65b' group='org.apache.commons' />
<trusted-key id='41a1a08c62fca78b79d3081164a16faaec16a4be' group='org.apache.commons' />
<trusted-key id='0785b3eff60b1b1bea94e0bb7c25280eae63ebe5' group='org.apache.httpcomponents' />
<trusted-key id='08f0aab4d0c1a4bdde340765b341ddb020fcb6ab' group='org.bouncycastle' />
<trusted-key id='19beab2d799c020f17c69126b16698a4adf4d638' group='org.checkerframework' />
@ -50,6 +52,7 @@
<trusted-key id='6214760097dc5cfad0175ac2c9fbaa83a8753994' group='org.codehaus.woodstox' />
<trusted-key id='2e92113263fc31c74ccbaab20e91c2de43b72bb1' group='org.ec4j.core' />
<trusted-key id='7c669810892cbd3148fa92995b05ccde140c2876' group='org.eclipse.jgit' />
<trusted-key id='1bd97a6a154e7810ee0bc832e2f38302c8075e3d' group='org.gradle.kotlin' />
<trusted-key id='66d7cbff956830fe9f5a723afe6c7d77a1ce15a6' group='org.gradlex' />
<trusted-key id='4db1a49729b053caf015cee9a6adfc93ef34893e' group='org.hamcrest' />
<trusted-key id='2e3a1affe42b5f53af19f780bcf4173966770193' group='org.jetbrains' />
@ -76,14 +79,17 @@
<dependency group='de.marcphilipp.gradle' module='nexus-publish-plugin' version='0.4.0'>
<sha512>37EC6DFBDDD0458A2A341E371D038B3B0A25AB2F9006B295EBCF3BDE873A8D02C8CDAA6C69D875500F67593C618E8EF62C0269FB2F7F527A1367A7D6B8EA3CBE</sha512>
</dependency>
<dependency group='de.thetaphi' module='forbiddenapis' version='3.6'>
<sha512>B9D779B085611E8122FB1F30952E1DD1EE1456AF11EAED24F7182B73EFF1E648862912849F1CE53CD8CDA8313F7CDB2E88BA959C3868418359BB98E59CD2E5D7</sha512>
</dependency>
<dependency group='gradle.plugin.org.jetbrains.gradle.plugin.idea-ext' module='gradle-idea-ext' version='1.1.7'>
<sha512>B7B121AC6385206A03717E03A61C9514478934CF7E8BBDCD87BD2E8ECFC2DEB37B9B834DA34EAA14C16CA6F61DB6A4DCD1C89FEDEE22EEBDEF6EAE5423847CE1</sha512>
</dependency>
<dependency group='io.freefair.gradle' module='lombok-plugin' version='5.3.3.3'>
<sha512>750C97C7BE33EEF83B43A94E4342F978F5FDB0E4A523ABB408CC1E2111CE214CEC3A6177265618A8429FFB6C09A0E47070C68F2F046F3A6CCC0F5DD77D2E2ED0</sha512>
</dependency>
<dependency group='me.champeau.jmh' module='jmh-gradle-plugin' version='0.7.1'>
<sha512>D0B6A85CA7261FCEF0B2796F8FAD16C1044822AFE5ECD896B1103D7015FF690E806EC969B01150E9CA3FF96607AB53B6468ED2D5F3260C019CAE953B2291E7A4</sha512>
<dependency group='me.champeau.jmh' module='jmh-gradle-plugin' version='0.7.2'>
<sha512>E433E221C9167BB937EC0DF7626B5BBBE99E08C566A6D54BA7D2E04252DD452B4CA957B57E687F85F958DF0CE12678E17D0BCB527E1077770C8B7390CE58F56C</sha512>
</dependency>
<dependency group='net.ltgt.gradle' module='gradle-errorprone-plugin' version='3.1.0'>
<sha512>3D4753C1818615A894B33EB51E16A1D9F820D997EB1C3F2FFD0AC2345A0F587D53044C0BE1D9D6B776C1994D9AE3D7036064D4A801EF88D478D3D219F1964D1D</sha512>
@ -94,17 +100,14 @@
<dependency group='net.sf.json-lib' module='json-lib' version='2.3' classifier='jdk15'>
<sha512>ED6E95BF555AD3193B527258972DAFABD73745D993DA0CECE486E34A471D080850D201864026F4F41CA0982926C264C6E6CC55D91F000CDFD5D09EE3F306735C</sha512>
</dependency>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.26'>
<sha512>D72392AFFCF4F5147AC268D506341A2EBC5F96C6B43D2E8FE22EC1774228E3D60BF36FA21A81E17B2E5B0F64955012E8783645744D9C9C60196A55B7E810951D</sha512>
</dependency>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.27'>
<sha512>2FE56362DD1FD89C2183E7C27ED6AECAEE2795FABD3CE2849EAFC86D12AB2AF4346D80C30A25536556736D6092A369CFDE05D979E97B74267DC7D57DABBDD075</sha512>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.37'>
<sha512>52E8003B3CD07FFD3DFB8830F628904C24762003F65D10E002C4D2E84B7046C6B2ED66D69CE8A74AD6923E96868B3E08B3B404AA004ED36750B316B12BAEAF6D</sha512>
</dependency>
<dependency group='org.codehaus.groovy.modules.http-builder' module='http-builder' version='0.7.1'>
<sha512>BC7BC2A514F8CA104A392ECF8736F4A3D316EE988FA91299D33B0AF46134B38E14E4A5061449D17B2DF7A521643E6C02DFA37CC277ED7CAB7CE83C28C00E9719</sha512>
</dependency>
<dependency group='org.gradle.kotlin' module='gradle-kotlin-dsl-plugins' version='4.0.7'>
<sha512>2304C8B72245837B42332431311970083BF0E03CA13128808AD8B4739ECDCDC43BF089256F6ED29BFD31FE859DA76BBA3FB61737EF0B8A380C75AA67AF7A8382</sha512>
<dependency group='org.gradle.kotlin' module='gradle-kotlin-dsl-plugins' version='4.1.2'>
<sha512>B23C4355CBAB2098506528D196F6C9A71D4689F4A3334494B97D9F6D868883D429D851FC319761C25ACC86F0C4E02F028B33C1868B6EF7BA1246E3D79ADF1582</sha512>
</dependency>
<dependency group='org.jetbrains.kotlin' module='kotlin-gradle-plugin' version='1.8.10'>
<sha512>5BA8B33D023D112BCF170B49CF66610A1A3EB3DEBF0D028065E89AE40B23C55380D329B354E1698B44912FA78935294B9F7584AFA6FCE995F12CE1D1D0A329FC</sha512>
@ -112,12 +115,15 @@
<dependency group='org.jetbrains.kotlin' module='kotlin-gradle-plugin' version='1.8.21'>
<sha512>09D6B646399888DBD6498D24C2B6FABBEF49444FD0710E8F93FE266FFFD11A4A2C1CFEE3431D52AD03CA781E2EFAB60896DCA53AE56924AA0C48F9C85FCE66BB</sha512>
</dependency>
<dependency group='org.nosphere.apache' module='creadur-rat-gradle' version='0.8.0'>
<sha512>F9C0C770036768965D955BF849933DFA1B5805959D0C93C2C70DA31D67C200140CAC7B9B93CF28B3F86AA3A5993DD25D566E37B0C451264CB0F6F2B5CD88F760</sha512>
<dependency group='org.nosphere.apache' module='creadur-rat-gradle' version='0.8.1'>
<sha512>397C3257C5448C26304B312212F6DA1649AD15E52CE0419C5BA647F8A68864707A0C8071FA9860C28AA9D626D66C8FAF2D5F576E693F9D01B0F71EEEB84B57FB</sha512>
</dependency>
<dependency group='org.sonarsource.scanner.gradle' module='sonarqube-gradle-plugin' version='4.0.0.2929'>
<sha512>5CD9C5E9C91145E6F5FC1DA819F6241ADCE8685C6C71F480CB7F7F1D2ACFCDFD19C631E7DC2E9FDDEDBA840C6063A020A377644C80543A9E366DF65642F16F8C</sha512>
</dependency>
<dependency group='org.sonarsource.scanner.gradle' module='sonarqube-gradle-plugin' version='4.4.1.3373'>
<sha512>3FDE80F4F005B5BABF6F278C6B4C7BEA4A00603BF9C44C3026334BFBE0B64E1F767C92295614D6A5AEF61692844F0FE7DBB0F8119F58EABF522FCEC6904272E8</sha512>
</dependency>
<dependency group='xerces' module='xercesImpl' version='2.9.1'>
<sha512>37A13B129F3536A53F2A553151A53997DA6DE7CE4D7231EFEEFD26A68C92BE309666F2EE1F527D3B8C38BC6ADDC9FCCBBDD0D134759FD88667976B0CFF842435</sha512>
</dependency>

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGOtCzoBEAC7hGOPLFnfvQKzCZpJb3QYq8X9OiUL4tVa5mG0lDTeBBiuQCDy
Iyhpo8IypllGG6Wxj6ZJbhuHXcnXSu/atmtrnnjARMvDnQ20jX77B+g39ZYuqxgw
F/EkDYC6gtNUqzJ8IcxFMIQT+J6LCd3a/eTJWwDLUwSnGXVUPTXzYf4laSVdBDVp
jp6K+tDHQrLZ140DY4GSvT1SzcgR5+5C1Mda3XobIJNHe47AeZPzKuFzZSlKqvrX
QNexgGGjrEDWt9I3CXeNoOVVZvI2k6jAvUSZb+jN/YWpW+onDeV1S/7AUBaKE2TE
EJtidYIOuFsufSwLURwX0um17M47sgzxov9vZYDucGntZn4zKYcZsdkTTkrrgU7N
RSu90mqdL7rCxkUPsSeEUWFyhleGB108QBa5HiE/Z5T5C94kxD9JV1HAocFraTaZ
SrNr0dBvZH7SoLCUQZ6q3gXebLbLQgDSuApjn523927O1wdnig+xDgAqTP14sw9i
9OfvpNhCSolFL7mjGYKGfzTFo4pj5CzoKvvAXcsWY4HvwslWJvmrEqvo8Ss+YTII
fiRSL4DWurT+42yOoExPwcYNofNwEuyYy5Zr9edsXeodScvy/hlri3JuB3Ji142w
xFCuKUfrAh7hOw6QOXgIFyFXWrW0HH/8IoeJjxvG+6euxkGx8QZutyaY6wARAQAB
uQINBGOtCzoBEADSUdEj7dz3jsz4EObAdNXnZnJ5zAkqE4zbGtU94sXdBtxD1F++
5dTNE0ZCVwJLtZnYvxYXYwHBEDB5ZWS7noTL9rXkgXpDP5WGVLTYIMiGjPkVu2fW
ZZ78Tu4KIfRnkWdUoMQ2g7YNZ8cVU40cZlk63tRdt7Th71g+K/RKWdqh7NK0laua
lahK+Glped0QEo1TfrEhNgT0JUCwWzuM4qWHDys7itF++xLJsPSwS/wAUqvsWqGz
W/1KrYbbxgKX4vbrqL3jnk4IHvcKAub0uchLv9KR5QpsVT86TmOB3WsAAlPdosW/
ahAc2/XyiCxv5JEo8YpErBZ5TSgUy7lJNABS0JUVCeUCq/AAZ2TScOwRX8aXCeYA
SfRHOZCiWrWy5nMGGnXVs42MMIML9d+Hr37BCCFT3Gbw8WOTeGleE92sed5dBAjO
PyQWP+IvYxF7zOyNs46RAVlJfg3G33VwEBQgJwLSl/sUYqSHe9QubbxI0fiMsTJd
Z6/5fbsXVnMbGe4kQDZbDTgylotiHfMCMNefgb0+yA6Fw+EHQeN/v/AtpcpT0w12
AOpmlNy4+zPQE8Ai73gtJeTRpiuob3k1/JwvLHemB14CtxBGiHAyYHCjPqTPyQUI
ikj+R8mecG/60RfSmGe3HW7Hpt907BNEcc4s4V9uvJPHIJdZS/gmtSp5VQARAQAB
=on0Y
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
1bd97a6a154e7810ee0bc832e2f38302c8075e3d

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF09IUABEAC2p2RNMRu3DgovIw/OuG4BL101EzTepeoPzRbKll+/xtNiN270
ekSio9Of9nn7ZV0n4AH1nFM4iQqAC4KFZ74NrgJ+EeHoh3eZr7hyQ/TW7p0z4097
Dm+C9PbN6+7wf1sBdlaRwsQ+eNKkdkal7WGNXUX1YiUtof8WZZRkiqRFD+0Ldsnm
frJFKc3MPPWR0UC56JmqzMaN0XeiQvcDaoJJ6W8XLT4QbzwQMJVpA1wKyfMNodPO
kvJ7jOFNLuLA3a8hE/ZFrvMJgp6yziQoIxC+Rlim1AN0leLsfgjVU7TnqTS8Z8+B
i2LRwpJhLS/HbaiRsJbpXOr53GPiTuZTz78OIq30nqAg40O+NWghOX93DzB7j1xF
Aunzm/Z1VO76Feos3ORQJSB0PAQbLqCzAyyAu/xuF7DZuiobHB+b8ggZZRJEiEyL
O64YP5UBWn3sEM+VdNy+NZujqvNKXrehISk2GBdmAQFszJP9Ti5SZiw/L3z148fz
dERBs9s4k6iUsrbHzEtHvqxy29okKvQvW/PgsA1pImByndYBXCQQrl20giUQRxWa
mMEy5Zt8DEeG5/D5mRDeJk/sjTxRlFoFheFZX5NGPD3I4/P7um2L59Hu93oxlEqo
/OcAXDCr6s2lQjkEdeamUPzsGh6/4TKqdP/0wVgxZlDs0U9/iMoQPxwFUQARAQAB
uQINBF09IUABEADeGZ7xqPNpZ7v9VLQOmZvzuj498/TZ7qaL79o9pN4svEiSP1FI
O7ol3a7zHnwfHHvJyd76fo5lVlvRRtgqEfJeqzJASUbTQwPU5U/7cMEQhLhvNe0K
uhLcNInIpPdSmX0z0CS0vuCUCc59wXPangyXER1plkqtaQDq+R+giY5aXRqcmutT
DL4LW+lJYUIf0lybseVHNmgqRRKzIvD4aYowegHIKVEiBBxh826rrLmB78608/6+
alABLErpfflPTwyJnI56D77672fu6rXE5m21NiXsEcS5a4snP8QrxcpFkJbBvxmO
wgGuD8/6juOM263uCWmzt9Qrnj/ujA7RvwPlFXZSTTqmRchEPFTCeC/nRMNIImwR
DmbrHZkgqsGJhNvWba7f86DitCn5+5ne+PWi7gAK6w+mjWDtUHOOIpo6U0sEegUS
u6frHaE4U0dB2y+FxJCr2jhtuqNYjlsoFkBMNGCGKUj5zizbX5As2QR7PPtBeA2I
ZEha74CzdNx1tmBHAqIAmARDfy6iamAoh/yMuLCcOxV0ZN4qtweu4DmNuPFJBUZg
neDSfEYv2e9oIdVkjaMUZggfxeO5xUUoGaWZKTAemTAASx/wNef/T11D0jwxypTa
pGMgmPtiGormuHpN8+yJMSCSnns8DvVTHaU0d7kVv+EDcMe+RQzv8NnCPQARAQAB
=yQnj
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
9857c388d7d1d9d031274cd0a5def5a76f94a471

View File

@ -0,0 +1 @@
1bd97a6a154e7810ee0bc832e2f38302c8075e3d

View File

@ -0,0 +1,16 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFbqsT0BCADwERe1Rc9qNWwXOvwZHsjauVDy0TpqNVY8I3S+OYm4rX1dkjyh
+6bTEH1ys6bKevvR+PLhYzTGKboHnMT0RIINY/DQQSzHr/GRyCiiRlRvULbt9Fnz
kJJDgH2BcbNSmWJlrCqYk+E3GAyQial+szkEZED+02wXHsbs0z3vozjQGHy0RVOj
Gc5Shwk7Hr/F3vw9EQKa1nNffWmcGEx9B+WcC9ALPVd/fpQVXvlqfbi+kaIbqv2x
NHQr7BL8j3SpN6vhfZM/3zeghlxQ5HYWER983XwkmvbNdMxt5HWsMKWZ0utt4ocK
TnQP8NFGlPWEQhPvRRFNb9BI0wvGD0NUb1gjABEBAAG5AQ0EVuqxPQEIAOPl0cr0
rbuuaQWxwNjrHnfDgv9foBgqZW7tCiXtWFH7Va1leDFloszEPGPlEriw04iqHpHe
8QyUBVL6JhvNqEj8DR9xJyIKgsKCMkoJHdJOdO7aTQP8w7SVr7AX9sY9rRQAMYgk
tEKNqWSXm6/hzvNlvIudGXxr1dJzzVynZYlPFp9kmUmQU5ThzJ7DAW4fSnAy9z1a
bCGSHkh4EXrDwCyPvszlvMkg1djG0owZgDnTrrT0eu83T6uht+DHgCrLiEYqypcy
xJmK48O9t20feAhFXw091hGr51CD+C/bbZjcbXGmsNVuXUDUIIeVpSpPaUgU+i+O
gHY7ZIF5f3EpEnMAEQEAAQ==
=PkT4
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
41a1a08c62fca78b79d3081164a16faaec16a4be

View File

@ -0,0 +1 @@
41a1a08c62fca78b79d3081164a16faaec16a4be

View File

@ -0,0 +1 @@
9857c388d7d1d9d031274cd0a5def5a76f94a471

View File

@ -22,10 +22,10 @@ plugins {
dependencies {
api(projects.buildParameters)
api(projects.verification)
api("me.champeau.jmh:me.champeau.jmh.gradle.plugin:0.7.1")
api("me.champeau.jmh:me.champeau.jmh.gradle.plugin:0.7.2")
api("com.github.vlsi.crlf:com.github.vlsi.crlf.gradle.plugin:1.90")
api("com.github.vlsi.gradle-extensions:com.github.vlsi.gradle-extensions.gradle.plugin:1.90")
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.8.22")
api("org.jetbrains.kotlin.kapt:org.jetbrains.kotlin.kapt.gradle.plugin:1.8.22")
api("org.jetbrains.dokka:org.jetbrains.dokka.gradle.plugin:1.8.10")
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.22")
api("org.jetbrains.kotlin.kapt:org.jetbrains.kotlin.kapt.gradle.plugin:1.9.22")
api("org.jetbrains.dokka:org.jetbrains.dokka.gradle.plugin:1.9.10")
}

View File

@ -16,6 +16,7 @@
*/
import com.github.vlsi.gradle.dsl.configureEach
import org.jetbrains.kotlin.gradle.tasks.Kapt
plugins {
id("java-library")
@ -36,6 +37,11 @@ plugins.withId("org.jetbrains.kotlin.jvm") {
"kapt"(platform(it))
}
}
tasks.configureEach<Kapt> {
// Workaround for https://youtrack.jetbrains.com/issue/KT-45329/IDE-KAPT-Number-of-loaded-files-in-snapshots-differs-when-using-Run-with-Coverage-and-project-has-Java-and-Kotlin-targets-with
inputs.property("wa.to.trigger.full.recompilation", "1")
}
}
tasks.configureEach<Jar> {

View File

@ -37,19 +37,14 @@ java {
configureToolchain(buildParameters.buildJdk)
}
consistentResolution {
useCompileClasspathVersions()
useRuntimeClasspathVersions()
}
}
tasks.configureEach<JavaCompile> {
// Use --release=8 for Java 10+ so the generated bytecode does not include methods introduced in Java 9+
options.release.set(
provider {
buildParameters.targetJavaVersion.takeIf {
javaCompiler.get().metadata.languageVersion.asInt() > 9
}
}
)
// Use --release=<targetJavaVersion> for javac so the generated bytecode does not include methods introduced in
// next Java releases
options.release.set(buildParameters.targetJavaVersion)
}
tasks.configureEach<JavaExec> {
@ -77,6 +72,7 @@ dependencies {
findProject(":src:bom-thirdparty")?.let{
api(platform(it))
annotationProcessor(platform(it))
compileOnlyApi(platform(it))
}
}
@ -125,18 +121,14 @@ tasks.configureEach<Javadoc> {
docTitle = "Apache JMeter ${project.name} API"
windowTitle = "Apache JMeter ${project.name} API"
header = "<b>Apache JMeter</b>"
addStringOption("source", "8")
addStringOption("source", "17")
addStringOption("Xmaxwarns", "10")
addBooleanOption("Xdoclint:all,-missing", true)
val lastEditYear: String by rootProject.extra
bottom =
"Copyright &copy; 1998-$lastEditYear Apache Software Foundation. All Rights Reserved."
if (buildParameters.buildJdkVersion > 8) {
addBooleanOption("html5", true)
links("https://docs.oracle.com/en/java/javase/11/docs/api/")
} else {
links("https://docs.oracle.com/javase/8/docs/api/")
}
addBooleanOption("html5", true)
links("https://docs.oracle.com/en/java/javase/17/docs/api/")
}
}

View File

@ -15,7 +15,6 @@
* limitations under the License.
*/
import net.ltgt.gradle.errorprone.ErrorProneOptions
import net.ltgt.gradle.errorprone.errorprone
plugins {
@ -73,7 +72,7 @@ tasks.withType<JavaExec>().configureEach {
// At best jmh plugin should add the generated directories to the Gradle model, however,
// currently it builds the jar only :-/
// IntelliJ IDEA "execute main method" adds a JavaExec task, so we configure it
classpath(File(buildDir, "jmh-generated-classes"))
classpath(File(buildDir, "jmh-generated-resources"))
classpath(layout.buildDirectory.dir("jmh-generated-classes"))
classpath(layout.buildDirectory.dir("jmh-generated-resources"))
}
}

View File

@ -19,10 +19,6 @@ plugins {
id("build-logic.java-library")
}
if (file("src/main/groovy").isDirectory || file("src/test/groovy").isDirectory) {
apply(plugin = "build-logic.groovy")
}
if (file("src/main/kotlin").isDirectory || file("src/test/kotlin").isDirectory) {
apply(plugin = "build-logic.kotlin")
}

View File

@ -48,18 +48,8 @@ tasks.configureEach<KotlinCompile> {
apiVersion = "kotlin.api".v
}
freeCompilerArgs += "-Xjvm-default=all"
val jdkRelease = buildParameters.targetJavaVersion.let {
when {
it < 9 -> "1.8"
else -> it.toString()
}
}
// jdk-release requires Java 9+
buildParameters.buildJdkVersion
.takeIf { it > 8 }
?.let {
freeCompilerArgs += "-Xjdk-release=$jdkRelease"
}
val jdkRelease = buildParameters.targetJavaVersion.toString()
freeCompilerArgs += "-Xjdk-release=$jdkRelease"
kotlinOptions.jvmTarget = jdkRelease
}
}

View File

@ -61,20 +61,4 @@ tasks.configureEach<Test> {
passProperty("skip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server")
// Enable testing ByteBuddy with EA Java versions
passProperty("net.bytebuddy.experimental", "true")
// Spock tests use cglib proxies that access ClassLoader.defineClass reflectively,
// So we pass --add-opens
// See https://github.com/apache/jmeter/pull/5763
jvmArgumentProviders += AddOpensArgumentsProvider(javaLauncher.map { it.metadata.languageVersion })
}
class AddOpensArgumentsProvider(
@Input val javaLanguageVersion: Provider<JavaLanguageVersion>
): CommandLineArgumentProvider {
override fun asArguments(): Iterable<String> =
if (javaLanguageVersion.get().asInt() <= 8) {
// Jave 1.8 does not need add-opens, so we omit it
listOf()
} else {
listOf("--add-opens=java.base/java.lang=ALL-UNNAMED")
}
}

View File

@ -23,10 +23,14 @@ plugins {
}
dependencies {
testImplementation("junit:junit")
testImplementation("org.junit.jupiter:junit-jupiter")
testImplementation("org.hamcrest:hamcrest")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine")
}
plugins.withId("java-test-fixtures") {
dependencies {
"testFixturesImplementation"("org.junit.jupiter:junit-jupiter")
}
}
tasks.configureEach<Test> {

View File

@ -1,46 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
`java-library`
id("build-logic.test-base")
}
dependencies {
testImplementation("org.spockframework:spock-core")
testRuntimeOnly("cglib:cglib-nodep") {
because(
"""
org.spockframework.mock.CannotCreateMockException: Cannot create mock for
class org.apache.jmeter.report.processor.AbstractSummaryConsumer${'$'}SummaryInfo.
Mocking of non-interface types requires a code generation library.
Please put an up-to-date version of byte-buddy or cglib-nodep on the class path.
""".trimIndent()
)
}
testRuntimeOnly("org.objenesis:objenesis") {
because(
"""
org.spockframework.mock.CannotCreateMockException: Cannot create mock for
class org.apache.jmeter.report.core.Sample. To solve this problem,
put Objenesis 1.2 or higher on the class path (recommended),
or supply constructor arguments (e.g. 'constructorArgs: [42]') that allow to construct
an object of the mocked type.
""".trimIndent()
)
}
}

View File

@ -26,17 +26,21 @@ java {
withSourcesJar()
}
val archivesBaseName = when (name) {
// We maintain the file names for backward compatibility
val archiveName = when (name) {
"jorphan", "bshclient" -> name
"launcher" -> "ApacheJMeter"
else -> "ApacheJMeter_$name"
}
setProperty("archivesBaseName", archivesBaseName)
base {
archivesName = archiveName
}
publishing {
publications {
create<MavenPublication>("mavenJava") {
artifactId = archivesBaseName
artifactId = archiveName
from(components["java"])
}
}

View File

@ -21,13 +21,16 @@ plugins {
id("build-logic.publish-to-central")
}
val archivesBaseName = "ApacheJMeter_$name"
setProperty("archivesBaseName", archivesBaseName)
val archiveName = "ApacheJMeter_$name"
base {
archivesName = archiveName
}
publishing {
publications {
create<MavenPublication>("mavenJavaPlatform") {
artifactId = archivesBaseName
artifactId = archiveName
from(components["javaPlatform"])
}
}

View File

@ -1,3 +1,7 @@
import groovy.util.Node
import groovy.util.NodeList
import java.lang.IllegalStateException
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@ -40,11 +44,35 @@ publishing {
plugins.withId("java") {
versionMapping {
usage(Usage.JAVA_API) {
fromResolutionOf("runtimeClasspath")
fromResolutionResult()
}
}
}
pom {
withXml {
val pom = asNode()
// Gradle maps test fixtures to optional=true, so we remove those elements form the POM to avoid
// confusion
// See https://github.com/gradle/gradle/issues/14936
// See https://github.com/apache/jmeter/issues/6030
val dependencies = pom["dependencies"] as NodeList
for (dependenciesNode in dependencies) {
dependenciesNode as Node
for (dependency in (dependenciesNode["dependency"] as NodeList)) {
dependency as Node
if ((dependency["optional"] as NodeList).firstOrNull()?.let { it as? Node }
?.text() == "true") {
dependenciesNode.remove(dependency)
continue
}
if ((dependency["version"] as NodeList).isEmpty()) {
throw IllegalStateException(
"Generated pom.xml contains a dependency without <version> for dependency ${dependency}. " +
"Technically speaking, the version is not mandatory, however, having explicit versions would make it easier to review the dependencies in pom")
}
}
}
}
name.set("Apache JMeter ${project.name.replaceFirstChar { it.titlecaseChar() }}")
// This code might be executed before project-related build.gradle.kts is evaluated
// So we delay access to project.description

View File

@ -20,12 +20,17 @@ plugins {
}
dependencies {
constraints {
api("xerces:xercesImpl:2.12.1") {
because("Some of the plugins might depend on an older version, and we want using a more recent one")
}
}
api(projects.buildParameters)
api(projects.verification)
api("com.github.vlsi.crlf:com.github.vlsi.crlf.gradle.plugin:1.90")
api("com.github.vlsi.ide:com.github.vlsi.ide.gradle.plugin:1.90")
api("com.github.vlsi.gradle-extensions:com.github.vlsi.gradle-extensions.gradle.plugin:1.90")
api("org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin:0.8.0")
api("org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin:0.8.1")
api("org.jetbrains.gradle.plugin.idea-ext:org.jetbrains.gradle.plugin.idea-ext.gradle.plugin:1.1.7")
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.8.22")
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.22")
}

View File

@ -23,12 +23,12 @@ dependencies {
api(projects.basics)
api(projects.buildParameters)
api("com.github.autostyle:com.github.autostyle.gradle.plugin:3.2")
api("com.github.spotbugs:com.github.spotbugs.gradle.plugin:5.0.14")
api("com.github.spotbugs:com.github.spotbugs.gradle.plugin:6.0.4")
api("com.github.vlsi.ide:com.github.vlsi.ide.gradle.plugin:1.90")
api("com.github.vlsi.gradle-extensions:com.github.vlsi.gradle-extensions.gradle.plugin:1.90")
api("de.thetaphi.forbiddenapis:de.thetaphi.forbiddenapis.gradle.plugin:3.5.1")
api("de.thetaphi.forbiddenapis:de.thetaphi.forbiddenapis.gradle.plugin:3.6")
api("net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:3.1.0")
api("org.checkerframework:org.checkerframework.gradle.plugin:0.6.27")
api("org.checkerframework:org.checkerframework.gradle.plugin:0.6.37")
api("org.jetbrains.gradle.plugin.idea-ext:org.jetbrains.gradle.plugin.idea-ext.gradle.plugin:1.1.7")
api("org.sonarqube:org.sonarqube.gradle.plugin:4.0.0.2929")
api("org.sonarqube:org.sonarqube.gradle.plugin:4.4.1.3373")
}

View File

@ -33,7 +33,7 @@ dependencies {
"checkerFrameworkAnnotatedJDK"("org.checkerframework:jdk8:$checkerframeworkVersion")
}
} ?: run {
val checkerframeworkVersion = "3.34.0"
val checkerframeworkVersion = "3.42.0"
"checkerFramework"("org.checkerframework:checker:$checkerframeworkVersion")
if (buildParameters.buildJdkVersion == 8) {
// only needed for JDK 8

View File

@ -23,10 +23,21 @@ plugins {
id("checkstyle")
}
configurations.checkstyle {
// See https://github.com/gradle/gradle/issues/27035#issuecomment-1814997295
// TODO: remove the workaround as https://github.com/checkstyle/checkstyle/issues/14123 is resolved
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
select("com.google.guava:guava:0")
}
}
checkstyle {
toolVersion = "10.11.0"
// TOOD: move to /config
val configDir = File(rootDir, "config/checkstyle")
toolVersion = "10.12.6"
configProperties = mapOf(
"cache_file" to buildDir.resolve("checkstyle/cacheFile")
"cache_file" to layout.buildDirectory.dir("checkstyle/cacheFile").get().asFile.relativeTo(configDir)
)
providers.gradleProperty("checkstyle.version")
@ -34,8 +45,7 @@ checkstyle {
?.let { toolVersion = it.get() }
isShowViolations = true
// TOOD: move to /config
val configDir = File(rootDir, "config/checkstyle")
configDirectory.set(configDir)
configFile = configDir.resolve("checkstyle.xml")
}

View File

@ -29,7 +29,7 @@ if (buildParameters.enableErrorprone) {
apply(plugin = "net.ltgt.errorprone")
dependencies {
"errorprone"("com.google.errorprone:error_prone_core:2.19.1")
"errorprone"("com.google.errorprone:error_prone_core:2.24.0")
"annotationProcessor"("com.google.guava:guava-beta-checker:1.0")
}

View File

@ -21,7 +21,7 @@ plugins {
}
jacoco {
toolVersion = "0.8.10"
toolVersion = "0.8.12"
providers.gradleProperty("jacoco.version")
.takeIf { it.isPresent }
?.let { toolVersion = it.get() }

View File

@ -40,6 +40,8 @@ sonar {
property("sonar.links.ci", "https://builds.apache.org/job/JMeter-trunk/")
property("sonar.links.scm", "https://jmeter.apache.org/svnindex.html")
property("sonar.links.issue", "https://jmeter.apache.org/issues.html")
// Skip dependency of Sonar task on compilation tasks
property("sonar.gradle.skipCompile", "true")
}
}

View File

@ -27,7 +27,7 @@ plugins {
spotbugs {
// Below statement is for Renovate Bot since it does not support toolVersion.set("..") pattern yet
val toolVersion = "4.7.3"
val toolVersion = "4.8.3"
this.toolVersion.set(toolVersion)
providers.gradleProperty("spotbugs.version")

View File

@ -26,6 +26,8 @@
<trusted-key id='a4fd709cc4b0515f2e6af04e218fa0f6a941a037' group='com.github.kevinstern' />
<trusted-key id='160a7a9cf46221a56b06ad64461a804f2609fd89' group='com.github.shyiko.klob' />
<trusted-key id='9857c388d7d1d9d031274cd0a5def5a76f94a471' group='com.github.spotbugs' />
<trusted-key id='9857c388d7d1d9d031274cd0a5def5a76f94a471' group='com.github.spotbugs.snom' />
<trusted-key id='042b29e928995b9db963c636c7ca19b7b620d787' group='com.github.stephenc.jcip' />
<trusted-key id='e05f005af50ae94e69701222b9729775c0352d3a' group='com.github.tomakehurst' />
<trusted-key id='d112630c899f508198c09018105cb91cac2aee0e' group='com.github.vlsi.gradle' />
<trusted-key id='b0255b26003ef6f82491acd7254e9c64c264c176' group='com.github.weisj' />
@ -37,6 +39,7 @@
<trusted-key id='7616eb882daf57a11477aaf559a252fb1199d873' group='com.google.code.findbugs' />
<trusted-key id='afcc4c7594d09e2182c60e0f7a01b0f236e5430f' group='com.google.code.gson' />
<trusted-key id='c7be5bcc9fec15518cfda882b0f3710fa64900e7' group='com.google.code.gson' />
<trusted-key id='187366a3ffe6bf8f94b9136a9987b20c8f6a3064' group='com.google.errorprone' />
<trusted-key id='7615ad56144df2376f49d98b1669c4bb543e0445' group='com.google.errorprone' />
<trusted-key id='e77417ac194160a3fabd04969a259c7ee636c5ed' group='com.google.errorprone' />
<trusted-key id='ee0ca873074092f806f59b65d364abaa39a47320' group='com.google.errorprone' />
@ -47,6 +50,7 @@
<trusted-key id='d5f46bc0b86af5dc56df58f05e975cb00c643dbf' group='com.google.inject' />
<trusted-key id='b801e2f8ef035068ec1139cc29579f18fa8fd93b' group='com.google.j2objc' />
<trusted-key id='eb1b3de71713c9ec2e87cc26ee92349ad86de446' group='com.google.j2objc' />
<trusted-key id='187366a3ffe6bf8f94b9136a9987b20c8f6a3064' group='com.google.protobuf' />
<trusted-key id='d75e25b78ebb19e47c0a99bca7764f502a938c99' group='com.google.protobuf' />
<trusted-key id='f1a51e051f527e0c8e24d54d4b1e11d5a4b91e89' group='com.google.protobuf' />
<trusted-key id='a9789342f598ad5b1175ef357eb97d110dfadd60' group='com.googlecode.concurrent-trees' />
@ -76,6 +80,7 @@
<trusted-key id='636de9055c4c75c7bd9830771241bc872c5e4ec0' group='commons-lang' />
<trusted-key id='d196a5e3e70732eeb2e5007f1861c322c56014b2' group='commons-lang' />
<trusted-key id='0cc641c3a62453ab390066c4a41f13c999945293' group='commons-logging' />
<trusted-key id='2db4f1ef0fa761ecc4ea935c86fdc7e2a11262cb' group='commons-logging' />
<trusted-key id='b920d295bf0e61cb4cf0896c33cd6733af5ec452' group='commons-logging' />
<trusted-key id='2db4f1ef0fa761ecc4ea935c86fdc7e2a11262cb' group='commons-net' />
<trusted-key id='0186f8b24c5bc02c94a0e0e486f75e83e1ee085f' group='de.thetaphi' />
@ -85,9 +90,11 @@
<trusted-key id='aa417737bd805456db3cbdde6601e5c08dccbb96' group='info.picocli' />
<trusted-key id='c62c0ce2e5c346b2d9bf2d8bb2ca0dfe9ed21c6e' group='io.burt' />
<trusted-key id='1ab9bdf40ed49debb5caaded5b30d3b10694f057' group='io.codearte.gradle.nexus' />
<trusted-key id='7186bbf993566d8c2f4f7ed7d945e643368fef62' group='io.github.eisop' />
<trusted-key id='d477d51812e692011db11e66a6ea2e2bf22e0543' group='io.github.java-diff-utils' />
<trusted-key id='e52567d2589415bd74eb4c2867631bc0568801c3' group='io.github.microutils' />
<trusted-key id='050a37a2e0577f4baa095b52602ec18d20c4661c' group='io.github.x-stream' />
<trusted-key id='59b06224fd8912e36603be79fefe78456eddc34a' group='io.mockk' />
<trusted-key id='6dd3b8c64ef75253beb2c53ad908a43fb7ec07ac' group='jakarta.activation' />
<trusted-key id='a1483f88ba771993ab609c43590c2310cee1c9be' group='jakarta.jms' />
<trusted-key id='fc411cd3cb7dcb0abc9801058118b3bcdb1a5000' group='jakarta.xml.bind' />
@ -116,12 +123,15 @@
<trusted-key id='b01128c8fd304fe48e6eed2c347cd0eaed975c5f' group='org.antlr' />
<trusted-key id='dddee87612e9fb95f5c8d91e411063a3a0ffd119' group='org.apache-extras.beanshell' />
<trusted-key id='1aa8cf92d409a73393d0b736bff2ee42c8282e76' group='org.apache.activemq' />
<trusted-key id='0a123c1ed3f13a6a0140e166c71fb765cd9de313' group='org.apache.ant' />
<trusted-key id='8da70c00df7af1b0d2f9dc74ddbcc1270a29d081' group='org.apache.ant' />
<trusted-key id='2db4f1ef0fa761ecc4ea935c86fdc7e2a11262cb' group='org.apache.bcel' />
<trusted-key id='12d16069219c90212a974d119ae296fd02e9f65b' group='org.apache.commons' />
<trusted-key id='2db4f1ef0fa761ecc4ea935c86fdc7e2a11262cb' group='org.apache.commons' />
<trusted-key id='3692c12c7e3d336a452beb254e066e0459cd109b' group='org.apache.commons' />
<trusted-key id='41a1a08c62fca78b79d3081164a16faaec16a4be' group='org.apache.commons' />
<trusted-key id='4e2ddd47e19863bb87211544cd3038fef07d567e' group='org.apache.commons' />
<trusted-key id='b6e73d84ea4fcc47166087253faad2cd5ecbb314' group='org.apache.commons' />
<trusted-key id='ce8075a251547bee249bc151a2115ae15f6b8b72' group='org.apache.commons' />
<trusted-key id='d6f1bc78607808ec8e9f69437a8860944fad5f62' group='org.apache.commons' />
<trusted-key id='4d2db2916149baa9d0c92f3731474e5e7c6b7034' group='org.apache.ftpserver' />
@ -129,11 +139,14 @@
<trusted-key id='0785b3eff60b1b1bea94e0bb7c25280eae63ebe5' group='org.apache.httpcomponents' />
<trusted-key id='0785b3eff60b1b1bea94e0bb7c25280eae63ebe5' group='org.apache.httpcomponents.client5' />
<trusted-key id='0785b3eff60b1b1bea94e0bb7c25280eae63ebe5' group='org.apache.httpcomponents.core5' />
<trusted-key id='077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0' group='org.apache.logging.log4j' />
<trusted-key id='53c935821aa6a755bd337db53595395eb3d8e1ba' group='org.apache.logging.log4j' />
<trusted-key id='fa77dcfef2ee6eb2debedd2c012579464d01c06a' group='org.apache.maven.doxia' />
<trusted-key id='4d2db2916149baa9d0c92f3731474e5e7c6b7034' group='org.apache.mina' />
<trusted-key id='6bfab2e3c6490b421b25c76c9c8c892f91f8e6d1' group='org.apache.rat' />
<trusted-key id='184454fad8697760f3e00d2e4a51a45b944ffd51' group='org.apache.tika' />
<trusted-key id='7b9751fc3f01f134f476464cd0eb627d4885ced1' group='org.apache.velocity' />
<trusted-key id='223d3a74b068eca354dc385ce126833f9cf64915' group='org.apache.xbean' />
<trusted-key id='82d8419ba697f0e7fb85916ee91287822fdb81b1' group='org.apache.xbean' />
<trusted-key id='c758f9cc982ac877e7b295dd6e97418b04b11dcb' group='org.apache.xbean' />
<trusted-key id='5c9a30ff22b2c02f30261c305b93f1df7cdb6dea' group='org.apache.xmlgraphics' />
@ -145,6 +158,8 @@
<trusted-key id='7faa0f2206de228f0db01ad741321490758aad6f' group='org.codehaus.groovy' />
<trusted-key id='82f833963889d7ed06f1e4dc6525fd70cc303655' group='org.codehaus.mojo' />
<trusted-key id='f254b35617dc255d9344bcfa873a8e86b4372146' group='org.codehaus.mojo' />
<trusted-key id='b02137d875d833d9b23392ecae5a7fb608a0221c' group='org.codehaus.plexus' />
<trusted-key id='fa77dcfef2ee6eb2debedd2c012579464d01c06a' group='org.codehaus.plexus' />
<trusted-key id='6214760097dc5cfad0175ac2c9fbaa83a8753994' group='org.codehaus.woodstox' />
<trusted-key id='8f9a3c6d105b9f57844a721d79e193516be7998f' group='org.dom4j' />
<trusted-key id='2e92113263fc31c74ccbaab20e91c2de43b72bb1' group='org.ec4j.core' />
@ -156,6 +171,7 @@
<trusted-key id='1def9646901a1652e5b3e5ea694db6f419c8d1fd' group='org.exparity' />
<trusted-key id='13ac2213964abe1d1c147c0e1939a2520bab1d90' group='org.freemarker' />
<trusted-key id='e5b8247af8a619a28f90fdfc9ff25980f5ba7e4f' group='org.fusesource.hawtbuf' />
<trusted-key id='1bd97a6a154e7810ee0bc832e2f38302c8075e3d' group='org.gradle.kotlin' />
<trusted-key id='4db1a49729b053caf015cee9a6adfc93ef34893e' group='org.hamcrest' />
<trusted-key id='e3a9f95079e84ce201f7cf60bede11eaf1164480' group='org.hamcrest' />
<trusted-key id='d76260c72df74e66268f7770ab049df4ab24c1ef' group='org.hsqldb' />
@ -195,7 +211,6 @@
<trusted-key id='60200ac4ae761f1614d6c46766d68daa073be985' group='org.slf4j' />
<trusted-key id='2b1042677fd8190c7b9fc0dc2161d72e7dcd4258' group='org.sonarsource.scanner.api' />
<trusted-key id='f1182e81c792928921dbcab4cfca4a29d26468de' group='org.sonarsource.scanner.api' />
<trusted-key id='76e94e8ff0ab5af3b6f8366972fefd1572eb75e1' group='org.spockframework' />
<trusted-key id='8756c4f765c9ac3cb6b85d62379ce192d401ab61' group='org.springframework' />
<trusted-key id='e2acb037933cdeaab7bf77d49a2c7a98e457c53d' group='org.springframework' />
<trusted-key id='7cd52b5a8295137c88fb5748dddafa7674e54418' group='org.testng' />
@ -235,12 +250,18 @@
<dependency group='com.github.vlsi.gradle' module='stage-vote-release-plugin' version='1.85'>
<sha512>2F70DA03A8F8ECF0F92C7B8B219321DFE9C8926DC55BF343662B043F277C7F63090B1B7E06F963606D9D9228E3FA4245393E2D3773DFD3D059136EB65D2E7998</sha512>
</dependency>
<dependency group='com.google.collections' module='google-collections' version='1.0'>
<sha512>5741BCDF5C2D54DAA53A60972D61D0FB3ACB68A31AB4A913832DE71C47B4ABD59B85E760A335D7EFDE55D4E309824839B09F9224A43C124BD54C634A87A9B7F7</sha512>
</dependency>
<dependency group='commons-logging' module='commons-logging' version='1.0.4'>
<sha512>C8D2D39A60ADCC49091D393DAF30473D1776E4B6B09BB86639171F660833A17AFBDC9F3E85843093535DA16FA664CD7CD4CA38F54E141018DD1B78DE681AD668</sha512>
</dependency>
<dependency group='de.marcphilipp.gradle' module='nexus-publish-plugin' version='0.4.0'>
<sha512>37EC6DFBDDD0458A2A341E371D038B3B0A25AB2F9006B295EBCF3BDE873A8D02C8CDAA6C69D875500F67593C618E8EF62C0269FB2F7F527A1367A7D6B8EA3CBE</sha512>
</dependency>
<dependency group='de.thetaphi' module='forbiddenapis' version='3.6'>
<sha512>B9D779B085611E8122FB1F30952E1DD1EE1456AF11EAED24F7182B73EFF1E648862912849F1CE53CD8CDA8313F7CDB2E88BA959C3868418359BB98E59CD2E5D7</sha512>
</dependency>
<dependency group='gradle.plugin.com.github.spotbugs.snom' module='spotbugs-gradle-plugin' version='4.5.0'>
<sha512>36557C04B8FC7DC446B5FBDD6383A1B7281708B424C3039E7EC11807F3BB9A5E2764BE4BEC1D717C38595B12D8B291CB2A002D85B5E79DC9A9A4CBD27C58C7BB</sha512>
</dependency>
@ -262,8 +283,8 @@
<dependency group='javax.inject' module='javax.inject' version='1'>
<sha512>E126B7CCF3E42FD1984A0BEEF1004A7269A337C202E59E04E8E2AF714280D2F2D8D2BA5E6F59481B8DCD34AAF35C966A688D0B48EC7E96F102C274DC0D3B381E</sha512>
</dependency>
<dependency group='me.champeau.jmh' module='jmh-gradle-plugin' version='0.7.1'>
<sha512>D0B6A85CA7261FCEF0B2796F8FAD16C1044822AFE5ECD896B1103D7015FF690E806EC969B01150E9CA3FF96607AB53B6468ED2D5F3260C019CAE953B2291E7A4</sha512>
<dependency group='me.champeau.jmh' module='jmh-gradle-plugin' version='0.7.2'>
<sha512>E433E221C9167BB937EC0DF7626B5BBBE99E08C566A6D54BA7D2E04252DD452B4CA957B57E687F85F958DF0CE12678E17D0BCB527E1077770C8B7390CE58F56C</sha512>
</dependency>
<dependency group='net.jcip' module='jcip-annotations' version='1.0'>
<sha512>CB312B3F571D91EF183C119D878F50464FFD97F853B7311CBA386463F295E8B7B3A5A89ED4269A045CACD5AA7CB4C803D4882854A0FDDEFA9BBC28C72AA6C786</sha512>
@ -292,17 +313,14 @@
<dependency group='net.sf.json-lib' module='json-lib' version='2.3' classifier='jdk15'>
<sha512>ED6E95BF555AD3193B527258972DAFABD73745D993DA0CECE486E34A471D080850D201864026F4F41CA0982926C264C6E6CC55D91F000CDFD5D09EE3F306735C</sha512>
</dependency>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.26'>
<sha512>D72392AFFCF4F5147AC268D506341A2EBC5F96C6B43D2E8FE22EC1774228E3D60BF36FA21A81E17B2E5B0F64955012E8783645744D9C9C60196A55B7E810951D</sha512>
</dependency>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.27'>
<sha512>2FE56362DD1FD89C2183E7C27ED6AECAEE2795FABD3CE2849EAFC86D12AB2AF4346D80C30A25536556736D6092A369CFDE05D979E97B74267DC7D57DABBDD075</sha512>
<dependency group='org.checkerframework' module='checkerframework-gradle-plugin' version='0.6.37'>
<sha512>52E8003B3CD07FFD3DFB8830F628904C24762003F65D10E002C4D2E84B7046C6B2ED66D69CE8A74AD6923E96868B3E08B3B404AA004ED36750B316B12BAEAF6D</sha512>
</dependency>
<dependency group='org.codehaus.groovy.modules.http-builder' module='http-builder' version='0.7.1'>
<sha512>BC7BC2A514F8CA104A392ECF8736F4A3D316EE988FA91299D33B0AF46134B38E14E4A5061449D17B2DF7A521643E6C02DFA37CC277ED7CAB7CE83C28C00E9719</sha512>
</dependency>
<dependency group='org.gradle.kotlin' module='gradle-kotlin-dsl-plugins' version='4.0.7'>
<sha512>2304C8B72245837B42332431311970083BF0E03CA13128808AD8B4739ECDCDC43BF089256F6ED29BFD31FE859DA76BBA3FB61737EF0B8A380C75AA67AF7A8382</sha512>
<dependency group='org.gradle.kotlin' module='gradle-kotlin-dsl-plugins' version='4.1.2'>
<sha512>B23C4355CBAB2098506528D196F6C9A71D4689F4A3334494B97D9F6D868883D429D851FC319761C25ACC86F0C4E02F028B33C1868B6EF7BA1246E3D79ADF1582</sha512>
</dependency>
<dependency group='org.jetbrains.kotlin' module='kotlin-gradle-plugin' version='1.8.21'>
<sha512>09D6B646399888DBD6498D24C2B6FABBEF49444FD0710E8F93FE266FFFD11A4A2C1CFEE3431D52AD03CA781E2EFAB60896DCA53AE56924AA0C48F9C85FCE66BB</sha512>
@ -325,8 +343,8 @@
<dependency group='org.jetbrains.kotlinx' module='kotlinx-coroutines-core' version='1.7.1'>
<sha512>89CA3D64D42938DCB50AC58CD53D1DAEAF6EA0BF69CC01DEFE7467D2D1F23BE7932D005861A6E08C2C81980EE1F8EFB9A944B939FE02AF99518753704383C086</sha512>
</dependency>
<dependency group='org.nosphere.apache' module='creadur-rat-gradle' version='0.8.0'>
<sha512>F9C0C770036768965D955BF849933DFA1B5805959D0C93C2C70DA31D67C200140CAC7B9B93CF28B3F86AA3A5993DD25D566E37B0C451264CB0F6F2B5CD88F760</sha512>
<dependency group='org.nosphere.apache' module='creadur-rat-gradle' version='0.8.1'>
<sha512>397C3257C5448C26304B312212F6DA1649AD15E52CE0419C5BA647F8A68864707A0C8071FA9860C28AA9D626D66C8FAF2D5F576E693F9D01B0F71EEEB84B57FB</sha512>
</dependency>
<dependency group='org.ow2.asm' module='asm-analysis' version='6.2.1'>
<sha512>BE273F8E886BBCFDA81180917145996AB8FD26A17264EBEB5E1FC2337950A309D64DC8CBD373220009728622A8CBF56B8578E960B5561C22EA66848D296AE44E</sha512>
@ -373,6 +391,9 @@
<dependency group='org.sonarsource.scanner.gradle' module='sonarqube-gradle-plugin' version='4.0.0.2929'>
<sha512>5CD9C5E9C91145E6F5FC1DA819F6241ADCE8685C6C71F480CB7F7F1D2ACFCDFD19C631E7DC2E9FDDEDBA840C6063A020A377644C80543A9E366DF65642F16F8C</sha512>
</dependency>
<dependency group='org.sonarsource.scanner.gradle' module='sonarqube-gradle-plugin' version='4.4.1.3373'>
<sha512>3FDE80F4F005B5BABF6F278C6B4C7BEA4A00603BF9C44C3026334BFBE0B64E1F767C92295614D6A5AEF61692844F0FE7DBB0F8119F58EABF522FCEC6904272E8</sha512>
</dependency>
<dependency group='oro' module='oro' version='2.0.8'>
<sha512>9A98E493C4D771322B1331EC05AB0E363A83D8AC2AF8018D96A44DF2BF5BFC97D33EBE6F6F93E46AB10BF1536F0C29E9D9569318ED49BC18B4E96B1A8B476D37</sha512>
</dependency>

View File

@ -22,7 +22,7 @@
<module name="Checker">
<property name="cacheFile" value="${cache_file}"/>
<property name="cacheFile" value="${config_loc}/${cache_file}"/>
<property name="localeLanguage" value="en"/>
<property name="charset" value="UTF-8"/>

View File

@ -29,7 +29,7 @@
<asfext:pmc rdf:resource="http://jmeter.apache.org/" />
<shortdesc>Pure Java application for load and functional testing</shortdesc>
<description>Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load. </description>
<bug-database rdf:resource="https://bz.apache.org/bugzilla/" />
<bug-database rdf:resource="https://github.com/apache/jmeter/issues" />
<mailing-list rdf:resource="http://jmeter.apache.org/mail2.html" />
<download-page rdf:resource="http://jmeter.apache.org/download_jmeter.cgi" />
<programming-language>Java</programming-language>
@ -328,6 +328,27 @@
<revision>5.6 final</revision>
</Version>
</release>
<release>
<Version>
<name>Apache JMeter</name>
<created>2023-07-10</created>
<revision>5.6.1 final</revision>
</Version>
</release>
<release>
<Version>
<name>Apache JMeter</name>
<created>2023-07-11</created>
<revision>5.6.2 final</revision>
</Version>
</release>
<release>
<Version>
<name>Apache JMeter</name>
<created>2024-01-07</created>
<revision>5.6.3 final</revision>
</Version>
</release>
<repository>
<GitRepository>
<location rdf:resource="https://gitbox.apache.org/repos/asf/jmeter.git"/>

View File

@ -28,10 +28,13 @@ kapt.include.compile.classpath=false
systemProp.org.gradle.internal.publish.checksums.insecure=true
kotlin.code.style=official
# See https://community.sonarsource.com/t/sonarscanner-for-gradle-you-can-now-decide-when-to-compile/102069/4
systemProp.sonar.gradle.skipCompile=true
# This is version for Apache JMeter itself
# Note: it should not include "-SNAPSHOT" as it is automatically added by build.gradle.kts
# Release version can be generated by using -Prelease or -Prc=<int> arguments
jmeter.version=5.6.1
jmeter.version=6.0.0
# Plugins
com.github.vlsi.checksum-dependency.sha512=FAC41BF54A7C833BEAE9AB64083F6BEB3E1935BD6866C1B2F1D48FF926ABA4AECA53600FC3E41BE6ECBC87B73CE12F59C59836FB2E1DECC9408288060D66E988

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGOV0eQBEADTe/ljLAoBp+z84NkWHDBqbBmEsBxcGa0VDQxGsaMMi2f6wkO2
VDkRFNzNQbmw5xFqLisZ9ywzuVc9xmZ6qoMWLJaYs9RdsJSgD9+4hL5IkmjClxc9
Sws/NatagNaJNEA0uYSBJ6yRTksM5+46vUNK+BaBI8e/qdDX25Sqr4833nsBIGRo
6InBoTJJzu9jtLCWezFUt6iMcA3WgMlgYtWF8mhs8BjGAgEiHUGz6+b2YSwC/bKr
C1JfEPmzXRH2LbR+g4t41SKBYZmJ5qCf4DzkG836SIDc13AeLEYidGYHpsirRdVK
3ORZjgUcCNS8MTDohzSuj1HJaoQ4jpbRlvhnWYHxA4H2re+1cqieQorDdr3KCKDI
xQR68RSoAX5tl98TOMqAfGN1n5yWYDnHKAoqa5k6WSY+nE0ESHSszEdIuMkk03Bu
CzXKZYEJyTwKv+FZLQ4i+9cjC5AECy1dLA6lCePypNVzeZmsAQcWEii/jrEOheAt
M/p0IsxjDGrxMOjKqqOsL6sKOgDwh04Q0STy1uL6DQp2DMfTZI1VmoVd1+jMQUDj
hr/tWplGxGUyoXqZj+i98Zl8xWhfAcmx+p70Zm+ypJWqU9+axHlNnD16oHDZuOct
PPdrONeR3jBVtd60fZIXrNGNrRYwm3Tq2P7dhssjRRzBg/D3VW003z4StwARAQAB
uQINBGOV0eQBEADODM1fmfMCXF5WdDRi+BwiOTDRrUkBCl7pc3/l/PieEf/AeiX7
B0JJJLRjid3wJpFj6RqM8jOruLJJFgkF5R54tHgg8CWveZuR/Oh+Ek/GpFPQXxPB
FH4T9j3SnIzqJkpLZgX11rpfBg/7jBp1YTOJjJ2VXG7mmG9R+Kkej9CpPnd7owxZ
xNmk1PAcmkjusvrxek0bSL2XdwxN+j40wEjXyNG2+u/Xgg3vMGy1AFkSGfrlzLLQ
BV1Ohak8CZvVh4dURT3fSSwE8+zN/LRep3IVdloWVR30+eDhzPECje8pIwaMV0uL
8VbiWIOE2x1UyS3qIh3mN9FbywYYsvSNWn3SNk4zqqhTnirvN5jd8GPCD5hZ4pmW
To/fD16Entt+sBFNy8pgFZRLjyy0jMeOSfpBjCb0nQB7e0bmNeXxH9IAM6DtNqwz
d40k0PRDjlkvgqADyRN7bh2+V335l4KUdBB0KXj7xNQaDCOjVhXz4L7FP/o7S0if
hYfVKEtXYJAMibFYKmCNkOMvrNV0u3PMUgd5UMlpGkcPDAqTGAUoEdESuBs4d03b
1B+PXEwSqMFEZB+errUmDAWyA9c60GppFSTfsgTPapOVkOlrTMl2FTIdY7SoMA/s
S+qhtHYWZpOBXF4sXFCl26nJ2fzXL6CTMfa8JwtC2L3eXoYCkdjtK6hQ3wARAQAB
=cyTc
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
0a123c1ed3f13a6a0140e166c71fb765cd9de313

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBEu57KUBEAC6GSPbvdc5EtEu9GYQvWGxo44mJrCed9LbFc3rV6bawbvARQjG
oolnQ04PRpGI6+RmjhsHU5MlbUMWhpjdkhTXWZEheTnvCFnKGTV37DXpwJeHl3aV
kAX1C2a4gePaUBpDi93R18eaQbOzPfa+cmXq8gCltb9efFONtrR/K9QkAQzlxsbR
d9nIsuALV1Wbpqzan+mJ2taBDrbIN7PpBObnB7sGpsfpGC8pvNaIElAGb+JRM3df
DIkdymWZZouKHKM6akYoA1j54uf3iHSGPxIMKTuDTMZk950cfsR9FFwnDXMK8v+3
yQV1qWHW7MEOoC3bfPNB6BH2rkzXDJmlt4fXA6yyH4vDLJS0287XZLYrCDFC4Gbm
l5fG4dhw+DW7mhHezK3ssZJja5miRQtVJ/sBXJC/4y2tStoeyD54nY7BTtBnP4iN
tgW1E1glxqiDjWbsbXQeyfvpNWPd1VY2JQAyPyg0G48YSHiO2LLhwqlTwXVWdP9l
b/VHW0PkT38DnCk5DzhcpYt6hi84fKvomIqx1nASvVHKnxgNNZYZv9h63TXuU8sw
Ct0+HwnIehw20uNE4nmjUFZmzKRi+Qm+nkE7GnBFafIVadZeKDskkBQVWVE0D7ij
HgVn8q2NDbQ2yq8dYUcnW7HufJbuQX7e0mb3nJiI+B4RCQx9vlj9oGy0TwARAQAB
uQINBEu57KUBEACX5n3ANsTRUmQhgsyDtYIMQ3TNBvdgJ7oD8+xLfUI0rg/p1sll
HtKXSS1zhiKfG649dm3hx2KVOGKuIpNGptcL/MZxReXoAMN/f0MiAgf96Le43GT9
c1MLYziAuVCl9FH8QjH02MvNnTolqtgail51vpKBgirysvuwKwaYDpeRT4bJLj8k
waAHD77FwcUMu5AW2BJgwg8YG08tltxEQSb/5d8YJW8jktnLt8rgYlQKYWnBWzyJ
5UiXWeuEHzn6sFdXkTzelbfqXZWbIEfFECglQztGB1Bb7/4RQ4x0K/bmja2ppWHC
Xh0dwNqszcvFKU6rPcJkyq9P4XL4Sis/9R/xZqpgu37FiDwPfTCo2eXqFiy0lxnx
HJkLgokOvMW7AxXlrNWO0ADQwhvCOAMVbdwjm9S6K5V1Yki0kZQN7wSXX3da0yUA
ltwC2CejNinGiMox/2aPAkDhBH5PwbF5h2TPUV3Pa2MCNwMvL3R4G954NoGVRa1b
sGxbO8XYgya+Dpiat/rmfwtE0hAosWoMasSUMxN7euk/0nfvfXo4bRGBBvXvKbJV
uWUE50WO164LwIYB3JtaXl0Ay9muDKj7vi4oWiwK4j0trcIwClXzLb3UVoGHfgQb
7Srq9k0TkBdVFv1BK6EcoAF11N0WekMb5y7fOebc8cOeBKcTLfnsEiS7cQARAQAB
=nW0b
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
223d3a74b068eca354dc385ce126833f9cf64915

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGOtCzoBEAC7hGOPLFnfvQKzCZpJb3QYq8X9OiUL4tVa5mG0lDTeBBiuQCDy
Iyhpo8IypllGG6Wxj6ZJbhuHXcnXSu/atmtrnnjARMvDnQ20jX77B+g39ZYuqxgw
F/EkDYC6gtNUqzJ8IcxFMIQT+J6LCd3a/eTJWwDLUwSnGXVUPTXzYf4laSVdBDVp
jp6K+tDHQrLZ140DY4GSvT1SzcgR5+5C1Mda3XobIJNHe47AeZPzKuFzZSlKqvrX
QNexgGGjrEDWt9I3CXeNoOVVZvI2k6jAvUSZb+jN/YWpW+onDeV1S/7AUBaKE2TE
EJtidYIOuFsufSwLURwX0um17M47sgzxov9vZYDucGntZn4zKYcZsdkTTkrrgU7N
RSu90mqdL7rCxkUPsSeEUWFyhleGB108QBa5HiE/Z5T5C94kxD9JV1HAocFraTaZ
SrNr0dBvZH7SoLCUQZ6q3gXebLbLQgDSuApjn523927O1wdnig+xDgAqTP14sw9i
9OfvpNhCSolFL7mjGYKGfzTFo4pj5CzoKvvAXcsWY4HvwslWJvmrEqvo8Ss+YTII
fiRSL4DWurT+42yOoExPwcYNofNwEuyYy5Zr9edsXeodScvy/hlri3JuB3Ji142w
xFCuKUfrAh7hOw6QOXgIFyFXWrW0HH/8IoeJjxvG+6euxkGx8QZutyaY6wARAQAB
uQINBGOtCzoBEADSUdEj7dz3jsz4EObAdNXnZnJ5zAkqE4zbGtU94sXdBtxD1F++
5dTNE0ZCVwJLtZnYvxYXYwHBEDB5ZWS7noTL9rXkgXpDP5WGVLTYIMiGjPkVu2fW
ZZ78Tu4KIfRnkWdUoMQ2g7YNZ8cVU40cZlk63tRdt7Th71g+K/RKWdqh7NK0laua
lahK+Glped0QEo1TfrEhNgT0JUCwWzuM4qWHDys7itF++xLJsPSwS/wAUqvsWqGz
W/1KrYbbxgKX4vbrqL3jnk4IHvcKAub0uchLv9KR5QpsVT86TmOB3WsAAlPdosW/
ahAc2/XyiCxv5JEo8YpErBZ5TSgUy7lJNABS0JUVCeUCq/AAZ2TScOwRX8aXCeYA
SfRHOZCiWrWy5nMGGnXVs42MMIML9d+Hr37BCCFT3Gbw8WOTeGleE92sed5dBAjO
PyQWP+IvYxF7zOyNs46RAVlJfg3G33VwEBQgJwLSl/sUYqSHe9QubbxI0fiMsTJd
Z6/5fbsXVnMbGe4kQDZbDTgylotiHfMCMNefgb0+yA6Fw+EHQeN/v/AtpcpT0w12
AOpmlNy4+zPQE8Ai73gtJeTRpiuob3k1/JwvLHemB14CtxBGiHAyYHCjPqTPyQUI
ikj+R8mecG/60RfSmGe3HW7Hpt907BNEcc4s4V9uvJPHIJdZS/gmtSp5VQARAQAB
=on0Y
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
1bd97a6a154e7810ee0bc832e2f38302c8075e3d

View File

@ -0,0 +1,16 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBGO91akBCADDDpIrW/IohUSJNDu9VOUlnfEOm5VS49uqM0uucLi0BeAhy1Fo
P6Yg1cJkcK66DtnUoTM/JJLyDzJRlKnniLrYCkw8ScvtPdA5cQKJTY5ecn+9ouR2
SC9GkBMgagbCScP1xE45q5FO+z4kwmcERIKOQ687VAk64QM6hJCupfAd6SqS/X0Q
SGttTNtmj7YBpfnU5iFX05Hj8Zkk7CX439xltO8uJNyBlDVbuUZc3/kRowKPVuuo
TK2mzllVPzE/YT6NUY04wQPmRJx0uWZQUyDBZeckdurpSImdd7sik6Wf6zVGvxvg
MC4oMufZ3EM8R4dssRSIUfnBaQ2o1LS+GVxjABEBAAG5AQ0EY73VqQEIANJPIYj9
IsxKKOWLOkWvxAg9o9krIkohBMaOGRsx4RxQyArOCUoaG/qsG3aVOi8wML8hQK6q
oXADJ6FBGxQ67G8pperzRSj1O3BJILB6Fd1X8w40S6hSvUAZs+DM1FMuD4mf6ydu
yZUVIghGRExNeSb/vfn4KVPqdSAD7uWeQiIUYveaXrwot8+U8tRNgv+LQpCjhm5h
vWyIuxxpI+k5N07V9y0yRGWiBbgqdmfHVwdEbUSM0sMYUJUZKW+iwf5tZig9LZu3
HAf/vyXjBWG6zkkjwO8onKFLuhL4jkygHGSawJHwYRgtlknUZ0DMVc451bbhuFHE
0dcgQCdAYJsI66MAEQEAAQ==
=EMGn
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
eb1b3de71713c9ec2e87cc26ee92349ad86de446

View File

@ -0,0 +1,21 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBF+y5lsBDAC5h0qk+OBAscHc/ac3A9C8ZPohXcTVpsOjds73soUAH+QCKO0y
gAUuG/hUUU9xkm9PgTwWOEl2qDDcOFXY+9ykeYNUUcCWfs+JmVRfRod4W5pntaT4
g9Z+T6LbXKNAfZgPvTv4rr7UjD05N4XS4vckrS4taYLtBRJAmqT3pt43KxlyoTbh
f4xcO2rWeXsPqgzTYIHH7M5mYPeqA2gc9NBAhkHjesFuYfWXqUfOVcOLvzULxrra
pZDOyrINr83WikC8DkuDrAav4mIWjIhYmfBWzuNeYJsusVnFENeOxpEHV8RT+8uE
v1gPjbjAKUPfZoa7egvz3EmDkshpNIIym0XxNGTj5ntJWR2SLT7mDrSYPeHrZKW6
/aKuAcOxpGLpdVOMM+y4N5mTQfdlL81G9kbGQarMmwGaJb2a82PaF20wRwVgiVfO
p/GWgwXr0XdJNLqx13LdM8BMM5vmLomOQOjnpQBOlJWRgrYUJQOReKAEAQqNMsxS
IW9laXkrewJtblEAEQEAAbkBjQRfsuZbAQwAr/owOCxebZMTjp9coUsDjFabJowZ
H0F++vuh73UY/v2z+vqwug89ABjrPUIccE9/t5dRyEjBt0ED2KFM3mi692QhyYE8
uRaUKWz0kYaMPuw0W7RTblhhXErBror1m00ibNDGSf3fIr9FZ7u5ep/RTFDCDaZg
qtWQGVD+uLnqA5EHdwUyieWDSgeThRddM3hKXB1eld4JKJPzQ0XwXLgv8MmbOc9W
5pxb1ULD44s17SKDjlBtRvrSRdgExgfpKU63HH0D6mn+kJP066knYddunNw7HsKg
v2mPudTVIQXYGb8xDLhP6UYJowdvJEbM8vp1t/d/CgCMXyVVJOlTZwdJaECE0n4g
MJ2ihDZ8qbDl81OQhTiWvgoKOFHLTwZgmyhKpt36RvkXkoywqlKNGaZVNi9Ct1Xx
fprj4sozA5Mcf8BAaxXV9sQfZLKH7NhGrFzc/r1v2R37RYWfmYL79dJj1xsrcEN8
26cSoyLi69+XOxvbdo4KfyopRxECTdd6Oqk/ABEBAAE=
=+/j7
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
59b06224fd8912e36603be79fefe78456eddc34a

View File

@ -0,0 +1,26 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGEVsM0BEADiZwFLiyjeOLeGS0jAso0pOwUigT9PpwQq7JFAuJP2i9C4Eunc
J2HWRdMhnAY12C2MVetSwhI/4QID+rIreB7ooC4xv8sz1PIC30t2oSYtXF4w5DYh
RlHdJajbVy9Oz+qdpZtshTQgXhg301TXu5PN6KloTvWxvCZWQ9moByhhwNJrCbI6
EScorVQexvUdv9/N3bC0P31/GvU/5u0l8mHeK21RLqGJSZINqfUKf7YAMrAXKn+R
IlGePr0sg0BCACOCmf3NtGq6/GLtm5ShZD5PuAstaMjp7u4P9cNEW0mny+FYkde3
H+kN4U7bWCZcMFWhGwgsLCm3VgD710C7Qb40WLY5w8pTnsY9gOgaYti7xfOIi/nH
UF0oPecnBw3pMfHNesYPS/s5/ektju26cH4Lq35PgAX3/5QUqkHp/tgW9zXX4RIo
r06kV+U7fKFfzDfThvINTd09D4dYorkYEoB46NJbjoIFG6tJJXM/1MTMDHLi4MEL
rC8Zy4jIoxDjkU75oQNrgALOXsSfxkMLEdRjXcjqvJEPr1ndcJ6FxCJnWtAqbdNu
uqgX3PiE64vQzK75m3NKKDp9uoA0BrZ9cnAMf6BwIqNA77CLo8yAzDS4WPu0N8Kj
gmOx804d12/Ixy3soT4KcS7zqXKeWy5xzoBImScerRsm3ij/cC+fz74vAQARAQAB
uQINBGEVsM0BEAC0Kq9yuZkMgTJX7PqLYOE1A/5VyXik3iPpHLccuIVLLiZhqhed
dKuyDkub9zROQHqu1qyw4EO6T/5uAT8erVvlKJ/7PvNgkvL4M9yO0KUw05EbbrvG
tWE+eskOL9umS4wD/ZYpPNOmqpLjASlz6W0ltfeDhHzp3CMfJ5qsUTMfzYCwXkOf
5UYa4w9CDOUf3kXNEQ+I0l+r60QB0LLeNRDLKyL14nk12+dhKHSybbYYdHk4o6qe
nUKGhr2295AmcA/Jx2G8D240/4oxlANvXVbyuKsUTsJxzwEZBSpuU9xd7/DypIvM
+oU9XU9849x3PsC36mgHYSUCMSaCdF6qhimUn9x+rhg4LrU0lVEKP03B0JoPbgFm
W/Kq/eysVB6b/m54LQl5/iqoPxQAs51RT9xk5/PdEAhjjzn1OgLyOqDyh13wnRH9
pEH5fPYAMNUVsEW0ijNT+mKLGJggwJBkW+x9Av+Ff9P4MLFXkbwK7lF9K3bGX1kg
b2A23duXxBeooEQa5cavVvrrCs5d73T4DsIe0f2bMbec5BChEVY3cbfUdwcRVrhI
lNOwL/+ButprWMnBdlxuHiR3QU9XdUEvvP9WNyckBEqWJkKqGZG5OQd9DlHTabg1
MspVjvmHqejOtA94gK5wAG3tOr07K1V8GI6/k5Ivhj9zFr67bxTZ9J2aAwARAQAB
=UmaF
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
24d04176586361fda94ee0315f7786df73e61f56

View File

@ -0,0 +1,21 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBFzJyTIBDADO8siKg1NQb8jNPo2DPC5CpPwYDPUjlX7Nq/FMBYeY51JlxKLD
jmH/R5u6LuY0v7gSodrJqE0FUjz8LgN9+Yp1f1szqxeYHLsAVahO4cafG/sITYvr
vscz83dU6wpXxhFgTryUclqj0Nf6xZ9kxGAbMgP4JUZGkME/q3e6gOnwfLvbM4/t
M8XcjLLJNKdBHQGAcuQJxTp0db4ets+VgleqQKOPP2g+oeF92uiAZ5Wz3AEMRvnH
9TjGwXxiHv4gganqbaBq4cPH+bqoi1xxqSnj6qctbZxkfsICW03MF7Ydf16vbzzH
48KxYkBN83M2jOIptrZVsP3vLJzelsZTI/rkmgyfigEsog+JD/1Za3+L7x8hWhY5
arQ+QmSLJ7wyqccFexZO8gdtXkmfNQsIf/kFe1vifdRRYhuG0jrxXixa/zcj7VxZ
waFrCbh5SqNMqhUoTwvB9WrH3BPOQGmURynvXAeklE1kR18rxiAO6Bp3QV7BGXEX
ReYo+ITho5aGDhEAEQEAAbkBjQRcyckyAQwAwNKgqINPHy7O4nHdaaJxa6qNPBvD
fxHsWR4mDcWlWWVBA2pQyQnvLDuNQ+QXK/+MHeYhZtuiV+SzS51ohkk+X4hSbFFk
ngrgnY3gNJbeSNoaXIr4UgCNpBXGcUoS1pBo/XVMcgTSsmco+bH6D6152XdUEJEU
SlXc+hcEI3H2SZT+c+nlwSv6PMdIlDjbCY8JZ+FPJxbA+QqYMJIrOA8RoTD1FWb9
2nUxnxdEKgr3LVvfxFUAjRfXmpXHOxysZD4phzGgiqyg/fvBXdAv1fJx+zAhQSK+
ac6TNSN62pAfwOXP+PiYWC8/T3wDZDi6YiTDLml2K2iA/2vrKuAbtIAQR409s5VF
q9M41VbDdR/cjocNq199btp1nb9rbis6n27FGgCE7gj5IO2T3lmFnhwYIZNNhqfR
Tz5hSvDLidvEDGv3RnYCP3NibZX1lqljlDTk7Y0EQ0DFyahDuWREdVGJ3mnO6k6b
GMfZ4pgRyWkr4CLbD97W69aHbteZVOOS5HJRABEBAAE=
=D0Xc
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
7186bbf993566d8c2f4f7ed7d945e643368fef62

View File

@ -0,0 +1,21 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBGJGMxoBDADF9xkWwxwN72wRh0al9ARzTTIHpcVBIjDij1Xr768zMMRdKOsQ
aEHRTBKArAfGl6Xt6CfYnu3wMgEDUfh50s9NPOKvhpKtqdIlUxZLEJ807ebW3MD+
BnwoRUe0OsTItUQA+vLH8K2Uywd9f3OV9KQnqItUFMptaFhUC144hZhj3c0xhITS
k45zucoXLKO9yqA+tlqav7taAJMrWbhRcRWXizK1wOZLyhu8NdIMUSL4Ei0blR90
uA9i62XlOhpyvfpaC7oRh+jXHOCFK9sXe2vnvnTtJ1yqdXH4EOCYLjoheQN1R0u4
6f6XoAy9c3tOSOZM9vwE56iOZJwv0bca6ZENnhHnYwWhbQwrY0JMIon0sUpx9RB2
w4E7AeU8/maQG9hdB7s7vrAJFarlFQvc7kJ5FMTKFmWPalUTcT6yXntIQ3+xiH9l
Oq0jGlAmQWYUvzHJ0SFjz1xJGBDM3GH9KfHbeoS3Xz5Emmw8YwEDUe9gt9po8bmw
8qnA85uMZY2puh0AEQEAAbkBjQRiRjMaAQwAtcqYEeHIX/zszjNyKDyLONoZphIy
efYlWpbrbAFgwgJVEWiIWGo1Du0f5P6g3p29QD9wSJrZ2pz8TUwUIhwpCxA50ceT
PzEXi523znqWlXmOwdBuV6XjD7Bi0ZELg+QrumZfSDlAGb7fU6O39To1mDqg3SI1
jybBk6OOlPYfdfII72z+1smEaUikOpXeJbnXwqkAaB8jQBgGikciACVruP8jMRwE
Op1JcMj1hTOMjsbNYYx6s3NY8OPJvg9RqWfWAC1V6fsEBESlYVnw3IU5sMJzw949
h60btqFFjgg6GDjD9Xk6RJQjIZti9XQVsIOAswQ2tUHYj7KmjX/5h6U+xmZtFRYS
kPXMAjj7q31t3+Lj7Vhcm4FZGidY0AwwZAQLP6tiR2rcEtJ2E1xXqmAM9nT15eyW
wfOVh/VVuU/DDaOlbBQyqwlTuKYxCj4UyWGVVqgSwByFzYpaKkWw91RX008eT94j
9sj+m3Vqe5Q8VT3lRwju+TBaQz0V6Z/kKgJjABEBAAE=
=eVjF
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
187366a3ffe6bf8f94b9136a9987b20c8f6a3064

View File

@ -0,0 +1 @@
eb1b3de71713c9ec2e87cc26ee92349ad86de446

View File

@ -0,0 +1 @@
fa77dcfef2ee6eb2debedd2c012579464d01c06a

View File

@ -0,0 +1,16 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFgnlA8BCACVtx3oLXcanfvwtMRwal6pLQ8IVMG9+fr4xGdbSHXCRNbosDa5
agU7WeQMPhusSxJGaA3w7NOdjAwD/LeHADhDPeI6llJg1Fb3EyqH0NZaODKU/Or/
dID/i1onAX1dE914J4lf3XvIAxGiAjmr3UvWO9RiFxRUkecMAMlCBp2FuHuvxkcn
Mk8q9dP9Ef360wu8X5rj0kgP6vPhgl9/RhuPsUxlazb2Kn9Zxi/RmDKDiH/vDuwy
WdRGFOR1OPV7l3Ws01nrs4vKd2v5rsUmsjvQ8ldxdrA1xzX4IszHRDgSC9PI8ItZ
1VlbaKjE0L03acPfFTg/wRFSF5zsrGNbTmq1ABEBAAG5AQ0EWCeUDwEIAMGWqQT5
ccT/Q1OypoOQGEZn+oRkgEdnzt8mjo7aOXd6pkNTkt3+LCkmb8Pp3/a3iYEfvSvB
Zbb2JbY9xnmM8jBucWnow1iwEPxGhUuu3jlIpRsCwLk+utLkMALRkooXqanDoVRW
xuVeFYN0as8nndgWiJT30innN4vfaR3x3E6/nS57zp5IggxZYsXTRHb25kaof9lg
lHyXeypW7quKOP4SeES70PVVUnYZBlLpnX8a2msRtJiouWxCv/kHnYsjW62vc7nq
vWAsSsfBT61TVx7yI9CckVFBnkpG1I8C9WpfcR+j9yauptgUMfrfDTFg3Aip7czM
SoL4Jpu7jBcXy9UAEQEAAQ==
=tjFi
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
59b06224fd8912e36603be79fefe78456eddc34a

View File

@ -0,0 +1,19 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBEEn15ERBADm0iBZ/KwIiEYdLWxMIIZVzwF6My1eLRX+TLvPtOO4wf8zE9zV
fAsnMI8uCK3as3OwgqTTsKy7KQSqRyG0zd/rvCmJUEET3zHX1e5e2nYq8p1TzJzk
mR9lXe/amtRy6687fVn5hxERSlXNioh3CZdOVv1Mum5EHuzWFQGjA3CFywCgoXKg
dLJ9QuE4Btzf9ozvZRDcWYcEAN41LTmy3NYv0SfwvPnR5rEc+xw4T5p28qhPc1OP
h0jGnYgHYaM3xf0QGchvWLlwLsquxvD2K41ldIJpZm+Z4RqkV9wPrjmu1k2EUqWq
UKD2gdyyQx9pN6RH9qIN4Mh8b9x1BUrm+/KoxlmCfMxg2efLJTaPwlFgqitswZaV
aLi1A/4+Z7l1W/sMN09ZfOvTxEmznKOscCBNQPWwu/NBFYVzCAAv2pNVFvmjU1OV
u85pXfY8/x0lkpUlexd4bL0x1IPmrJn+H4dTI2sVFXLuKVceug1HjXW+zN/LWhT2
08bq6V/+a9+9oVjcdYMqJldoxEe5Tac7fwExQvqRFUvteL2LTbkBDQRBJ9eUEAQA
vAxg5za8Trgpvk3rx//r1H1u8F21mtMVC4DnDWEUw9Ts+Ew/oy4xTENPTaA3wVti
DBxorHoQlxZquqWUNcUFnrqSSyJ7S5NDiAWKYL6ez0MgXd6lqwL8tA4rKQhDK3kP
qnuF6RFUfC5aBrQxCbNOk5OZMS+W5/w2CiCqhjKtkHMAAwUD/04nzr26XFB0XHbb
CF4bSbyiR3vQTWOBOmv1qkGnausQzbFpg34T1l5KYaje0C7n7+UZSlD2uWksYTbt
R3JpAWmf486MuAbZ5ViTshy8K5ia56k2yI/ZaSErG7HZjMxa4G8ecWyK1guHT4LM
EobWUA79cs/cwdwqvUV83S1la3Al
=/OVc
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
4e2ddd47e19863bb87211544cd3038fef07d567e

View File

@ -0,0 +1 @@
042b29e928995b9db963c636c7ca19b7b620d787

View File

@ -0,0 +1,35 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBErg1IARBACVbmwMwp4p0ldolUYSkGl7XFJHwtEWmuikGcM4lp72h/YhAXpf
RVsKE3aCy6HSTt7KJrcUuOL8BB67riZXLOIZtA9kDyC+0EUbnW2EbVfJXskPLP5X
VA7RqcuvaW7lil+Fi+eWsy4dvRS0/guG7SBlMpyoOOcuSK1fGlMJkRKMEwCgopOy
9220jSQTIvq/2nzLR0PN1o8EAIImG36FVZw8j1WMaCMfJMX8gZuYxdnBXo3AgU2H
x+AnWvyMFlxR7fIIOsYaMmGLcIY0Re9qQCpPaZum9d9IRvqH6YGcI7s00ysk+C5K
09FjQEtcgAe9WBVOSuHorcv4UMnX6fyDWHucu63KXrwqfq6YCHHV3OPTs6CkzgNY
iomxA/93OVuaEXHkyPBS75br0rl2/m7Ow/qp9rvNOzS9U2ttJRctM7ts7TwtYLi1
YHxHeTgbnq5lVCdUnY8h4hElGx/hi/lpyCJEEK076o/M0qTvq9JnA1p2dKj07lJ6
ffANb0BKwV9zhvI9e0+hheROQiHpLM8BhXHgptSeAB2L5rjWkbkEDQRK4NSAEBAA
wlyOxGtSEu+rS/F64OFIvrUfPUu1TjtDSem5jfHIoKME9zntQDyxSxczM90wGB5f
nxFWWuFQQdyLb2aS3pmkoRbtDIr3WTFMBfohzjEUsxLjy651XokVh7v1zJFpqb92
+VOeHV66GwRKQWHCTyi85G/6m4SpDEFOOopYiO3aYYs0yKNnUygoZQUX0D0YGNOe
8kS8Lzui3VXwAFCNWN7Jh//bfQCnaR3CUGTWMnUE6NXMY6kb8fl5aBMaz3guKMdr
+BkRd5cuS7i2o2kT8jsx/P1agavkFByYO7jMRObskMr+KX/7lwvNgnBS5r4fRVzA
sJMP9OMQ+a1o6dQwPbsqmf0wzGJTHY8bSoWa6j6i3HiXrfhzSG4bgRAWqQQgRVDK
uLw6zg0lFEiR7CM3GMyNXRz/jmSLl0e/NVhXb1SrYw4jPSiHxFfq/rTdITNYnuwF
UXQnWmOAkRqNGiEVNIfhiR6q6dIFvYbhUDNmLTVgsmGT3spBn01FYI7jO6uTjTpM
ao4GYop/QDrPapUaBGzYxfI6L5ikZQ3FRQwUdTuQHB5FLmXqTkPimiwTpGiFhez8
ImjAvE32vZiCIsRukGE8nJFrRqaJML9fWwnkMzA0CAiExyyQkDKzzxkYo4YyJxFD
yAd2Ak553lsmTApjQD+v3yPMJUqPbKXj+yxx0aa6VocAAwUP/RE3neYN2ny0EhBZ
TXY9FaXA/HR8gyodzQxAWdwpDEZRQL6PW6rqAKio05dcqVcD1zeQvWJRMX7af3CQ
VqWdSliFSEv6vlIgO50VjDCdoLF+Gt6Ex2EZzTBjFSocsTfPHiqcnAwnvcuja7r/
7DzF8jIp6G6tIhDGeGJJTyBk656seqSy/A0WPFRFsbDk7J1eX+8F5yJgAVRQ6ZXT
79tZlvoP7zCrMRIO7GmO44J8/kxsYEETUgGMSU+jVVmpwqB1Fb1Vgwgeq22JUKFT
iEfyCY2k3gt4B4ee4CByEYP3kea2TCGZGevqxs+DpBD7Mzc0irgErmEaxNdaPMc+
fD7t7Uxshiw6jVKQV7oso1+Ax9LgKhlFUc5X4U3YBYWH2n0ZuTRvpmn1L4nPfRkF
6sAkCWATvH4CrPBWfrnV/JTo6mqNcmcMtuTZICw521ypYbdPNNOxLo//0qg7sRIZ
yOF0JSPivF0N0dHkJGs4XxZ+XKPBzlJer3xDniMqfQdthtMuJ0kSmhwVLRKHwNS+
KJkxD3gxbyggeoZFLDx6u38/TJAC++B1EXX4Rxnz+uzvMy8kdN7pJHKg0Pf1X8LP
C4BTYGBhskdfSFc8HFYXVz1By8T0f4x2dTygh9xWj8PfaBHgV2t7gi5UqIFbtCFA
uj1GTISSHu7AOSBua8sXCHl6XWjd
=Jbye
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
042b29e928995b9db963c636c7ca19b7b620d787

View File

@ -0,0 +1 @@
1bd97a6a154e7810ee0bc832e2f38302c8075e3d

View File

@ -0,0 +1 @@
0a123c1ed3f13a6a0140e166c71fb765cd9de313

View File

@ -0,0 +1 @@
fa77dcfef2ee6eb2debedd2c012579464d01c06a

View File

@ -0,0 +1 @@
223d3a74b068eca354dc385ce126833f9cf64915

View File

@ -0,0 +1 @@
7186bbf993566d8c2f4f7ed7d945e643368fef62

View File

@ -0,0 +1,21 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBF722yABDADQFCoMvjoHc58wS1blOVmfsH7G4Cnm81PJKpjfzY15ZkJSOyCz
+Vpfsv8CJdB00gc9rZyOE8AAjZoBjVOVgJnRsxy+VRfKfU6qfWNmngsMveQwdsIO
1Vk8IdGN7xuxWzVUnSdPmZ8xIzhnPsaecNWuW5n6NjVRJ+pw2oIAA5LLU9m3jcfH
gDFIe/byDwmLylGNLOJ9D/Qvl+kvxCTHJIX68BR1fhLM2v5NStDzEHRk7xQeu42F
6of7n7+R0xVR3VV2XmaZuR/gDCvq9f8b+qx80y8DMOfgl79UeXyeekWkr5zxiLZp
riNAaVOGatFnjD+WfW5gggIN973FO3Gr3+VubN3rq/LSsLvLPjVTOD8PZUrrdyQA
wwYXKDyYtg2gKDt2NE2RNx606BRRTsN6AC9dZCTz+WrMKh1RPPtvCyGyxWDd/hhd
DRSJ8OoBkrfxKd8yrSjobRiso48IvjPHyVd8JPxkNAWQoBE0Sv9GGkXeJ2DYiUNr
XQeK6+SWLLm/PK0AEQEAAbkBjQRe9tsgAQwAvowEd8ZErQ6o6iocwEy0UJAqxEVm
DEOLbQ4lQrzBtF+pvC2ra5AU4jUlqfZGXjAaSaE83C4TFE+cuOhUhRz3rhyjwZec
YbMxeWW4vjk0YRlGdKIS9qns0f7m8pPyoiEPd8VpBM7Diipm2yEoEb2Le+f31Rfg
+sqFiGu/+7eo6uoseuJFVmZ0pCN5T7y8SOptR52/UvvRAHbr/3DbVXWt1J8HDqK2
lrg+eebm5zb6i531IXdsu/926bCT0Ch62qc0ARNyzywORkS0WTAYJAVFkE5rQthz
Q5RnuwjVV07wgW7GqeyFZMCidWxBduHjgo8K6DC+Eim43YeMcdbVMpsSiIqKRwgs
kTeF3FD2+smBKVDEFyZPQ5b3nzkOemDn0b9FTq2LWrJr5YMxDJRJKrio7JgXV8Ef
PebTMSCGt232l46YH+vTq2US7p26sk4pzyApFxW7+oVngw7xYzbzSJJQHeXC+2LL
Wg6Z/DPLMNxuEHShQMoQw6PnAjJ2j4APV3kdABEBAAE=
=k7LG
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
764be739ddae10f4473fecf0aef385ed6ca815ae

View File

@ -0,0 +1 @@
187366a3ffe6bf8f94b9136a9987b20c8f6a3064

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGO9IPgBEADHCB2evKGSjQutTtIjODtaYUoU634Tl4Iv4DYsOR+MyOQBJ3Eo
9okST4azX6r9Fspgmc4LxpFnGm9OSEGn4NZ9ZxiTrmKaGsoXzj2w4JKtgAip4F5h
o9Ai/ridqeA7V9VH31OLSyZ/YJvrcoBcxWdwcpydxchlKQOOYX6wKqGk0BO38870
sI1d0y1W9pC9AiL+z7qaX3WUslOFDCGxRSxZs57x28P4pkRy0HwUWn38TrS4fnA5
XfWuxXWr2K8/xtf+Uf2EGVUP+qiv7kDdKYbZj+SeF4ba8nLPcuFmnz6Q1iZUhA9s
sTfruyibtm7htngt1IHFy7DT35GrIbE6D7W7S3ANqg/K+Gc/j9JXKjOwx8AM/WI0
WQ5w4fSn3C6WhFTMpyq445c97+5ki/SKbFP45oWd7A9JqIMttMqZLzOSzFM4230J
Cd6FQTGJdtcgfruwltQOUWl4IaCOsCAzI0XnxTIdsaCDDQ6+KspvdFw7zav03eVN
TguQ39IkZgke2Am2He5vtxXAayv/qiTKsyTUxIIDe1ZTS5j3MJ+SNWR0faXvvDaV
QgqVjsB9U/CHjcCYbmFhKxk2phGwa0Wc+NHKwyVwjhJkFo+U+XDGJaT2RbhDYD1H
LeoZAT6kdngSzr2WvXWs6xJbWIXJc5FivUorfkhaiaBWam1R4o+8kSuxSwARAQAB
=wRa/
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0

View File

@ -0,0 +1 @@
4e2ddd47e19863bb87211544cd3038fef07d567e

View File

@ -0,0 +1 @@
764be739ddae10f4473fecf0aef385ed6ca815ae

View File

@ -0,0 +1 @@
c8c4b9dc1e031f788b12882b875c3ef9dc4638e3

View File

@ -0,0 +1,16 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBF2sVzEBCACqCLAn02agm66fsdgfEEDhPGlJv/BhX/GDsw/FwCzpwZLyiFiJ
vwcMWgV0OOP3gI2CkzPxFE9/LL3Zjc/vS9J0tGeDBsCPB7TGiToQm63+zyzNCU3R
G7205zo+Ty8P3JX/InHRPrqxwitLh/sF68A0cF6EjGDoL4w0uuYYBMevfuGfra+b
dGKQPAWzU0afcQSpOkXIIdwBNb5vam6fy1att+50gqgPBKfYpBMFnkBteEBFIRd4
8qQ2NIIwMC6P2ZIRBWUAKLT5fZaQ/u5KJRZXlT2BclPmS0r0mbAJmXNo5FWEk4l2
16rccPwFg1AcX3rdAbtJ84DyBa7+Yz4aa3J7ABEBAAG5AQ0EXaxXMQEIANBULfZK
Rddy6Eq2d9TAPRSwYo5Volr4sTdiztr+60+Z7ink96VkoVowDrZ8OgvWQSm+tu7M
ocTpJ96ubO2ilBRgH9g9tX8/qT3bz3QSqR+A0K7b8KADew8pN+bB8GsOzQSu7Zgp
uqT73uAKv7YUaZ58Y5geWvVpBuxGQUxcD/ArOLyT1fBu2kvaOS6n/sRO/3kEnH27
IlrvhCt1WEJeG7/BFHhg0z8cLVaR0RxpPvbY/l6sudtziBrrwMG6c2L11Gniz7iL
gSHSQPhUKFiKXcfXjk+lS+bSnx2XooY4WpZt9eYEMVZLY5RpdPYyLe/xxfBXvoSm
LtlBhI+uyGcwWbEAEQEAAQ==
=iYeQ
-----END PGP PUBLIC KEY BLOCK-----

Some files were not shown because too many files have changed in this diff Show More