Commit Graph

3493 Commits

Author SHA1 Message Date
Clebert Suconic 20a115fcb1 ARTEMIS-4959 speeding up testMoveMessagesInPagingMode
This unit test was sending too many messages, and taking too long making it more a stress test
2024-11-21 12:57:29 -05:00
Andy Taylor c9f9b33bf9 ARTEMIS-5131 Add A Copy message button to console
This exposes a copyMessage method that simply copies a message to a different queue so the new console can add a copy button
2024-11-21 12:57:16 -05:00
Clebert Suconic e985ec5e59 ARTEMIS-5166 Improving ReconnectTest (avoiding NPEs) 2024-11-21 11:26:56 -05:00
Clebert Suconic 7965877760 ARTEMIS-5170 Fix AutoCreateExpiryResourcesTest and document expiry of expiry 2024-11-21 10:24:41 -05:00
Clebert Suconic 6f779a7908 ARTEMIS-5166 Improving ReconnectTest
I'm trying to make it faster and less likely to fail over non issues
2024-11-20 22:37:34 -05:00
Timothy Bish e9c06bd9f8 ARTEMIS-5157 Add management for AMQP broker connections
Add basic management views for AMQP broker connections and implement control
types for AMQP federation features along with the broker connection management
views. Some initial work also to provide support for other broker connection
features to add management control and also plan for future views of incoming
broker connections and management of AMQP federation resources.
2024-11-20 12:16:44 +00:00
Clebert Suconic 8afa3d8a41 ARTEMIS-5156 Wait.assertEquals on messageCount 2024-11-19 12:31:06 -05:00
Clebert Suconic 215cc5752f ARTEMIS-5156 Making LargeMessageFrozenTest more reliable 2024-11-18 13:48:06 -05:00
Clebert Suconic f3341a5337 ARTEMIS-5159 lowering number of threads on SoakReplicatedPagingTest 2024-11-18 13:46:52 -05:00
Timothy Bish 7555319dd0 ARTEMIS-5153 Mark federation events and control queues as internal
In order to better indicate their nature as broker feature specific queues
we can mark the temporary queues created for AMQP federation events and
control link messages as internal.
2024-11-14 11:14:19 +00:00
Robbie Gemmell 8d02f8dc77 ARTEMIS-5148: fix checkstyle issue with 447b72ae5b 2024-11-14 09:05:05 +00:00
Clebert Suconic 447b72ae5b ARTEMIS-5148 Simplifying and making ClusteredLargeMessageInterruptTest more reliable 2024-11-13 12:49:24 -05:00
Howard Gao c8e3c0060a ARTEMIS-5150: ActiveMQServerControlImpl.getHAPolicy() gets NPE
When you start the broker without configuring HAPolicy, if clients
call this management api it'll get NPE because it doesn't check
if the HAPolicyConfiguration is null.
2024-11-13 12:53:32 +00:00
Timothy Bish a3aea7d9a0 ARTEMIS-5135 Use a sequence ID on address federation link names
Prevents unintended link stealing scenarios when link names match for a new
link whose name is in use by another link still awaiting a detach response.
2024-10-29 10:32:14 +00:00
Justin Bertram 24202fc30c
NO-JIRA clarify references to ActiveMQ Classic 2024-10-24 10:49:21 -05:00
Clebert Suconic 02e0b14dfd ARTEMIS-5118 Expose HelperCreate on the CLI Jar 2024-10-22 12:37:52 -04:00
Timothy Bish c78d87de9b ARTEMIS-5106 Mark any AMQP TXN as rollback on send exceptions
If an exception is thrown in the AMQP send path and there is an
active transaction we should mark that as rollback only so the
client will see an error when it tries to commit a transaction
that had a failed send.
2024-10-18 17:36:34 +01:00
Justin Bertram 9380235a5e [maven-release-plugin] prepare for next development iteration 2024-10-16 10:10:37 -05:00
Justin Bertram 241e76f9da [maven-release-plugin] prepare release 2.38.0 2024-10-16 10:08:10 -05:00
Domenico Francesco Bruscino c3f1e09e88 ARTEMIS-5101 Deprecate default codec two-way algorithm
Throughout the years, the standard mechanism for storing passwords has evolved.
In the beginning, passwords were stored in plaintext. Developers are now
encouraged to leverage adaptive one-way functions to store a password. Using a
two-way function by default for storing passwords without a warning could lead
users to a false sense of security.
2024-10-15 08:40:14 -05:00
Timothy Bish b843e12852 ARTEMIS-2748 Support WebSocket compression in the transport pipeline
Adds support for WebSocket compression using the netty server handler to
enable per message compression and decompression as a transparent layer of
the netty pipeine.
2024-10-14 16:30:33 +01:00
Clebert Suconic 8e4bc33dc4 ARTEMIS-5097 Allow export and import data of undefined queues
This will allow users eventually undoing mistakes after removing a queue by accident.
2024-10-11 13:22:08 -04:00
Clebert Suconic c58210cc29 NO-JIRA no need to validate MAX_INT on XmlImportExportTest
This is only double testing.

