Commit Graph

1319 Commits

Author SHA1 Message Date
Christopher L. Shannon (cshannon) 2c69e30748 AMQ-7309 - Implement JMS 2.0 createSession methods
Adds a real implemention for createSession() and createSession(ackMode)
methods on ActiveMQConnection
2023-02-15 08:33:00 -05:00
Matt Pavlovich 28f7eb7ee8 [AMQ-9217] Fix per-destination audits on IndividualDeadLetterStrategy 2023-02-08 09:56:03 -06:00
Matt Pavlovich 34454567c8
[AMQ-9207] Upgrade various dependencies (#964)
com.thoughtworks.xstream:xstream .................... 1.4.19 -> 1.4.20
commons-daemon:commons-daemon ......................... 1.3.2 -> 1.3.3
org.apache.ant:ant ................................ 1.10.12 -> 1.10.13
org.apache.shiro:shiro-core ......................... 1.10.1 -> 1.11.0
org.apache.shiro:shiro-spring ....................... 1.10.1 -> 1.11.0
org.codehaus.jettison:jettison ........................ 1.5.2 -> 1.5.3
regexp:regexp ............................................. 1.3 -> 1.5
org.apache.httpcomponents:httpclient ................ 4.5.13 -> 4.5.14
org.apache.httpcomponents:httpcore .................. 4.4.15 -> 4.4.16

- regexp/regexp -> jakarta-regexp/jakarta/regexp
2023-02-03 14:01:46 -06:00
Christopher L. Shannon (cshannon) a083ff4d23 AMQ-9193 - Improve broker shutdown in unit tests
This should improve test reliability for the unit tests so brokers don't
hang around after the end of a test on error. Also increase the surefire
re-run count to 3 times before failing.
2023-01-11 06:21:21 -05:00
Christopher L. Shannon (cshannon) 044f5346e9 AMQ-9192 - Fix flaky AdvisoryTests
Properly shutdown broker for each test and speed up tests by sending
less messages
2023-01-10 12:29:33 -05:00
Jean-Baptiste Onofré 9852cf1f49
Merge pull request #843 from stolsvik/main
AMQ-8617: RedeliveryPolicy:Exponential Backoff + NonBlockingRedelivery = too long delays
2022-11-22 08:55:43 +01:00
Christopher L. Shannon (cshannon) f83c5f1ba1 AMQ-9175 - Properly set broker on ConnectionContext inside
MemoryTransactionStores

This fixes a NPE when using the messageDelivered advisory and
transactions
2022-11-21 11:03:08 -05:00
Christopher L. Shannon (cshannon) f6e26085cf AMQ-9159 - Add a test case to verify inflight message stats for wildcard
consumer when a destination is removed
2022-11-17 09:02:43 -05:00
Christopher L. Shannon (cshannon) b6540746a2 NO-JIRA: Add timeout for flaky test 2022-11-16 12:46:05 -05:00
Christopher L. Shannon (cshannon) 757a712890 AMQ-9168 - Send message expired advisory and not discard advisory when
Topic subscriptions expire a message

This fixes topic subs to send the right advisory type, if enabled, when
the server discards a message on dispatch to a topic sub. Also add some
more expiration tests for other subscription types
2022-11-16 06:43:21 -05:00
Christopher L. Shannon (cshannon) 85502a526d AMQ-9157 - Dispatched advisory should not fire for queue browsers
The dispatched advisory doesn't really make sense to send for queue
browsers, just like we don't send a consumed advisory, as it's more of
an admin type funtion to look at the contents of a queue but it's not a
real consumer that is receiving and acking messages.
2022-11-15 10:13:45 -05:00
Matt Pavlovich c25975389f
[AMQ-9163] Add 'Started' attribute to ConnectorView (#932) 2022-11-14 09:03:44 -06:00
Christopher L. Shannon (cshannon) c140d73fec AMQ-9157 - Include consumer id as part of Dispatched advisory 2022-11-11 13:53:47 -05:00
Christopher L. Shannon (cshannon) 39da75abdb AMQ-9157 - Add utility methods for dispatched advisory 2022-11-11 08:23:25 -05:00
Christopher L. Shannon f473efe163
Increase forkedProcessTimeoutInSeconds for tests to decrease timeout failures (#930) 2022-11-11 05:47:07 -05:00
Christopher L. Shannon (cshannon) 76f612600d AMQ-9157 - Add a new optional advisory for dispatched messages 2022-11-03 14:30:33 -04:00
Christopher L. Shannon (cshannon) 58666afffd AMQ-9156 - Make sure in flight metrics are properly decremented on
subscription destroys and dispatch failures
2022-11-03 10:38:02 -04:00
Christopher L. Shannon (cshannon) d46b74d674 AMQ-9107 - rework performance improvement for consumer closing in
managed region broker

This new approach just looks matching Subscriptions from the region for the
destination which prevents having to store another map and falls back to
the old approach if something went wrong.
2022-11-03 06:43:55 -04:00
Christopher L. Shannon (cshannon) ea10d984d0 AMQ-9152: Make test classes abstract to fix surefire plugin 2022-11-01 17:49:35 -04:00
Christopher L. Shannon (cshannon) 596ee31687 AMQ-9153: Fix slow consumer advisory for queue subscriptions
Due to changes with Queues to check if consumers are full before adding
more messages to the subscription, the Queue dispatch logic needed to be
updated to mark subscriptions as slow and send advisories if configured
instead of relying on the subscription itself to do it.
2022-11-01 10:29:53 -04:00
Christopher L. Shannon (cshannon) ba0b7a25a0 AMQ-9152: Fix surefire setup to run all tests that are not excluded 2022-11-01 06:38:27 -04:00
Lucas Tétreault 98b7d3443c Add a test for offline durable subscriptions for AMQ-9107 2022-11-01 07:06:15 +01:00
Robbie Gemmell 52574a794a AMQ-9074: use -noindex to remove various .js files, disable html source listings for javadoc 2022-09-07 18:02:01 -04:00
Matt Pavlovich ead9533d53
[AMQ-8322] JMS2 Implementation - JMSContext, JMSProducer, JMSConsumer first pass (#729) 2022-09-02 08:21:11 -05:00
Jean-Baptiste Onofré 8d8a27c7a7 Add missing ASF header 2022-08-24 09:39:54 +02:00
Matt Pavlovich 82a2374764 [AMQ-8981] Fix CustomBridgeFactoryTest 2022-08-22 17:11:05 -05:00
Jean-Baptiste Onofré 3a56bca3fd
Merge pull request #894 from jbonofre/AMQ-9030
[AMQ-9030] Upgrade to maven-antrun-plugin 3.0.0
2022-08-18 07:15:40 +02:00
Jean-Baptiste Onofré 7006570c1d
Merge pull request #842 from eolivelli/AMQ-8613
AMQ-8613 Improve performance of selectors with a big sequence of OR and AND logical expressions
2022-08-17 07:47:06 +02:00
Jean-Baptiste Onofré fb3dea3656 [AMQ-9030] Upgrade to maven-antrun-plugin 3.0.0 2022-08-17 06:54:34 +02:00
Lucas Tétreault e550748b4c [AMQ-9005] remove xalan dependency due to it being end of life 2022-07-30 22:45:48 -07:00
Matt Pavlovich 680717cb95
[AMQ-8976] Add maxConnectionExceededCount metric for connectors (#850) 2022-07-18 16:20:25 -05:00
Matt Pavlovich a1b2e3ae02
[AMQ-8978] Clean up WARNs in activemq-unit-tests (#852) 2022-06-29 09:08:22 -05:00
Matt Pavlovich 6598ec5717
[AMQ-8977] Upgrade to mockito 4.6.1 (#851) 2022-06-29 09:08:08 -05:00
Enrico Olivelli 4b08978062 AMQ-8613 Improve performance of selectors with a big sequence of OR and AND logical expressions 2022-05-31 12:07:23 +02:00
Endre Stølsvik 393a696955 AMQ-8617: RedeliveryPolicy:Exponential Backoff + NonBlockingRedelivery = too long delays
Scenario on client:

1. Employing RedeliveryPolicy with exponential backoff (keeping maximum
redeliveries at default 6)
2. Enabled non-blocking redelivery
3. Receiving e.g. 100 consecutive poison messages (which eventually
should DLQ after max redeliveries)

This will result in massive redelivery delays due to a logic bug.

The reason is that redeliveryDelay is a field variable kept on the
ActiveMQMessageConsumer, instead of being a property on the message - or
that the redelivery delay was calculated per message based on the
redelivery count.

When consecutive messages rollbacks multiple times, the redeliveryDelay
field is continuously multiplied by the backoff multiplier, resulting in
enormous delays.

Fix: Ditch the field variable, instead calculating the redeliveryDelay
per delivery from the redelivery count. (This happens to be identical to
how it is done in afterRollback() in ActiveMQSession:1004.)

Test is added - which fails with the previous code, and passes with
this. Added a debug log line for the calculated delay.
2022-05-31 01:56:30 +02:00
Jean-Baptiste Onofré ebe6992fd6 Fix log name in SharedFileLockerLoggingTest and enable runtime config module (local changed pushed by mistake) 2022-04-18 11:19:14 +02:00
Jean-Baptiste Onofré c711d5c029 Fix unit tests which fail related to log4j 2.17.2 update 2022-04-17 07:28:57 +02:00
Matt Pavlovich ddbad25ec5
[AMQ-8567] Upgrade maven-surefire-plugin to 3.0.0-M6 (#819)
- Exclude problematic unit tests for now
2022-04-08 08:37:50 -05:00
Jean-Baptiste Onofré 3f454600e6
Merge pull request #809 from jbonofre/AMQ-8561
[AMQ-8561] Add missing jetty-webapp dependency in activemq-web
2022-04-06 07:43:26 +02:00
Christopher L. Shannon b93d58259c AMQ-8550 - Check for null keystore/truststore passwords
Inside ActiveMQSslConnectionFactory the passwords should be checked for
null so a NPE isn't thrown. Null will be passed to the factories instead
and the keystore/truststore factories will try and load the keystores
using null for the password which may or may not work depending on the
implementation and if password is set.
2022-04-05 12:17:14 -04:00
Jean-Baptiste Onofré ffab5274a4 Fix OfflineDurableSubscriberTimeoutTest on some machine (including Jenkins) 2022-04-03 19:22:58 +02:00
Christopher L. Shannon (cshannon) 3d06efe93d AMQ-8530 - Update to geronimo-annotation_1.3_spec 2022-03-09 08:14:43 -05:00
Christopher L. Shannon 32e72b0879 AMQ-8528: Fix test failures in integration module
-DurableFiveBrokerNetworkBridgeTest: Fix refactoring mistake
-SpringTest: Fix Spring xml files
-BrokerRedeliveryTest: Fix after sendDuplicateFromStoreToDLQ default
changed to false
-AMQ4952Test: Fix after sendDuplicateFromStoreToDLQ default
changed to false
-AMQ3537Test: Add missing package to SERIALIZABLE_PACKAGES
-OfflineDurableSubscriberTimeoutTest: Fix after log4j2 update
-JDBCConcurrentDLQTest: Fix after log4j2 update
2022-03-08 13:29:09 -05:00
Christopher L. Shannon (cshannon) 957a2dd940 AMQ-8528: Fix JMS 2.0 related test failures 2022-03-08 11:10:16 -05:00
Christopher L. Shannon c4d9d70987
NO-JIRA: Activate quick-tests by default (#792) 2022-03-04 19:00:39 -06:00
Christopher L. Shannon (cshannon) ae30dce4e2 AMQ-8520: Log4j2 test fixes
Also fixes Log4jConfigView
2022-03-03 15:24:38 -06:00
Matt Pavlovich 7ec5254bb5 [AMQ-8520] WIP: Convert activemq-unit-tests to log4j2 2022-03-03 15:24:38 -06:00
Christopher L. Shannon (cshannon) f240cb5806 AMQ-8520: Re-enable all modules to compile and build by default
Updates the modules part of the previous full.test profile to always
build but skip running tests by default.

Also fixed miss dependency updates including log4j and jetty
2022-03-02 10:49:52 -05:00
Christopher L. Shannon (cshannon) 00253b3219 NO-JIRA: Updating next development version to 5.18.0-SNAPSHOT 2022-03-01 09:36:34 -05:00
Jean-Baptiste Onofré e597017200
Merge pull request #662 from jbonofre/AMQ-7426
[AMQ-7426] Upgrade to log4j2
2022-02-27 13:23:53 +01:00
Matt Pavlovich 094dbc89f3
[AMQ-8515] FailoverTransport should handle MaxFrameSizeExceededException (#785) 2022-02-25 19:46:45 -06:00
Matt Pavlovich 9956dd602a
[AMQ-8440] Set sendDuplicateFromStoreToDLQ to 'false' by default (#773) 2022-02-24 08:45:35 -06:00
jbonofre 472dcf8497 [AMQ-7426] Upgrade to log4j2 2022-02-24 15:20:51 +01:00
Christopher L. Shannon 856d54c7bc
Merge pull request #762 from mattrpav/AMQ-8443-tests
[AMQ-8443] Add unit test
2022-02-09 10:48:04 -05:00
Matt Pavlovich 09458713aa [AMQ-8443] Add unit test 2022-02-09 08:50:24 -06:00
Christopher L. Shannon a7109bc025
Merge pull request #761 from mattrpav/AMQ-8397-tests
[AMQ-8397] Add unit tests for AMQ-8397
2022-02-09 06:33:52 -05:00
Matt Pavlovich 9d8ee0d3b7 [AMQ-8397] Add unit tests for AMQ-8397 2022-02-08 22:19:57 -06:00
Matt Pavlovich 2a9f777aab [AMQ-8413] NetworkConnectore remote user and pass unit test 2022-02-07 08:22:27 -06:00
Christopher L. Shannon fb036974ca
Merge pull request #758 from mattrpav/AMQ-8053b
[AMQ-8053] UserIDBroker unit tests
2022-02-07 08:28:08 -05:00
Christopher L. Shannon (cshannon) 26a3c55833 AMQ-8412 - Add wireformat negotiation test for maxFrameSizeEnabled
Verify that maxFrameSizeEnabled being configured on the client or the
server is not negotiated and won't affect the other
2022-02-07 08:03:06 -05:00
Matt Pavlovich 67a2edbf0d [AMQ-8412] Update client-side maxFrameSize handling to be more symetrical with server-side
- Handle in the OpenWireFormat class
 - Add unit tests to confirm
 - Verify compression is accounted for
 - Verify the ability to disable using wireFormat.maxFrameSizeEnabled=false
 - [cshannon] Reworked max frame size test case to add in all transports and all client/server cases
2022-02-06 17:45:11 -06:00
Matt Pavlovich 49f1b2c903 [AMQ-8053] UserIDBroker unit tests 2022-02-06 12:46:44 -06:00
Endre Stølsvik 9167a79b79 StatisticsBrokerPlugin: Add feat: request destination firstMessageTimestamp
Adding a feature (STATS_FIRST_MESSAGE_TIMESTAMP) to the
StatisticsBrokerPlugin's destination-statistics for getting the
timestamp of the first message in the destination(s) being requested: If
you on the query-message set the property
StatisticsBroker.STATS_FIRST_MESSAGE_TIMESTAMP to anything (e.g. boolean
true), a long value "firstMessageTimestamp" will be added to the
statistics reply message(s). Since the reply message has JMSTimestamp
set, which is the broker's now-timestamp, you may also on the query side
calculate the age of the first message in milliseconds. The key name was
chosen since that is the name of the corresponding feature in Artemis.

This extension of the existing feature is implemented to be as
non-intrusive as possible, adding very little runtime cost if not
requested. It also seems like the runtime cost for enabling this
feature, thus finding and adding the firstMessageTimestamp, is small.

While at it, also slightly improving an existing feature
(STATS_DENOTE_END_LIST) where a reply to a destination query can be
"null terminated": After sending the relevant replies, the
StatisticsBroker also sends an empty message. This feature is relevant
if the query is a wildcard query, thus returning multiple messages: The
empty message denotes the end of the replies. However, to activate this
feature, a somewhat complicated query destination had to be constructed.
Adopting the solution for the other StatisticsBroker feature where you
may reset the broker statistics by adding a property to the query
message, this null-termination feature now /also/ checks for the
presence of this query modifier STATS_DENOTE_END_LIST as a property.
(This property based solution was thus also adopted for the present
'firstMessageTimestamp' solution, as it was found much more intuitive).

Added tests for both the STATS_FIRST_MESSAGE_TIMESTAMP query modifier,
and the improved STATS_DENOTE_END_LIST property-based query modifier.

Had to make the Topic.doBrowse(List browseList, int max) public - the
corresponding method for Queue was already public.

Made the evaluation of whether this is a StatisticsBroker-relevant
message a microscopic bit more performant (exiting faster if not
relevant): To the initial test of whether the message is relevant, which
only checked for replyTo being set, a check for 'destination.
startsWith("ActiveMQ.Statistics")' was added. Only if so, the rest of
the evaluations kick in. Also using 'string.startsWith(..)' instead of
the verbose 'string.regionMatches(..)'.

Removed an unused import on PartitionBrokerTest.java, as IntelliJ
complained about not finding it.
2022-01-25 09:45:48 +01:00
Jean-Baptiste Onofré 3d2fb2b609
Merge pull request #707 from AlexejTimonin/sendTextMessageWithProperties-delimiter
[AMQ-8372] Allow custom delimiter when sending TextMessages via MBean
2022-01-22 17:14:03 +01:00
Jean-Baptiste Onofré ee21925c08 [AMQ-7325] Upgrade to Derby 10.15.2.0 2022-01-17 16:29:53 +01:00
Jean-Baptiste Onofré de563e76ce
Merge pull request #738 from mattrpav/AMQ-8341
[AMQ-8341] Remove FTP Blob strategy
2022-01-15 07:01:25 +01:00
Jean-Baptiste Onofré ff134fd135 [AMQ-8456] Fix unit test compilation 2022-01-12 20:36:29 +01:00
Matt Pavlovich 2e784d07be [AMQ-8341] Remove FTP Blob strategy
- Remove commons-net dependency
2022-01-12 11:05:43 -06:00
Matt Pavlovich 67256c61b1
[AMQ-7309] Update to jakarta.jms/jakarta.jms-api:2.0.3 (#682)
- API update only
 - Throw UnsupportedOperationException
 - Disable activemq-camel from build
 - Formatting fixes
 - Use geronimo-jms for osgi-related artifacts
 - Fix features.xml invalid xml header
 - Add a unit test to confirm JMS 2.0 methods for phase 1 (throw UnsupportedOperationException)
 - Add deliveryTime field to Message
 - Minor formatting fixes
2021-11-10 11:56:04 -06:00
Alexej Timonin 7c63227003 Allow custom delimiter when sending TextMessages via MBean
This enables possibility to send messages containing commas in the body
with tools such as jconsole.
Example simple text as body: body=Hello, world!
Example json as body: body={"a":"b","c":"d"}
2021-09-04 22:31:22 +02:00
Matt Pavlovich c1a2ff25c1
[AMQ-8033] Remove activemq-camel (#701)
* [AMQ-8033] Remove activemq-camel

 - Prerequisite for JMS v2.0 support

* [AMQ-8033] Remove activemq-camel

 - Prerequisite for JMS v2.0 support

* [AMQ-8033] Assembly and karaf clean-ups
2021-09-03 11:21:13 -05:00
Christopher L. Shannon (cshannon) 8b99596eeb AMQ-8349 - Ensure virtual destination consumer advisories are only
replayed to new advisory consumers and not existing
2021-08-05 09:58:37 -04:00
gtully c4d2ddfce9 AMQ-7298 - fix regression with broker redelivery plugin, fix and test relates to AMQ-8168 2021-04-16 13:12:13 +01:00
charlie-aws f8b0db2dd4 fix BrokerServiceTest by replacing powermock
fix BrokerServiceTest by replacing powermock
2021-03-29 10:30:47 -07:00
Jean-Baptiste Onofré 25b639c464
Merge pull request #593 from jbonofre/AMQ-7502
[AMQ-7502] Remove leveldb
2021-03-29 18:00:36 +02:00
charlie-aws 30986e372c AMQ-8189 add wait time to CachedLDAPAuthorizationModuleTest 2021-03-25 13:05:37 -07:00
jbonofre 52a2bd446a [AMQ-7502] Remove leveldb 2021-03-25 18:54:53 +01:00
Jean-Baptiste Onofré fc0999cc87
Merge pull request #639 from charlie-cyf/AMQ8190
AMQ-8190 add wait time & shrink duration for CI test run
2021-03-25 12:51:22 +01:00
Jonathan Gallimore edd0515d90 AMQ-8201 Forward commit commands for local transactions as well as XA transactions during ACK compaction 2021-03-25 11:02:53 +00:00
Charlie Chen 6691e23e48 AMQ-8190 add wait time & shrink duration for CI test run 2021-03-24 20:35:07 -07:00
gtully 09389d1ef3 AMQ-8202 - fix concurrency issue on tracking stores in mKahaDB, exposed by virtual topic concurrentSend 2021-03-24 15:55:44 +00:00
kimmking b6ab868f94
ClientIdFilterDispatchPolicy dispatches messages in a topic to a given client. Then the message with a PTP_CLIENTID property, can be received by a mqtt client with the same clientId. (#238) 2021-03-22 16:22:01 +01:00
Christopher L. Shannon (cshannon) 2cf3decd8e AMQ-8184 - Re-enable NIO tests
Re-enable the nio transport tests in activemq-unit-tests by default to
catch transport errors. Also fix broken tests
2021-03-11 11:16:29 -05:00
Christopher L. Shannon (cshannon) 944ca6c7e1 AMQ-8183 - prevent infinite loop when maxFrameSize is exceeded
This makes sure the nio transport thread properly terminates if
maxFrameSize is exceeded with OpenWire to prevent an infinite loop that
uses up all the cpu
2021-03-11 09:59:36 -05:00
gtully 2f40261362 AMQ-8131 - revert treating unmatched as real acks b/c individual acks are not tracked. make use of enableMessageExpirationOnActiveDurableSubs to ensure unmatched can eventually expire 2021-02-01 12:11:30 +00:00
gtully e1b3204407 AMQ-8131 - track unmatched acks in the acks table 2021-01-28 14:46:29 +00:00
jbonofre 295400ae33 Fix missing ASF header 2021-01-13 15:17:06 +01:00
Marcono1234 9d220c286d
README and minor code fix (#598)
Fix README link and cleanups
2021-01-05 16:15:04 +01:00
Roman Nevezhyn 651c5ff2cf - Tests AMQ-8104
- Fixes AMQ-8104
2020-12-16 12:54:03 -08:00
jbonofre 671f201a85 Quick fix on InMemoryJobSchedulerTest 2020-12-02 10:06:11 +01:00
jbonofre 2bc87c2c5f [AMQ-8068] Fix topic memory leak on message eviction using UniquePropertyMessageEvictionStrategy 2020-11-23 06:26:37 +01:00
jbonofre 5c7e23ac90 Increase AMQ6815Test timeout (failing on slow machine like Jenkins) 2020-11-23 06:26:04 +01:00
Jean-Baptiste Onofré fbdb302968
Merge pull request #571 from dhmgit/durable-sub-message-expiration
Adding an option which allows messages to expire on active durable subscriptions
2020-11-22 07:10:43 +01:00
murali.mogalayapalli 55914d3ac1 [AMQ-8028] Add sendWhenNotMatched option to composite destination filter 2020-11-21 14:20:08 +01:00
jbonofre c9e4abf274 Give more time to AMQ6815Test (for Jenkins) 2020-11-19 08:43:50 +01:00
jbonofre 75c3fd4c34 Improve AMQ7118Test stability 2020-11-18 09:02:25 +01:00
dhmgit 2f2fe6855f adding an option which allows messages to expire on active durable subscriptions 2020-11-10 10:22:32 -05:00
gtully 0c986c33f6 AMQ-8039 - support system property configuration of the inactivity monitor thread pool, follow example of nio. new test to verify 2020-09-11 10:39:15 +01:00
gtully 0e2b24be36 AMQ-8023 - serialize sub add with destination removal advisory processing to avoid resub blocking a necessary purge via removal, fix and test via mqtt clean session scenario 2020-08-25 16:56:50 +01:00
Jean-Baptiste Onofré d2851888bf
Merge pull request #551 from coheigea/AMQ-7513
AMQ-7513 - Fix http://activemq.org links
2020-08-11 09:42:43 +02:00