Commit Graph

2277 Commits

Author SHA1 Message Date
Justin Bertram 729fdc4aab ARTEMIS-3955 consolidate Subject on RemotingConnection 2022-08-25 18:12:11 -04:00
Justin Bertram 63966dcc56
ARTEMIS-3872 send scheduled msg immediately via mgmnt 2022-08-25 08:44:43 -05:00
Justin Bertram 8511cf3617
ARTEMIS-3843 add/remove connector via management 2022-08-24 17:24:29 -05:00
Justin Bertram 87e9b361bb
ARTEMIS-3785 support specifying alias for SSL keystore 2022-08-24 17:22:01 -05:00
AntonRoskvist e8337b9c2e
ARTEMIS-3933 - ScaleDown NPE on DLA resources with multiple destinations 2022-08-24 17:17:09 -05:00
Justin Bertram 86db53da9a ARTEMIS-3918 support FQQN + anycast + redistribution
When a message is sent to an anycast queue via FQQN on one node of a
cluster and then a consumer is created on that same anycast queue via
FQQN on another node in the cluster the message is not redistributed to
the node with the consumer.

This commit fixes this use-case primarily by including the FQQN info in
the notification messages sent to other nodes in the cluster.
2022-08-19 16:42:03 -04:00
Justin Bertram 682f505e32
ARTEMIS-3942 use session instead of direct routing for MQTT LWT messages
Using direct routing skips authorization for "Last Will and Testament"
messages (a.k.a. "will" messages). This commit fixes that problem by
using the internal session that is established for normal message
production and consumption.
2022-08-17 12:29:01 -05:00
Justin Bertram d158e7eff0
ARTEMIS-3925 LVQ pruning nulls
Messages without a last-value property sent to an LVQ are being pruned
rather than just passing through. Only messages with a non-null
last-value property should be subject to pruning.
2022-08-17 12:28:36 -05:00
Clebert Suconic 520088b8c6 ARTEMIS-3940 Address.maxSizeMessage is ignored on FAIL and Blocking Paging Policy 2022-08-16 16:50:51 -04:00
Clebert Suconic 2fbf2fcef0 ARTEMIS-3928 Fixing intermittent failure after executor's change 2022-08-13 22:21:56 -04:00
Clebert Suconic 252e5b0b14 ARTEMIS-3928 Limiting parallel IO in paging which would allow multiple destinations running all at once
Running HorizontalPagingTest with these variables would make the test to fail unless these changes are applied.

export TEST_HORIZONTAL_SERVER_START_TIMEOUT=300000
export TEST_HORIZONTAL_TIMEOUT_MINUTES=120
export TEST_HORIZONTAL_PROTOCOL_LIST=OPENWIRE

export TEST_HORIZONTAL_OPENWIRE_DESTINATIONS=200
export TEST_HORIZONTAL_OPENWIRE_MESSAGES=1000
export TEST_HORIZONTAL_OPENWIRE_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_OPENWIRE_RECEIVE_COMMIT_INTERVAL=0
export TEST_HORIZONTAL_OPENWIRE_MESSAGE_SIZE=20000
export TEST_HORIZONTAL_OPENWIRE_PARALLEL_SENDS=10
2022-08-10 19:29:29 -04:00
Emmanuel Hugonnet 7fe3e5d198 ARTEMIS-3923 AddressControlImpl.getRoles doesn't return all the security role permissions.
* Adding the missing permissions to the array.

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2022-08-08 11:20:04 +02:00
Justin Bertram dd61a651b1 ARTEMIS-3916 fix OpenWire selector with JMSMessageID
The OpenWire JMS client shipped with ActiveMQ "Classic" uses the
client's hostname as part of the `JMSMessageID`. Consumers may use this
data to select messages sent from particular hosts. Although this is
brittle and not recommended it is nonetheless possible.

However, when messages arrive to ActiveMQ Artemis they are converted
to core messages, and the broker doesn't properly map the selector from
`JMSMessageID` to the corresponding property on the underlying core
message. This commit fixes that problem. Changes include:

 - Mapping selector from JMSMessageID to the internal __HDR_MESSAGE_ID
 - Relocating some constant values so that both the protocol and commons
   module can use them
 - Adding a test
