Commit Graph

3216 Commits

Author SHA1 Message Date
Timothy Bish 94b6c0ec6e ARTEMIS-4641 Support events for add of missing federation resources
When an AMQP federation instance attempts to federate an address or queue
it can fail if the remote address or queue is not present or cannot be
created based on broker policy. A federation link can also closed if the
federated resource is removed from the remote broker by management etc.
In those cases the remote broker should note the resources that were
targets of federation and send alerts to the source federation broker to
notify it that these resources become available for federation and the
source should attempt again to create federation links if demand still
exists. This allows an AMQP federation instance to heal itself based on
updates from the remote.
2024-02-12 17:54:05 +00:00
Domenico Francesco Bruscino 29781bd5da ARTEMIS-4586 Auto reload web binding SSL stores on change 2024-02-09 17:20:56 +00:00
Clebert Suconic 460faf50fd NO-JIRA proposed log4j commented out log configuration for testing
I have to keep looking how to do this every time I need it.
I just wanted to proposed a commented out section for next time I need this again.
2024-02-07 15:20:57 -06:00
a181321 c4c2a9e718 ARTEMIS-4637 - Allow unordered xml conf elements for clusters and bridges 2024-02-06 11:58:59 -05:00
Clebert Suconic a325a795cf NO-JIRA fixing typo 2024-02-06 11:57:52 -05:00
Clebert Suconic b03bcb5247 NO-JIRA Adding Test to validate clustering distribution under paging
No problems reported on this test.
I needed to validate rather if messages were being distributed correctly when either SNF or the final address itself was paged. Rather than throw away the test I decided to keep the validation here.
2024-02-06 10:57:29 -05:00
Timothy Bish 169d6317d9 ARTEMIS-4626 Improve demand tracking for federation consumers
Implement idempotent tracking for tracking demand at start while also
tracking demand as consumer or bindings are added and removed.
2024-02-01 16:13:37 -05:00
Clebert Suconic 9d988dd9d0 ARTEMIS-4617 upgrade JLine to 3.25.1
I had to remove the indirect dependency between the maven plugin and jline
to avoid the maven plugin to parse some classes in jline that require experimental features on the JDK
even when they are not in use.
2024-02-01 16:12:58 -05:00
Justin Bertram 2952d94554 ARTEMIS-4608 upgrade Derby to 10.15.2.0 2024-02-01 10:07:57 -06:00
Justin Bertram b863bc4ede ARTEMIS-4594 upgrade Error Prone to 2.24.1
This commit also fixes any new problems found with the new version.
2024-02-01 09:14:30 -06:00
Clebert Suconic 9657cae0f1 ARTEMIS-4627 Use now publicly available jdbc drivers for Oracle
these drivers are downloaded on the server's and only used if the Oracle profile is enabled
2024-02-01 08:47:04 -05:00
a181321 efe450298d ARTEMIS-4527 - Redistributor race when consumerCount reaches 0 in cluster 2024-01-30 14:22:28 -05:00
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