Instead of parameterizing with or without forceNextValue(MAX_INT)
I'm just always forcing it. No point on duplicating the test just for this.
2024-10-11 11:01:32 -04:00
Clebert Suconic 6186805b69 ARTEMIS-5090 MirrorSNF is not supposed to expiry on messages 2024-10-09 17:30:26 +01:00
Robbie Gemmell c8a0e7c968 ARTEMIS-5087: update activemq deps to 5.18.6 2024-10-04 16:26:11 +01:00
Justin Bertram e1c818d143 ARTEMIS-5078 support divert management via JSON 2024-10-02 14:53:36 -07:00
Justin Bertram 8a1f9e8874 ARTEMIS-5085 use retry parameters on initial connection
When the Core client attempts to create the initial connection to a
broker when initialConnectAttempts > 1 it will adhere to retryInterval,
but it will ignore retryIntervalMultiplier & maxRetryInterval. This
commit fixes that so that these parameters are taken into account.
2024-10-02 14:09:51 -07:00
Justin Bertram 022ec167cf ARTEMIS-5071 align naming for management option syntax
This commit aligns the naming for the management option syntax but also
retains support for the old naming.
2024-10-01 13:11:40 -07:00
Timothy Bish 65db6c60c9 ARTEMIS-5074 Fix encoding of bytes properties as Binary in AMQPMessage
When a bytes property is added to an AMQPMessage and it is then reencoded it
will fail without first wrapping the byte array in an AMQP binary as required
by the ApplicationProperties section specification defined type allowances.
2024-09-27 19:30:23 +01:00
Jean-Pascal Briquet 8fc6f09195 ARTEMIS-5063 messageMoved addition in ActiveMQServerMessagePlugin 2024-09-25 21:59:02 -04:00
Clebert Suconic 0c4c0542be ARTEMIS-5068 Temporary queue should not be mirrored 2024-09-25 21:58:13 -04:00
Clebert Suconic 9199b1f2dc ARTEMIS-5067 Preventing Race when one side is not connected in the mirror
There was already some verification at AMQPMirrorControllerSource::invalidTarget
however the verification failed on soak test ReplicatedBothNodesMirrorTest,
and an user I was working with also gave me evidence of this happening.

I'm improving the previous verification, which is actually a simplification that works on every case.
2024-09-25 21:57:45 -04:00
Clebert Suconic 30c5e63e0b ARTEMIS-5066 Disable Divert on Mirror Target 2024-09-25 21:57:45 -04:00
Clebert Suconic b084eac71d ARTEMIS-5065 Remove Mirrored Properties on send for OpenWire and Core 2024-09-25 21:57:20 -04:00
Clebert Suconic 1d1f03ad5e ARTEMIS-4971 Warning on Unacked messages through mirror AckManager 2024-09-25 09:52:37 -04:00
Timothy Bish e7ed4700e1 ARTEMIS-5054 Fix concurrent access issue of large message to Stomp Frame
When converting a large server message to an outgoing STOMP frame the converter
is allowing unsafe concurrent access to the large message internals which leads
to failures on message deliver as the state is out of sync amongst the dispatch
threads.
2024-09-25 14:12:33 +01:00
Clebert Suconic f92a846c21 ARTEMIS-5038 Mirrored ACKs are broken if using multiple priorities on producers
PriorityLinkedList has multiple sub-lists, before this commit PriorityLinkedList::setNodeStore would set the same node store between all the lists.
When a removeWithID was called for an item on list[0] the remove from list[4] would always succeed first. This operation would work correctly most of the time except
when tail and head is being used. Many NullPointerExceptions would be seen while iterating on the list for remove operations, and the navigation would be completely broken.