2022-08-02 09:29:25 -04:00
Clebert Suconic fa002728f2 [maven-release-plugin] prepare for next development iteration 2022-07-26 11:59:21 -04:00
Clebert Suconic 897d9beaef [maven-release-plugin] prepare release 2.24.0 2022-07-26 11:59:19 -04:00
Clebert Suconic 79daf49105 [maven-release-plugin] prepare for next development iteration 2022-07-21 17:44:35 -04:00
Clebert Suconic cc4867ccba [maven-release-plugin] prepare release 2.24.0 2022-07-21 17:44:33 -04:00
AntonRoskvist e56b5ff53f ARTEMIS-3840 Core bridges with concurrency > 1 will get removed on config reload 2022-07-21 12:36:08 -04:00
Justin Bertram 14a4446ec1
ARTEMIS-3892 fix test 2022-07-21 10:53:07 -05:00
Justin Bertram a2262612ca
ARTEMIS-3892 fix tests, add docs 2022-07-20 11:36:12 -05:00
Yesenkov ff1fe7f6b5 ARTEMIS-3892 user limits not working with cert auth 2022-07-19 13:20:49 -04:00
Justin Bertram ff770d540d ARTEMIS-1964 fix and deprecate getNumberOfMessages() on AddressControl
AddressControl has 2 methods to get same metric. Both
getNumberOfMessages() and getMessageCount() return the same metric
albeit in different ways.

Also, getNumberOfMessages() inspects both "local" and "remote" queue
bindings which is wrong.

This commit fixes these issues via the following changes:

 - Deprecate getNumberOfMessages().
 - Change getNumberOfMessages() to invoke getMessageCount().
 - Add a test to ensure getNumberOfMessages() does not count remote
queue bindings.
 - Simplify getMessageCount(DurabilityType).
