Commit Graph

3204 Commits

Author SHA1 Message Date
Robbie Gemmell 8ad8c9d385 ARTEMIS-4589: consolidate utility code and remove the remaining test-jar creations in tests/ tree 2024-01-30 13:18:18 -05:00
Robbie Gemmell 14bbc041d7 NO-JIRA: remove a bunch of commented out code in util test class 2024-01-30 15:32:55 +00:00
Justin Bertram 513b7826a4 ARTEMIS-4532 MQTT-to-core wildcard conversion is broken
Currently when an MQTT topic filter contains characters from the
configured wildcard syntax the conversion to/from this syntax breaks.

For example, when using the default wildcard syntax if an MQTT topic
filter contains a . the conversion from the MQTT wildcard syntax to the
core wildcard syntax and back will result in the `.` being replaced with
a `/.`.

This commit fixes that plus a few other things...

 - Implements proper conversions to/from one WildcardConfiguration to
   another.
 - Refactors the MQTT code which invokes these conversion methods. This
   includes simplifying a lot of test code.
 - Adds lots of tests for everything.
 - Clarifies some variable naming to better distinguish between core and
   MQTT.
2024-01-29 18:35:43 +00:00
Clebert Suconic ddac006161 ARTEMIS-4585 Previously installed mirror queues with metrics plugin would make mirror non usable 2024-01-26 14:58:40 -05:00
Robbie Gemmell 83eb03c665 ARTEMIS-4583: remove the artemis-server test-jar, do related cleanup
- Move ActiveMQTestBase to artemis-test-support.
- Add reduced parent for current artemis-server tests.
- Add a simpler test case parent class unit tests can use.
- Convert some existing checks into a rule for reuse.
- Move various rules/utils to artemis[-unit]-test-support module from where they can be used instead of from artemis-server.
2024-01-25 16:48:49 +00:00
Clebert Suconic e513e6d2dd [maven-release-plugin] prepare for next development iteration 2024-01-24 14:21:08 -05:00
Clebert Suconic dbaa508d07 [maven-release-plugin] prepare release 2.32.0 2024-01-24 14:21:07 -05:00
Howard Gao 07b02159d2 ARTEMIS-4570 filter not applied to all brokers in cluster 2024-01-23 16:13:13 -05:00
Clebert Suconic 4b78cabe4e NO-JIRA Making ClusteredLargeMessageTest more reliable
This is waiting and asserting the topology size before starting the test methods.
2024-01-23 10:46:03 -05:00
Justin Bertram 44ceeff63c ARTEMIS-4540 validate MQTT session state data 2024-01-22 20:58:13 -06:00
a181321 f56595b89b ARTEMIS-4185 - Revision on sending already compressed messages 2024-01-22 17:23:56 -05:00
Justin Bertram 3dd50f8ff1 ARTEMIS-3831 scale-down w/jgroups fails if using same dg as cluster-connection
If both scale-down and cluster-connection are using the same JGroups
discovery-group then when the cluster-connection stops it will close the
underlying org.jgroups.JChannel and when the scale-down process tries to
use it to find a server it will fail.

This commit ensures that the JGroupsBroadcastEndpoint implementation of
BroadcastEndpoint#openClient initializes the channel if it has been
closed.
2024-01-22 15:02:02 -05:00
Justin Bertram a70c421493 ARTEMIS-4580 security settings for FQQN not enforced on send 2024-01-22 09:12:44 -06:00
Howard Gao 5e99516a27 NO-JIRA Fix PagingStoreImplTest#testBlockUnblock random failure
PagingStroeImpl.checkReleasedMemory() will kick off
executor.execute(this::memoryReleased) to pull from the queue onMemoryFreedRunnables
asynchronously. If the executor fires the task too late, it can pick up one of the
late trackMemoryChecks runnable and increase its calls, making assertion fail.
need to flush the executors to make sure it doesn't happen.
2024-01-22 09:11:51 -06:00
Emmanuel Hugonnet 2269ad417e ARTEMIS-4436 Artemis is logging warnings during clean shutdown of server
in cluster.

When we know that a node leaves a clustercleanly we shouldn't log WARN
messages about it.

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2024-01-22 10:11:14 -05:00
Justin Bertram eb7d131a8b ARTEMIS-4567 support OpenWire clients for broker embedded in Jakarta environment
If the broker is embedded into a Jakarta environment then the existing
artemis-openwire-protocol module won't work because it uses javax
classes.