A test was added to PriorityLinkedListTest to make sure the correct lists were used however I was not able to reproduce the NPE condition in that test.
AccumulatedInPageSoakTest reproduced the exact condition for the NPE when significant load is used.
2024-09-23 11:48:24 -04:00
Gary Tully ebd97bb91a ARTEMIS-5051 disable jolokia detectors in console war 2024-09-20 12:23:31 +01:00
Justin Bertram d9d84f814c ARTEMIS-5048 use java.util.Base64
We've traditionally used org.apache.activemq.artemis.utils.Base64 for
Base64 encoding/decoding. This implementation is based on public domain
code from http://iharder.net/base64.

In Java 8 java.util.Base64 was introduced. I assumed we hadn't switched
to this implementation for performance reasons so I created a simple
JMH-based test to compare the two implementations and it appears to me
that java.util.Base64 is significantly faster than our current
implementation. Using the JDK's class will simplify our code and
improve performance. Also, it should be 100% backwards compatible
since Base64 encoding/decoding is standardized.
2024-09-18 12:15:14 -07:00
Justin Bertram 6d84f3741e ARTEMIS-5048 add test to demonstrate performance difference 2024-09-18 12:15:14 -07:00
Clebert Suconic 7860fd5fa9 ARTEMIS-5035 M_and_M_FactoryTest cannot use OpenWire as it's using JMS2 2024-09-18 11:33:05 -04:00
Justin Bertram b79db8ed66 ARTEMIS-4781 AMQP message leaking large message file
When an AMQP message is sent over a cluster bridge it is embedded into a
Core message. If the size of the AMQP message is barely beneath the
minLargeMessageSize then the Core message in which the AMQP message is
embedded will become a large message. The on the bridge target when the
embedded AMQP message is extracted from the large Core message it will
not be considered "large." In this situation the file for the large Core
message will leak.

Thanks to Erwin Dondorp for the test. I renamed and refactored it a bit,
but the fundamentals came from Erwin.
2024-09-17 14:42:37 +01:00
Justin Bertram dc64d9be78 ARTEMIS-5045 add test + polish 2024-09-16 10:17:03 +01:00
Justin Bertram 48e8de20e9 ARTEMIS-5015 bump org.jboss.marshalling:jboss-marshalling-river from 2.1.4.Final to 2.2.1.Final 2024-09-10 11:08:13 -05:00
Justin Bertram 46c7cb445c ARTEMIS-4182 support client ID config on bridges
Allow the client ID to be configured on normal bridge as well as
cluster-connection bridges. This makes the bridge connection easier to
identify on the target broker.
2024-09-10 16:46:20 +01:00
Robbie Gemmell 2365ebf0a7 ARTEMIS-5032: tweak test asserts following a failure in CI 2024-09-10 13:14:44 +01:00
Clebert Suconic e322a418ce ARTEMIS-5010 Adding Failback scenario to ReplicatedBothNodesMirrorTest 2024-09-09 15:50:48 -04:00
Timothy Bish 5b3b995d61 ARTEMIS-4978 Fix AMQP messages not matching selector on replay
When using the replay functionality the application of filters to
the replayed messages fails to match against AMQP messages due to the
message not getting scanned when some message values are accessed.
2024-09-09 14:34:14 +01:00
Timothy Bish acc415126f NO-JIRA Fix intermittent test failure 2024-09-06 11:15:57 -04:00
Clebert Suconic daba842984 ARTEMIS-5035 Change some tests to use a random choice for protocol 2024-09-05 17:04:48 -04:00