2022-07-19 13:08:23 -04:00
Clebert Suconic 8a6ee31055 NO-JIRA Adding a non failing test on TX send and mirror 2022-07-13 13:00:00 -04:00
Gary Tully 4a4765c39c ARTEMIS-3890 - rework LVQ implementation to ensure all messages get delivered, replacement of lvq now tied to the deliver loop. Fix issue with duplicates - bug in LinkedListImpl` 2022-07-13 00:01:16 -04:00
iliya d90179b99c ARTEMIS-3815 proper retry through IOCompletion when message not found on target queue on Mirror
co-authored Clebert Suconic
2022-06-30 17:37:27 -04:00
Clebert Suconic 68f6d8263d ARTEMIS-3743 / ARTEMIS-3766 Use ACKReason on Mirror to determine target operations and fixing Delivering statistics on Mirror
I merged these two JIRAs into one as I was doing an overal check on Mirroring
2022-06-29 19:20:03 -04:00
Clebert Suconic 3e4013d8ca ARTEMIS-3868 Journal compactor split improvement
The condition fixed on this commit should not really happen in production
as the compacting counts should always be ordered (records that were compacted earelier will always be at the top of the journal).

However it highlights an improvement that could be done on the journal compacting.
2022-06-27 14:36:36 -04:00
Robbie Gemmell 2ab0e85db4 ARTEMIS-3874: move/update various bits to allow removing many test-jar creations and dependencies 2022-06-27 09:52:54 -04:00
Clebert Suconic 8d29742d40 ARTEMIS-3862 Adding Topic Durable Subscription to RemoveSubscriptionRaceTest
This commit just contains test additions
2022-06-21 13:24:33 -04:00
Clebert Suconic c1fd16d66a ARTEMIS-3864 StompTransactions leaking on ActiveMQServer.getSessions()
After a TX in stomp is committed, a session will never be cleared from ActiveMQServer
2022-06-17 16:57:35 -04:00
Clebert Suconic 9dd026118e ARTEMIS-3862 Short lived subscriptiong makes address size inconsistent 2022-06-17 16:57:35 -04:00
Clebert Suconic 342565d4c1 ARTEMIS-3850 Eliminate Page Soft Cache. Add Option to read messages based on sizing. 2022-06-14 14:53:14 -04:00
Justin Bertram c9208aafda ARTEMIS-3851 MQTT sub q exists after restart despite CleanSession=1
MQTT 3.1 and 3.1.1 clients using a clean session should have a
*non-durable* subscription queue. If the broker restarts the queue
should be removed. This is due to [MQTT-3.1.2-6] which states that the
session (and any state) must last only as long as the network
connection.
2022-06-14 14:48:45 -04:00
Robbie Gemmell 88bb733232 ARTEMIS-3410: also disable related test in integration-tests module on Java 16+ for now 2022-06-09 17:28:10 +01:00
Robbie Gemmell 8ee5253281 NO-JIRA: remove ancient exclusion that doesnt match anything in the module 2022-06-09 17:11:35 +01:00
Robbie Gemmell 4581ea5f45 NO-JIRA: remove redundant test exclude for test removed/fixed in 2016 in fa67d40b9d 2022-06-09 17:08:49 +01:00
Robbie Gemmell 0c5e83b76a ARTEMIS-3854: use Process.pid() rather than reflection 2022-06-08 15:06:04 +01:00
Clebert Suconic 0fab0dae91 [maven-release-plugin] prepare for next development iteration 2022-06-07 12:39:09 -04:00
Clebert Suconic 224ca0d4d7 [maven-release-plugin] prepare release 2.23.0 2022-06-07 12:39:07 -04:00
Justin Bertram 3c6f42b12a ARTEMIS-3808 fix tests 2022-05-24 21:47:42 -04:00
Clebert Suconic b3640c9ae8 NO-JIRA Improving PagingFailoverTest with Wait.assertFalse 2022-05-23 17:49:24 -04:00
Clebert Suconic f9ec449ac4 NO-JIRA Simplifying PageCleanupWhileReplicaCatchupTest
This test is consuming too much resource and time on CI machines. Just a simplification.
2022-05-23 16:14:01 -04:00
AntonRoskvist 548747c71d
ARTEMIS-3827 anon OpenWire producer may lose sent msg 2022-05-23 13:11:15 -05:00
Justin Bertram 466597e83b
ARTEMIS-3822 get broker name via management 2022-05-23 12:03:32 -05:00
Justin Bertram 974bd5f6e1
ARTEMIS-3808 support start/stop embedded web server via mngmnt
It would be useful to be able to cycle the embedded web server if, for
example, one needed to renew the SSL certificates. To support
functionality I made a handful of changes, e.g.:

 - Refactoring WebServerComponent so that all the necessary
   configuration would happen in the start() method.
 - Refactoring WebServerComponentTest to re-use code.
2022-05-23 10:57:49 -05:00
Clebert Suconic 9b959c2fec ARTEMIS-3837 Adding support for AMQPLargeMessage.getData() 2022-05-18 08:48:08 -04:00
Gary Tully b390a6b08f ARTEMIS-3835 - deprecate addressesSettings in place of addressSettings on the Configuration bean 2022-05-18 08:13:17 +02:00
Domenico Francesco Bruscino f632e8104b ARTEMIS-3833 Preserve JMSCorrelationID of distributed AMQP large messages 2022-05-17 10:13:55 -04:00
Clebert Suconic f58db5a054 ARTEMIS-3836 PrintData may miss messages if cleanup happened in the middle of the stream 2022-05-17 09:06:47 -04:00
Justin Bertram 446ff61542
ARTEMIS-3770 refactor MQTT handling of client ID
It would be useful for security manager implementations to be able to
alter the client ID of MQTT connections.

This commit supports this functionality by moving the code which handles
the client ID *ahead* of the authentication code. There it sets the
client ID on the connection and thereafter any component (e.g. security
managers) which needs to inspect or modify it can do so on the
connection.

This commit also refactors the MQTT connection class to extend the
abstract connection class. This greatly simplifies the MQTT connection
class and will make it easier to maintain in the future.
2022-05-09 14:51:06 -05:00