This commit adds a new Jakarta-specific module that can be used to
support OpenWire clients in Jakarta environments (e.g. Spring Boot 3).
Users will simply need to include this version on their classpath to
enable support.
2024-01-19 16:05:25 +00:00
Timothy Bish 4ea55cd611 ARTEMIS-4568 Configuration reload for AMQP federation broker connections
Allows the configuration of AMQP Federation broker connections to be updated and
reloaded. This allows for update, add or remove of AMQP federation broker connections
as well as the basic AMQP sender and receiver broker connections. It checks for and
ignores changes in AMQP broker connections that are performing Mirroring as that
would lead to issues that can break mirroring.
2024-01-18 17:13:41 +00:00
Clebert Suconic cedc050e03 ARTEMIS-4569 Blocked Producers will hold runnables until messages are consumed.
When initially developed the expectation was that no more producers would keep connecting but in a scenario like this
the consumers could actually give up and things will just accumulate on the server.

We should cleanup these upon disconnect.
2024-01-17 15:40:15 -05:00
Clebert Suconic 1fef332bea ARTEMIS-4558 Improving test assertions on IdempotentMirrored Ack Test 2024-01-16 12:25:22 -05:00
Clebert Suconic bc7e4639e0 ARTEMIS-4558 Idempotent Mirrored ACKs
Mirror acks should be performed atomically with the storage of the source ACK. Both the send of the ack and the recording of the ack should be part of the same transaction (in case of transactional).

We are also adding support on transactions for an afterWired callback for the proper plug of OperationContext sync.
2024-01-15 19:13:49 -05:00
Clebert Suconic 1887b3fb8e ARTEMIS-4564 Cleanup large message files in case of mirror duplicate detection 2024-01-15 19:13:49 -05:00
Clebert Suconic c6a6e036a4 ARTEMIS-4558 Transactional support for mirroring
- Async commit
 * async here meaning the recording of the commit record is not doing a sync on the storage.
   This is useful for internal operations where we don't need an immediate sync on the journal storage.

- Wired notification
 * I need finer control on a afterWired (to the storage) and before the completions, so I can plug the sync context on mirror right before the commit is called.
2024-01-15 19:13:49 -05:00
Clebert Suconic 5e7a9023d8 ARTEMIS-4560 Fixing defaults on Broker Connections for Broker Properties
ARTEMIS-4566 Allow management of Mirror SNF internal queue
2024-01-15 19:13:49 -05:00
Justin Bertram 99d43dab01 ARTEMIS-4548 refactor MQTT tests
Many MQTT tests are run twice - once using TCP and once using
WebSockets. This is essentially a big waste of time since once the
connection is established to the broker the tests are identical. The
tests should be refactored to run just once and then there can be a
small number of tests specifically for WebSockets.

This should knock several minutes off the test-suite.
2024-01-11 16:23:48 +00:00
Gary Tully 5269b1a89d ARTEMIS-4561 expose store type on web component tls binding config 2024-01-10 15:21:53 -06:00
Justin Bertram ebd634ae54
ARTEMIS-4452 make test more robust 2024-01-10 13:53:19 -06:00
Domenico Francesco Bruscino a7f18777a3 ARTEMIS-4563 Remove auto-created addresses upon restart 2024-01-10 18:31:14 +00:00
Andy Taylor 43166e24ea ARTEMIS-4557 expose producer window size in clusterconnection JMX
https://issues.apache.org/jira/browse/ARTEMIS-4557
2024-01-09 08:38:26 -06:00
Justin Bertram 85b2f4b126 ARTEMIS-3474 replace non-inclusive terms
This commit does the following:

 - Replaces non-inclusive terms (e.g. master, slave, etc.) in the
   source, docs, & configuration.
 - Supports previous configuration elements, but logs when old elements
   are used.
 - Provides migration documentation.
 - Updates XSD with new config elements and simplifies by combining some
    overlapping complexTypes.
 - Removes ambiguous "live" language that's used with regard to high
   availability.
 - Standardizes use of "primary," "backup," "active," & "passive" as
   nomenclature to describe both configuration & runtime state for high
   availability.
