Commit Graph

10968 Commits

Author SHA1 Message Date
Justin Bertram 5c160ae1a8 ARTEMIS-4930 refactor storage manager tests
During the investigation for ARTEMIS-4910 it was noted that some of the
storage manager tests didn't actually force a full reload (i.e.
decoding) of the various configurations from disk. This commit does the
following:

 - refactors these tests so that they all force a reload from disk
 - organizes imports
 - eliminates various bits of repeated code in all the tests
 - improves code formatting

This commit exposes a bug in the encoding/decoding of
BridgeConfiguration via a failing test in
BridgeConfigurationStorageTest. This test is disabled. This failure will
be resolved in a subsequent commit at which point the test will be
enabled again.
2024-07-24 14:51:55 +01:00
Andy Taylor 9853211913 ARTEMIS-4950 - MBeanGuard throws an NPE
Although this doesnt affect the current console it does the new so needs addressing
2024-07-24 09:50:03 -04:00
Clebert Suconic ae26a8640f NO-JIRA Removing System.out from a test 2024-07-23 16:28:15 -04:00
Clebert Suconic 7c573db6a1 ARTEMIS-4949 TimedBuffer.checkSync could fail on ClosedChannelException 2024-07-23 12:56:33 -04:00
Justin Bertram 10adca5479 ARTEMIS-4923 reduce synchronization in ManagementServiceImpl
The `ManagementService` is used by the broker to register and
unregister components for management as well as send notifications.
When the broker is busy dealing with new sessions and auto-creating
queues, addresses, etc. there is a lot of contention.

To reduce synchronization and improve the service overall this commit
does the following:

 - Remove `synchronized` from most methods. In most cases it's
   completely unnecessary because the methods are already using a
   thread-safe data-structure (e.g. `ConcurrentHashMap`) or more
   specific synchronization is already in place (e.g. on
   `mbeanServer`).
 - Adds new & clarifies existing logging.
 - Synchronizes `start` & `stop` methods and adds gates via `started`.
 - Simplifies the `sendNotification` method by synchronizing once rather
   than twice and performing legitimacy checks sooner.
 - Removing an unnecessary overload of the `registereQueue` method.

To be clear, there are no tests included with this commit as there
should be no semantic changes. Existing tests should be sufficient to
identify any regressions.
2024-07-23 09:19:18 -07:00
Justin Bertram 26cc17c337
ARTEMIS-4948 clarify failover-on-shutdown doc 2024-07-23 10:55:21 -05:00
Clebert Suconic 41ec279e22 NO-JIRA Making test more resilient 2024-07-22 18:57:27 -04:00
Justin Bertram 71187c475d
This closes #5105 2024-07-22 15:39:58 -05:00
dependabot[bot] 77a9d84a76
ARTEMIS-4946 Bump selenium.version from 4.22.0 to 4.23.0
Bumps `selenium.version` from 4.22.0 to 4.23.0.

Updates `org.seleniumhq.selenium:selenium-api` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

Updates `org.seleniumhq.selenium:selenium-firefox-driver` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

Updates `org.seleniumhq.selenium:selenium-chrome-driver` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

Updates `org.seleniumhq.selenium:selenium-chromium-driver` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

Updates `org.seleniumhq.selenium:selenium-remote-driver` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

Updates `org.seleniumhq.selenium:selenium-support` from 4.22.0 to 4.23.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.22.0...selenium-4.23.0)

---
updated-dependencies:
- dependency-name: org.seleniumhq.selenium:selenium-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.seleniumhq.selenium:selenium-firefox-driver
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.seleniumhq.selenium:selenium-chrome-driver
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.seleniumhq.selenium:selenium-chromium-driver
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.seleniumhq.selenium:selenium-remote-driver
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.seleniumhq.selenium:selenium-support
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 15:39:23 -05:00
Justin Bertram c246df86b8
This closes #5106 2024-07-22 15:37:57 -05:00
dependabot[bot] 09adbdb61a
ARTEMIS-4945 Bump netty.version from 4.1.111.Final to 4.1.112.Final
Bumps `netty.version` from 4.1.111.Final to 4.1.112.Final.

Updates `io.netty:netty-buffer` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-handler` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-handler-proxy` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-codec` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-codec-http` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-codec-mqtt` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-codec-socks` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-common` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-resolver` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport-classes-epoll` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport-native-epoll` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport-classes-kqueue` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

Updates `io.netty:netty-transport-native-kqueue` from 4.1.111.Final to 4.1.112.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.111.Final...netty-4.1.112.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-handler
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-handler-proxy
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec-http
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec-mqtt
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec-socks
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-resolver
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport-classes-epoll
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport-native-epoll
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport-classes-kqueue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-transport-native-kqueue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 15:37:36 -05:00
Justin Bertram 513b0445bc
This closes #5095 2024-07-22 15:36:26 -05:00
dependabot[bot] 38a2e665b2
ARTEMIS-4944 Bump testcontainers.version from 1.19.8 to 1.20.0
Bumps `testcontainers.version` from 1.19.8 to 1.20.0.

Updates `org.testcontainers:testcontainers` from 1.19.8 to 1.20.0
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.8...1.20.0)

Updates `org.testcontainers:selenium` from 1.19.8 to 1.20.0
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.8...1.20.0)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.testcontainers:selenium
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 15:35:43 -05:00
Justin Bertram b59bf88c74
This closes #5093 2024-07-22 15:34:29 -05:00
dependabot[bot] fe00c62a7c
ARTEMIS-4943 Bump owasp.version from 10.0.0 to 10.0.3
Bumps `owasp.version` from 10.0.0 to 10.0.3.

Updates `org.owasp:dependency-check-maven` from 10.0.0 to 10.0.3
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v10.0.0...v10.0.3)

Updates `org.owasp:dependency-check-core` from 10.0.0 to 10.0.3
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v10.0.0...v10.0.3)

Updates `org.owasp:dependency-check-utils` from 10.0.0 to 10.0.3
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v10.0.0...v10.0.3)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.owasp:dependency-check-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.owasp:dependency-check-utils
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 15:33:45 -05:00
Justin Bertram 016e897917
This closes #5089 2024-07-22 15:32:11 -05:00
dependabot[bot] fcdbff3a7b
ARTEMIS-4942 Bump org.apache.maven.plugins:maven-pmd-plugin
Bumps [org.apache.maven.plugins:maven-pmd-plugin](https://github.com/apache/maven-pmd-plugin) from 3.23.0 to 3.24.0.
- [Release notes](https://github.com/apache/maven-pmd-plugin/releases)
- [Commits](https://github.com/apache/maven-pmd-plugin/compare/maven-pmd-plugin-3.23.0...maven-pmd-plugin-3.24.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-pmd-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 15:31:37 -05:00
Clebert Suconic fb2a57f3ed ARTEMIS-4941 Remove lazy update after application properties as it's no longer needed 2024-07-22 15:31:36 -04:00
Justin Bertram 642a2c79fd ARTEMIS-4913 provide more details on error callbacks 2024-07-22 15:38:25 +01:00
Robbie Gemmell bc1bb99d37 ARTEMIS-4940: update to protonj2 test driver 1.0.0-M21 2024-07-22 11:27:07 +01:00
Robbie Gemmell 7d9a64b4d1 ARTEMIS-4869: update to errorprone 2.29.2 2024-07-22 09:51:33 +01:00
Clebert Suconic 9e8df4cf7a ARTEMIS-4821 OperationContext leaking on SendAckThread
co-authored: nmeylan (test attached to the JIRA)
2024-07-21 22:23:38 -04:00
Justin Bertram 4e1daccfe3 ARTEMIS-4912 filter not enforced when sending msg to q via web console 2024-07-19 15:00:45 -05:00
Justin Bertram 4053698014
ARTEMIS-4936 make test more resilient 2024-07-19 10:58:31 -05:00
Timothy Bish 75034e32b6 ARTEMIS-4938 Update commons-lang to 3.15.0 2024-07-19 10:43:26 -04:00
Justin Bertram 9a0797509d ARTEMIS-4936 verify response correlationId when using Core client
If, for whatever reason, the response for a packet sent with blocking
semantics is never returned it's possible that an async response
received in the interventing time will be interpreted as the current
response. This is because ChannelImpl does not verify the correlation
ID set on the response packet when it is received.
2024-07-19 07:05:46 -07:00
Timothy Bish 2eebebf601 ARTEMIS-4839 Update jline to v3.26.3 2024-07-18 18:17:29 -04:00
Clebert Suconic bcdf626efa NO-JIRA Speeding up test
Removing redundant verification that was just spending time and not being verified.
2024-07-18 16:00:37 -04:00
Clebert Suconic da7dccae87 ARTEMIS-4925 Making assertion to also consider journal and other files from the broker
Small change but say there's ever a leak on the journal. Removing the clause from paging would allow to also capture other leaks.

This is currently not an issue and the test should still pass.
2024-07-18 14:16:02 -04:00
Clebert Suconic 79708749e8 NO-JIRA Speending up a failover test
No need for the iterations, and a few minor improvements to the test.

This method was taking up to 15 seconds on the CI and the same method is reused a couple times, resulting in many minutes wasted
2024-07-18 14:16:02 -04:00
Clebert Suconic 58f9e00874 ARTEMIS-4925 adding missing assertion on the test 2024-07-17 12:02:41 -04:00
Clebert Suconic 569a07c287 ARTEMIS-4925 Allowing server reuse on a test 2024-07-17 10:19:27 -04:00
Robbie Gemmell 8bac991991 ARTEMIS-4869: update to errorprone 2.29.0 2024-07-17 14:29:12 +01:00
Robbie Gemmell 59e7a3c01f ARTEMIS-4910: expand output verification tests with transformer + properties variations 2024-07-17 14:12:26 +01:00
Justin Bertram 1a83220711 ARTEMIS-4910 fix divert config encoding
This commit fixes 4 distinct issues with divert configuration encoding:

 - The encoding size was calculated incorrectly in three ways:
   - Using 0 instead of `DataConstants.SIZE_NULL` when no transformer is
     defined resulting in a calculated size discrepancy of -1.
   - Using `DataConstants.INT` instead of `DataConstants.SIZE_INT` for
     the number of transformer properties resulting in a calculated size
     discrepancy of +2 when using a configuration with a transformer.
   - Using `BufferHelper.sizeOfNullableBoolean` instead of
     `DataConstants.SIZE_BOOLEAN` for the `exclusive` property resulting
     in a calculated discrepancy of +1.
 - Encoding was using `writeString` instead of `writeNullableString` for
   the name of the transformer class resulting in an actual buffer size
   discrepancy of -1.

Aside from these fixes this commit also:

 - Updates the divert storage test to force a reload from disk which
   will also trigger this problem.
 - Adds new tests specifically for encoding & decoding include a test to
   verify known bytes during encoding.

Lastly, it's worth noting that this *won't fix* bad data that was
already stored to disk by an older broker or bad data that comes over
the wire from an older broker (e.g. if a older primary broker paired
with a newer backup).
2024-07-17 14:11:21 +01:00
Clebert Suconic 4b1952e3aa ARTEMIS-4925 small tweak on test
Using a lambda to close a resource
2024-07-16 19:10:00 -04:00
Clebert Suconic 6c1134388b ARTEMIS-4925 Fixing issue with mirroring and replication
the page writes on replica should include the address where they belong to avoid leaks between the mirrorSNF and the actual addresses.
2024-07-16 17:05:06 -04:00
Clebert Suconic 5af90578cb ARTEMIS-4925 Test with mirror and replication.
Files will leak on the target and messages will not be received after failover.
Also messages will be written to wrong destinations on the replica. The leak is actually between destinations, and the consequence is the file leak.

I usually keep test and fix on the same commit, but in this case I have been heavily validating the server with and without the fix,
so I will open an exception in this case and keep the fix and test separated.
2024-07-16 17:05:06 -04:00
Robbie Gemmell 2bbf056edf ARTEMIS-4892: update to micrometer-core 1.13.2 2024-07-16 17:23:50 +01:00
Robbie Gemmell 2fbf15e887 ARTEMIS-4876: update to commons-codec 1.17.1 2024-07-16 16:34:05 +01:00
Robbie Gemmell 615f249389 NO-JIRA: update with note+instructions to push tag now created by examples release helper script 2024-07-16 10:48:07 +01:00
Justin Bertram 19d8059a4e ARTEMIS-4794 configure pending ack behavior for bridge
When a bridge is stopped it doesn't wait for pending send
acknowledgements to arrive. However, when a bridge is paused it does
wait. The behavior should be consistent and more importantly
configurable. This commit implements these improvements and generally
refactors BridgeImpl to clarify and simplify the code. In total, this
commit includes the follow changes:

 - Removes the hard-coded 60-second timeout for pending acks when
   pausing the bridge and adds a new config parameter (i.e.
   "pending-ack-timeout").
 - Applies the new pending-ack-timeout when the bridge is stopped.
 - Updates existing and adds new logging messages for clarity.
 - De-duplicates code for sending bridge-related notifications.
 - Avoids converting bridge name to/from SimpleString.
 - Removes unnecessary comments.
 - Renames variables & functions for clarity.
 - Replaces the `started`, `stopping`, & `active` booleans with a
   single `state` variable which is an enum.
 - Adds `final` to a few variables that were functionally final.
 - Synchronizes `stop` & `pause` methods to add safety when invoked
   concurrently with `handle` (since both deal with `state` and execute
   runnables on the ordered executor).
 - Reorganizes and removes a few methods for clarity.
 - Relocates `connect` method directly into `ConnectRunnable` (mirroring
   the structure of the `StopRunnable` and `PauseRunnable`).
 - Eliminates unnecessary variables in `ConnectRunnable` and
   `ScheduledConnectRunnable`.
 - Adds test to verify pending ack timeout works as expected with both
   `stop` & `pause` with both regular and large messages.
2024-07-15 18:19:39 +01:00
Timothy Bish 1361e29739 ARTEMIS-4919 Handle Exception from proton transport process
Handle any exceptions from the proton transport and set the error on the
transport for processing in the events dispatch cycle by adding in handling
of the transport error event.
2024-07-15 15:34:21 +01:00
Robbie Gemmell c9f509c929 ARTEMIS-4847: update jgroups to 5.3.9 2024-07-15 12:34:47 +01:00
Justin Bertram 0277c6498e ARTEMIS-4914 clarify docs on core + client ID
This commit also adds a couple of tests to verify the documented
behavior works.
2024-07-12 11:03:04 -07:00
Justin Bertram b8a9d626cd ARTEMIS-4920 strip leading forward slash from IP address 2024-07-12 11:00:53 -07:00
Justin Bertram fea2be6a3a ARTEMIS-4921 include protocol name in disconnection log message 2024-07-11 10:31:17 -07:00
Justin Bertram ac5713be81 ARTEMIS-4922 remove spurious warn msg when OpenWire client disconnects 2024-07-11 07:13:49 -07:00
Robbie Gemmell b8ee43861e ARTEMIS-4918: artemis-maven-plugin tweaks and cleanup
- switch to using maven-core instead of ancient maven-project dep
- set provided scope on various deps that should have it, fix warnings
- use transitive maven-resolver-api from -core, its also 'provided'
- add a property to update common component versions
2024-07-10 15:22:53 +01:00
Clebert Suconic 2f39db8270 NO-JIRA change one-test.sh to redirect test output to System.out 2024-07-10 10:03:29 -04:00