2024-01-08 13:32:31 -05:00
Domenico Francesco Bruscino 0b51bcfa52 ARTEMIS-4488 Merge settings with wildcards after literal matches 2024-01-04 14:33:04 +01:00
Emmanuel Hugonnet 7456e64f39 ARTEMIS-4452: Allow to customize http header in http-upgrade request from Artemis.
Using a prefix "netty.http.header." to be able to define http headers
used for http request from the netty connector.

Issue: https://issues.apache.org/jira/browse/ARTEMIS-4452

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2024-01-03 20:55:00 -06:00
Domenico Francesco Bruscino b075cd6fc0 ARTEMIS-4537 Fix merge of multiple address setting matches
Merge multiple address setting matches on a new instance to be idempotent.
2024-01-03 11:02:03 -06:00
Justin Bertram b24f9b25f0 ARTEMIS-4516 support reloading connectors from XML 2023-12-21 11:44:56 -06:00
Justin Bertram 9baad30827 ARTEMIS-4522 simplify test & complete implementation 2023-12-21 11:44:11 -06:00
Todor Neykov ff2b76c252 ARTEMIS-4522 Dedicated thread pool for flow-control-executor 2023-12-21 11:44:11 -06:00
Justin Bertram d4d4b06fc7 ARTEMIS-4521 deleting divert using mngmnt API doesn't remove binding from journal 2023-12-21 11:43:36 -06:00
Justin Bertram 159416bc09 ARTEMIS-4530 clean up SessionCallback interface 2023-12-21 11:42:44 -06:00
Clebert Suconic d8ac2d99e0 ARTEMIS-4543 Reverting to previous semantic on MappedSequentialFile 2023-12-19 22:08:31 -05:00
Clebert Suconic a1add09734 ARTEMIS-4543 Journal/NIO Sync is not scalling up with TimedBuffer 2023-12-19 16:56:41 -05:00
Clebert Suconic a3126f9950 ARTEMIS-4536 Improving JournalTransactions 2023-12-19 09:54:40 -05:00
Gary Tully 7a2137f467 ARTEMIS-4528 tls, add support for PEM key store type 2023-12-15 15:52:48 +00:00
Clebert Suconic 5f5fa3af5a NO-JIRA Code Cleanup on JournalCrashTest 2023-12-13 11:48:24 -05:00
Justin Bertram b0545d9c45 ARTEMIS-4529 NPE with empty core message and STOMP consumer 2023-12-07 17:29:05 +00:00
Clebert Suconic 7c338e4ae5 NO-JIRA Adding log.info back into test 2023-12-06 10:58:26 -05:00
Justin Bertram 5f2403af19
NO-JIRA fix compilation issues in MQTT skeleton test 2023-12-05 14:34:09 -06:00
Justin Bertram afe0e889c5
NO-JIRA skeleton test for MQTT 2023-12-05 14:30:57 -06:00
Clebert Suconic c3963b4284 ARTEMIS-4526 Using TemporaryFolder on ShutdownOnCriticalIOErrorMoveNextTest 2023-12-05 12:51:09 -05:00
Clebert Suconic ffaa057ce1 ARTEMIS-4526 Moving ShutdownOnCriticalIOErrorMoveNextTest into integration-tests-isolated
ShutdownOnCriticalIOErrorMoveNextTest was actually my "inspiration" to have created the isolated tests module in the first place, so it would be reasonable to move it there as well.
the issue comes down to the test simulating a server failure where the server would go down abruptly causing the VM to drop / exit. In this test the nature of failure is leaving a partial shutdown where server executors are still hanging around causing a cascade leak of server pools still running.
So it is completely expected to have these threads "leaking". Hence this test should be moved into the isolated-tests.
there is no semantic / server change as part of this task. It's just moving a test to a better place.
2023-12-05 10:14:24 -05:00
Clebert Suconic ed929fbd1b ARTEMIS-4523 Using JMS 1.1 for createSession
if using an older OpenWire client version, this could have issues.
so I'm just updating the test to use the equivalent method in 1.1 to avoid issues
2023-12-04 12:30:00 -05:00
Clebert Suconic 3ec0274356 ARTEMIS-4523 Openwire leaving consumers isolated after reconnects
co-authored with Gary Tully
2023-12-04 10:47:34 -05:00