Commit Graph

2413 Commits

Author SHA1 Message Date
Justin Bertram e47b7992ca
ARTEMIS-4010 LegacyLDAPSecuritySettingPlugin missing data
In commit a9a85f98db I removed the code
which modified existing matches. However, I forgot that the matches read
from LDAP are often duplicated so instead of always adding a new match
this commit ensures that the *right* match is modified rather than a
potentially more generic wildcard match (which was the original
problem).
2022-09-23 21:29:35 -05:00
Clebert Suconic e865558b30 ARTEMIS-3763 Fixing test I missed on my previous commit for JDBCLock 2022-09-22 14:39:48 -04:00
Marlon Müller 9fa36e7c53 ARTEMIS-3763 Use margin when checking time difference between broker and database
* Add configurable time margin for checking offset between database server and broker when updating lease lock
2022-09-22 14:34:33 -04:00
Justin Bertram cd7555c523 ARTEMIS-3264 handle core-to-AMQP conversion failures more gracefully
If an AMQP consumer tries to receive a message and the broker is unable
to convert the message from core to AMQP then the consumer is
disconnected and the offending message stays in the queue. When the
consumer reconnects the conversion error will happen again resulting in
a loop that can only be resolved through administrative action (e.g.
deleting the message manually or sending it to a dead letter address).

This commit fixes that problem by detecting the conversion problem and
sending the message to the queue's dead letter address. It also doesn't
disconnect the consumer.

This commit also changes the log messages associated with sending a
message to the dead letter address since this event can now occur
regardless of the delivery attempts.
2022-09-22 09:55:36 -04:00
Clebert Suconic 5d8e7fe829 [maven-release-plugin] prepare for next development iteration 2022-09-21 13:00:47 -04:00
Clebert Suconic 2d7b1a3ef7 [maven-release-plugin] prepare release 2.26.0 2022-09-21 13:00:46 -04:00
Gary Tully 2d662a07f3 ARTEMIS-4007 - expose status attribute on configuration that can hold version or error state and reflect modifications via refresh 2022-09-21 11:49:26 -04:00
Gary Tully d7d1c2ee42 ARTEMIS-4001 - add properties url to the reload manager watch list, validate queue creation on reload with new test 2022-09-20 15:39:32 +01:00
Justin Bertram 8b56c04293
ARTEMIS-3962 porting changes from AMQ-5281
Incorrect handling of unknown values in selectors.

There is a slight semantic change here due to an error in the way we
were handling null identifiers. This may require a change in selector
syntax to use "IS NULL" or "IS NOT NULL" when using identifiers which
may be null in the message being selected.

This was the case for an internal filter used by the cluster connection
bridge to select which cluster notification messages to consume.

See https://issues.apache.org/jira/browse/AMQ-5281 for more details.
2022-09-19 14:45:05 -05:00
Domenico Francesco Bruscino 93a5f3b596 ARTEMIS-3999 Fix setting extraParams for new acceptors via broker properties 2022-09-19 08:18:12 +02:00
Domenico Francesco Bruscino fda7f6ba37 ARTEMIS-3998 Fix broker properties for connectionRouters 2022-09-15 15:42:29 -04:00
Justin Bertram 27008758fe
ARTEMIS-3986 CME when using LVQ
The map used by LastValueQueue was inadvertently changed to a
non-thread-safe implementation in
4a4765c39c. This resulted in an occasional
ConcurrentModificationException from the hashCode implementation.

This commit restores the thread-safe map implementation and adds a test
which brute-forces a CME when using the non-thread-safe implementation.
2022-09-15 11:11:19 -05:00
Gary Tully c8624f57d7 ARTEMIS-3978 - allow federation upstream configuration via properties 2022-09-15 13:27:41 +01:00
Justin Bertram a9a85f98db ARTEMIS-3984 LegacyLDAPSecuritySettingPlugin shouldn't modify existing matches
When the LegacyLDAPSecuritySettingPlugin has enableListener set to true
and a new permission is added it will try to modify the existing match
if one exists. This is problematic if there's a more generic wildcard
match than the specific one that's modified.

This commit fixes that problem so that instead of modifying the existing
match(es) it simply adds a new one. The plugin never should have tried
modifying the existing match in the first place as two identical matches
would be a configuration error.
2022-09-13 19:11:28 -04:00
Emmanuel Hugonnet 51ccc7d6c2
ARTEMIS-3989 ActiveMQServerControl.getRoles doesn't return all roles
- Fixing RoleInfo to provide informations on deleteAddress.
 - Adding more coverage on test to check the number of permissions
   returned.

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2022-09-13 14:43:58 -05:00
Clebert Suconic c4145e9226 ARTEMIS-3973 Solving concurrent issue between Subscription.ack and moveNext under heavy CPU usage 2022-09-13 10:49:22 -04:00
Clebert Suconic 4ad830fb95 Bumping artemis as 3.0
After removing ActiveMQ Artemis rest (per ARTEMIS-3987), we should start promoting Artemis as 3.0
2022-09-12 15:09:31 -04:00
Robbie Gemmell 66ac39eb81 ARTEMIS-3971: set -noindex to exclude various .js files from javadoc output 2022-09-06 17:23:56 +01:00
Clebert Suconic 11eab60584 [maven-release-plugin] prepare for next development iteration 2022-08-30 18:04:06 -04:00
Clebert Suconic fb1b362b47 [maven-release-plugin] prepare release 2.25.0 2022-08-30 18:04:05 -04:00
Clebert Suconic d4cbbfde1e ARTEMIS-3943 Changing default broker.xml and xsd with max-page-read comments and defaults 2022-08-30 13:45:17 -04:00
Rico Neubauer 6482805f7d
ARTEMIS-3922 Reducing contention on Throwable#getOurStackTrace
By allowing to pass caller's classname directly to org.apache.activemq.artemis.utils.ActiveMQThreadFactory#defaultThreadFactory instead of calculating it from stack.
2022-08-30 11:08:31 -05:00
Domenico Francesco Bruscino 45a1245cb0 ARTEMIS-3963 Fix setting security roles via properties on OpenJ9 JDK 11
RoleSet.class.getMethods() returns the same methods on both OpenJDK 11 and
OpenJ9 JDK 11 but the order is different. OpenJDK 11 returns
`public void org.apache.activemq.artemis.core.config.impl.RoleSet.add` before
`public boolean java.util.HashSet.add` while OpenJ9 JDK 11 returns
`public boolean java.util.HashSet.add` before
`public void org.apache.activemq.artemis.core.config.impl.RoleSet.add`
2022-08-30 12:06:20 -04:00
Clebert Suconic d06459df57 ARTEMIS-3943 Adjusting defalut address settings to avoid OME from paging and flow control 2022-08-30 09:26:35 -04:00
Justin Bertram 0e56d1a567 ARTEMIS-3961 don't log OperationContext 2022-08-29 16:27:40 -04:00
Justin Bertram 755b987ab1
ARTEMIS-3958 sending LWT may recurse infinitely if disk full
Due to the changes in 682f505e32 we now
send "Last Will & Testament" MQTT messages via ServerSession. This means
sending will fail if the disk is full. For MQTT this triggers a
connection failure which in turns triggers sending an LWT message. This
process will recurse infinitely until it results in a
java.lang.StackOverflowError.

This commit fixes that by tracking whether or not sending a LWT message
is already in progress.
2022-08-26 11:13:01 -05:00
Justin Bertram a0f39a4b28 ARTEMIS-3956 clean up use of RemotingConnection
org.apache.activemq.artemis.spi.core.protocol.RemotingConnection has a
number of implementations most notably an abstract version which
provides many methods shared among the implementations. The sharing
could be improved to eliminate duplicate code.

This commit eliminates more than 700 lines of unnecessary code.

There should be no semantic changes.
2022-08-25 18:12:11 -04:00
Justin Bertram 729fdc4aab ARTEMIS-3955 consolidate Subject on RemotingConnection 2022-08-25 18:12:11 -04:00
Justin Bertram f88381430c
ARTEMIS-3872 fix NPE 2022-08-25 15:16:32 -05: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 f1c9e3df14
ARTEMIS-3947 fix merging for expiry address-settings 2022-08-19 22:38:41 -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 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 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
Andy Taylor 609343ec78 ARTEMIS-3917 Fix incorrect getters/setters on Configuration API
and added test for primitive configuration properties

https://issues.apache.org/jira/browse/ARTEMIS-3917
2022-08-02 08:58:47 -04:00
Andy Taylor d67910f1a6 added test for mirroring and properties 2022-08-01 11:20:09 -04:00
Justin Bertram 7184862bb5
NO-JIRA update XSD missed in ARTEMIS-3805 2022-07-29 09:35:48 -05:00
Domenico Francesco Bruscino d250801fcf ARTEMIS-3900 Support management allowlist entries with wildcard domain 2022-07-28 13:39:00 -04:00
Clebert Suconic e44bd5266f ARTEMIS-3909 Move RoutingContext::processReferences as a static method in PostOffice
We were lucky that processReferences was pretty much a static operation, hence I am moving it away from RoutingContext both for clarity and avoiding state being needed on that method.
If state was needed as part of processReferences you would had a pretty nasty bug as the IOCallback could introduce a race where a send would change the state while the IO was pending.
2022-07-28 13:04:10 -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 55865ab4b4 Revert "ARTEMIS-3902 Adding reason to Audit Security Message"
This reverts commit db8f530256.
2022-07-22 11:37:46 -04:00
Clebert Suconic db8f530256 ARTEMIS-3902 Adding reason to Audit Security Message 2022-07-22 11:22:30 -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 a2262612ca
ARTEMIS-3892 fix tests, add docs 2022-07-20 11:36:12 -05:00
Justin Bertram 688b894c62 ARTEMIS-3896 clarify logging for transactional ops
Both audit logging and logging from the LoggingActiveMQServerPlugin are
unclear as they relate to transactional sends and acks. Both essentially
ignore the transaction which makes it appear that an operation has taken
place when, in fact, it hasn't (e.g. a transactional ack is rolled back
but the log indicates the ack went through).

This commit fix this with the following changes:

 - Log details when a send or ack is added to a transaction.
 - Log details when the transaction is committed.
 - Log when the transaction is rolled back.
 - Include transaction details in the relevant DEBUG logs.
 - Simplify INFO level logging for sends & acks in
LoggingActiveMQServerPlugin. Ensure details are in the DEBUG logs.

Other changes:

 - Make capitalization more consistent in a handful of audit logs.
2022-07-20 11:35:18 -04: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 8e54a65227 ARTEMIS-3767 Incompatibility on replication between 2.17 and current version 2022-07-18 16:34:31 -04:00
Gary Tully 7bc3b02809 ARTEMIS-3895 - treat properties url with trailing slash as directory of .properties files and apply in lexical order of name 2022-07-18 10:38:54 +01:00
Clebert Suconic 0f5bd28e23 ARTEMIS-2894 Small tweak into newInstance call 2022-07-14 11:55:24 +01:00
Gary Tully d3ed11da2a ARTEMIS-3894 - resolve errorprone warn on vargs call 2022-07-13 15:44:26 -04:00
Gary Tully 7ee820864b ARTEMIS-3894 - add conversion from string for list - allow core bridge static connector config via properties 2022-07-13 15:44:26 -04:00
Gary Tully 1f2543029c ARTEMIS-3891 - allow TransformerConfig creation via properties 2022-07-13 00:01:35 -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
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
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
Ryan Highley 2123de415b ARTEMIS-3873 AMQP Broker Conn Encrypted Attrs
Adds support for ENC(...) attribute values for user and password on
amqp-connection.
2022-06-27 14:37:27 +02:00
Gary Tully 6d926719f4 ARTEMIS-3863 - allow Role configuration via properties 2022-06-23 09:41:33 +01: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
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
Clebert Suconic a2dd805a2f ARTEMIS-3848 High CPU usage on ReadWriteLocks
This is caused by too many entries on the HashMap for ThreadLocals.
Also: I'm reviewing some readlock usage on the StorageManager to simplify things a little bit.
2022-05-25 12:27:57 -04: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
Gary Tully b390a6b08f ARTEMIS-3835 - deprecate addressesSettings in place of addressSettings on the Configuration bean 2022-05-18 08:13:17 +02:00
Gary Tully 168b61ec38 ARTEMIS-3826 - allow address/queue configuration via properties 2022-05-18 08:07:58 +02:00
Clebert Suconic bed9af2e51 ARTEMIS-3825 Improve Print-data output with non existing queues 2022-05-10 16:53:53 -04:00
Domenico Francesco Bruscino 7a03f58be9 ARTEMIS-3816 Fix connection router null pointer dereferences 2022-05-10 10:02:46 +02:00
Gary Tully d433f3bc3f ARTEMIS-3823 - limit modulo operation to positive hash values 2022-05-10 10:01:24 +02:00
Clebert Suconic e420eb4732 ARTEMIS-3817 SchedulePageCleanup operation on AddressControl 2022-05-09 09:17:56 -04:00
iliya 0b321ab8ff ARTEMIS-3759 Add mirror controller address filter support
Allow replication only certain addresses with mirror controller.
The configuration is similar to cluster address configuration.

Co-authored-by: Robbie Gemmell <robbie@apache.org>
2022-05-04 21:25:58 -04:00
Clebert Suconic ee51a7806d ARTEMIS-3811 Cluster connections clashing with ANYCast addresses
This is a test fix for AMQPClusterReplicaTest
2022-05-03 12:55:23 -04:00
Clebert Suconic 784b0e967e ARTEMIS-3810 Do not throw error resuming already active XA Transaction 2022-05-02 14:45:07 -04:00
Clebert Suconic 48cd586ac5 ARTEMIS-3807 Simplify Redistributor avoid races, and fix ProtocolMessageLoadBalancingTest
The control existing in Redistributor is not needed as the Queue::deliver will already have a control on re-scheduling the loop and avoid holding references for too long.
2022-04-29 08:24:06 -04:00
Clebert Suconic 57fa8b8271 [maven-release-plugin] prepare for next development iteration 2022-04-27 17:26:46 -04:00
Clebert Suconic 1a49845628 [maven-release-plugin] prepare release 2.22.0 2022-04-27 17:26:45 -04:00
Domenico Francesco Bruscino eb6264239e ARTEMIS-3803 Fix first NetworkHealthCheck execution
The NetworkHealthCheck hasn't to execute the default command if a custom
command is defined.
2022-04-26 17:11:48 -04:00
Clebert Suconic 5e6f599f80 ARTEMIS-3805 producer-window-size default 2022-04-26 16:14:14 -04:00
Clebert Suconic 28513e048f ARTEMIS-3753 Small Improvement on RouterContext.internalOnly calculation 2022-04-23 11:20:48 -04:00
iliya 99302b1935 ARTEMIS-3753 Prevent sending message to internal queues on mirror
In cluster configuration messages could be routed to internal queues for
further delivering on different broker. We need to check that before
sending to SNF, otherwise message can stuck on target server and will
never receive ACK.

co-author: Clebert Suconic

Discusssions on https://github.com/apache/activemq-artemis/pull/4012 and https://github.com/apache/activemq-artemis/pull/4038
2022-04-23 10:13:21 -04:00
Emmanuel Hugonnet 52a4157bbb [ARTEMIS-3756]: Enabling extra parameters to be passed by the URI.
* passing the full list of parameters when creating the URI.
 * moving the WARN message to DEBUG when unknown parameters are
   received.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-3756
2022-04-21 19:00:55 -04:00
Justin Bertram 650952ba67 ARTEMIS-3755 mitigate NPE related to fail-back 2022-04-21 18:55:00 -04:00
Clebert Suconic 857f9f1db8 ARTEMIS-3765 Fixing testsuite
we cannot really change the attribute's name as it may break user's applications.
I am adding the previous property here.
2022-04-20 21:20:11 -04:00
Gary Tully f9f70aeb4c ARTEMIS-3786 - ensure named properties config from routerConfiguration can be created from string property value 2022-04-20 12:26:12 -04:00
aaron.hoffer d0574b39af
ARTEMIS-3765 Display validated user in Hawtio
This PR adds a "Validated User" column to the Hawtio plugin. The column is
not visible by default. The "Validated User" column is available in the
Session, Consumer, and Producer tabs of the artemis-navigation notebook.
"Validated User" is also available for sort and filtering in those view.
The "Validated Consumer" in the Producer view is always blank. I debugged
as far as I could, but did not find the cause of the issue.
2022-04-19 09:49:31 -05:00
iliya 20370d2920 ARTEMIS-3751 Do not override large message size
It is possible to receive a compressed message from the client as regular message. Such a message will already contain correct body size, that takes compression into account.
2022-04-18 15:01:44 -04:00
Clebert Suconic da5d5e504f ARTEMIS-3779 Critial IO Exception logged as Error 2022-04-14 18:04:06 -04:00
Clebert Suconic d0036ee0cc ARTEMIS-3778 Just avoiding NPE on Expiry Reaper
Added an extra check on null, just in case
it should not happen, but I preferred adding this clause on the safe side
2022-04-14 17:13:35 -04:00
Clebert Suconic f4bdacbc4c ARTEMIS-3778 Streamline Expiration Reaping
Instead of holding a thread and an iterator, we should instead keep moving to next references
without holding any threads. Just with callbacks.
2022-04-14 13:04:51 -04:00
Clebert Suconic bc17acd6da ARTEMIS-3776 Avoid Integer.MAX_VALUE overflow on openwire clients
Older versions of Openwire clients wil be affected by AMQ-6431.
As a result of the issue if the ID of the message>Integer.MAX_VALUE
a consumer configured with Failover and doing duplicate detection on the client
will not be able to process duplicate detection accordingly and miss messages.
2022-04-13 11:11:10 -04:00
Robbie Gemmell 9d943483d5 ARTEMIS-3772: update to mockito 4.4.0 2022-04-08 13:38:41 +01:00
Clebert Suconic cfdb710a08 ARTEMIS-3761 Improve page cleanup to remove messages in the middle of the stream as well
Paging only removes files at the beginning of the stream...
Say you have paged files 1 through 1000...
if all the messages are ack, but one message on file 1 is missing an ack, all the 999 subsequent files would not be removed until all the messages on file 1 is ack.
This was working as engineered, but sometimes devs don't have complete control on their app.
With this improvement we will now remove messages in the middle of the stream as well.

There is also some improvement to how browsing and page work with this
2022-04-07 10:33:08 -04:00
Clebert Suconic 1da68b3024 ARTEMIS-3769 Fixing queue browsing iterator avoiding NoSuchElement exception from the Iteration
QueueImpl::browserIterator could throw NoSuchElementException and this is fixing the iterator
Found this while testing ARTEMIS-3761
2022-04-07 10:33:08 -04:00
Clebert Suconic bad1c26582 NO-JIRA Making AmqpFlowControlFailTest more accurate
this test was relying on internal details such as number of credits on the link.
The test was flaky and eventually failing or hunging.
2022-04-07 10:33:08 -04:00
Gary Tully 825264257a ensure temp files are off the base class temp folder rule root to get cleaned up post test 2022-04-06 12:04:25 +02:00
Gary Tully a739b9f068 ARTEMIS-3757 - allow system and env var substution of properties config, respect order of file loaded properties and add generic enum converter 2022-04-06 12:04:25 +02:00
Justin Bertram 5d970576da
ARTEMIS-3741 Cache MBeanInfoHelper results
The utility methods in
`org.apache.activemq.artemis.core.management.impl.MBeanInfoHelper` are
executed *a lot* - especially for Jolokia which is used by the web
console. The `MBeanOperationInfo` and `MBeanAttributeInfo` results are
static and reflection is slow therefore they should not be calculated
over and over again. Rather they should be calculated once and cached
for later use.

Caching these results significantly improves performance. Over the
course of 1,000,000 invocations the difference is several orders of
magnitude. This improves usability substantially when dealing with,
for example, tens of thousands of addresses and/or queues.
2022-03-30 11:57:28 -05:00
Clebert Suconic a0e7cb4eae [maven-release-plugin] prepare for next development iteration 2022-03-22 13:34:58 -04:00
Clebert Suconic d57ac487c7 [maven-release-plugin] prepare release 2.21.0 2022-03-22 13:34:55 -04:00
Domenico Francesco Bruscino 41463c8397 ARTEMIS-3710 Deprecate queues config element 2022-03-22 09:37:31 -04:00
Domenico Francesco Bruscino 603462a1a5 ARTEMIS-3708 Collapse key transformer into policy 2022-03-21 19:34:48 -04:00
Clebert Suconic 5f22a51926 ARTEMIS-3720 Improvements on Paging MaxMessages usage
I "used" the broker a little bit around max-messages and found a few minor issues.
2022-03-21 16:51:22 -04:00
Clebert Suconic 192933cce3 NO-JIRA Simplifying some formatting in logging 2022-03-21 16:37:19 -04:00
Domenico Francesco Bruscino 90af0b3ea9 ARTEMIS-3709 Add group-rebalance-pause-dispatch attribute to queueType 2022-03-21 13:49:50 -04:00
Domenico Francesco Bruscino d0c550bcd7 ARTEMIS-3729 Fix JMS CORE client commit after async sends 2022-03-21 10:36:28 -04:00
Clebert Suconic 0966f2d7a0 ARTEMIS-3720 Max Number Of Messages on a deciding policy for paging (global and address-settings) 2022-03-18 16:27:46 -04:00
Justin Bertram 1ed7cc1efc ARTEMIS-3719 DLA and expiry incorrect w/temp-queue-namespace
When using a temporary queue with a `temporary-queue-namespace` the
`AddressSettings` lookup wasn't correct. This commit fixes that and
refactors `QueueImpl` a bit so that it holds a copy of its
`AddressSettings` rather than looking them up all the time. If any
relevant `AddressSettings` changes the
`HierarchicalRepositoryChangeListener` implementation will still
refresh the `QueueImpl` appropriately.

The `QueueControlImpl` was likewise changed to get the dead-letter
address and expiry address directly from the `QueueImpl` rather than
looking them up in the `AddressSettings` repository.

I modified some code that came from ARTEMIS-734, but I ran the test that
was associated with that Jira (i.e.
`o.a.a.a.t.i.c.d.ExpireWhileLoadBalanceTest`) and it passed so I think
that should be fine. There actually was no test included with the
original commit. One was added later so it's hard to say for sure it
exactly captures the original issue.
2022-03-14 15:26:20 -04:00
Robbie Gemmell 36dcb30cda ARTEMIS-3591: stop paging checkMemory task executing twice 2022-03-14 15:26:01 -04:00
Justin Bertram c376503f35 ARTEMIS-3699 expose actual port on NettyAcceptor
It sometimes makes sense to set an acceptor's port to 0 to allow the JVM
to select an ephemeral port (e.g. in embedded integration tests). This
commit adds a new getter on NettyAcceptor so tests can programmtically
determine the actual port used by the acceptor.

This commit also changes the ACCEPTOR_STARTED notification and the
related logging to clarify the actual port value where clients can
connect.
2022-03-04 13:53:06 +00:00
nbrendah 7bee0d8923 ARTEMIS-3686: Adding example showing how to do telemetry support
This is adding an example intercepting and sending messages using opentelemetry to either Jaeger, zipkin or OTLP exporter
2022-03-03 11:08:53 -05:00
gtully dcaebfb24e ARTEMIS-3660 - rename broker-balancer to connection-router 2022-03-01 11:15:16 +01:00
Domenico Francesco Bruscino 2398e5a16c
ARTEMIS-3685 Fix BridgeTransformer resolver 2022-02-28 20:43:06 -06:00
Domenico Francesco Bruscino 263351b331 ARTEMIS-3685 Fix BridgeImpl init 2022-02-28 13:45:20 -05:00
Justin Bertram 2d16ec3305
ARTEMIS-3685 fix a couple more issues 2022-02-28 10:12:05 -06:00
Justin Bertram b5c25e871c
ARTEMIS-3685 fix a couple of issues 2022-02-28 09:55:08 -06:00
Justin Bertram bc65438344
ARTEMIS-3687 bridges with concurrency > 1 can leak 2022-02-26 15:16:04 -06:00
Justin Bertram c51fda09cd
ARTEMIS-3685 support reloading bridges 2022-02-26 15:16:04 -06:00
franz1981 101c0d2cd0 ARTEMIS-3679 Brokers shutdown after daylight saving fall back 2022-02-23 06:53:49 +01:00
gtully cdcbfb2ae0
ARTEMIS-3627 - support 25k type postfix, same feature as xml config, for long values 2022-02-17 15:20:52 -06:00
AntonRoskvist 99b9d87bfd
ARTEMIS-2934 Add option to suppress SESSION notifications 2022-02-17 14:56:16 -06:00
Matteo Baccan dc1c269b36 Fixed a typo error "unkown" -> "unknown" 2022-02-17 10:29:58 -05:00
Emmanuel Hugonnet 20bbfe3afb [ARTEMIS-3682]: No way of knowing if a bridge was successfully deployed
or not.

 * deployBridge now returns a boolean to know if the deployment
   succeeded or not.

Issue: https://issues.apache.org/jira/browse/ARTEMIS-3682
2022-02-15 09:05:35 -05:00
Domenico Francesco Bruscino bac579ac25
ARTEMIS-3573 Support PropertiesLoginModule custom password codecs 2022-02-07 20:31:30 -06:00
AntonRoskvist bf83a9b3d1
ARTEMIS-3608 - Add distribution for Multicast messages to OFF_WITH_REDISTRIBUTION to avoid message loss 2022-02-07 20:06:45 -06:00
Luis De Bello cf73e895f3
ARTEMIS-3613: Deprecating stompMaxFramePayloadLength in favour of webSocketMaxFramePayloadLength 2022-02-07 19:44:18 -06:00
Domenico Francesco Bruscino 290e5016c8
ARTEMIS-3645 Support broker balancer cache persistence 2022-02-07 19:08:00 -06:00
Justin Bertram ec52682697
ARTEMIS-3145 ensure lock validity before releasing 2022-02-07 09:07:12 -06:00
Justin Bertram bafa0fbb3c ARTEMIS-3641 move to the latest checkstyle 2022-02-07 10:02:09 -05:00
nbrendah dbb4cd0a7a
ARTEMIS-2582: EmbeddedActiveMQ.stop() should check for null 2022-02-07 08:55:57 -06:00
Clebert Suconic 100e4abd7b ARTEMIS-3670 Fixing Divert Update tests 2022-02-06 11:44:18 -05:00
Justin Bertram e582ce03a5
ARTEMIS-3644 add cert info to CONNECTION_CREATED notification 2022-02-04 14:37:15 -06:00
Justin Bertram f18dd80dc8 ARTEMIS-3662 remove deprecated config from default broker.xml
The auto-create-jms-queues, auto-delete-jms-queues,
auto-create-jms-topics, and auto-delete-jms-topics address settings
were deprecated in ARTEMIS-881 way back in 2016. There's no need to keep
them in the default broker.xml at this point.
2022-02-04 13:49:32 -05:00
Justin Bertram 9c459eb313 ARTEMIS-2413 upgrade JGroups
JGroups 3.x hasn't been updated in some time now. The last release was
in April 2020 almost 2 years ago. Lots of protocols have been updated
and added and users are wanting to use them. There is also increasing
concern about using older components triggered mainly by other
recently-discovered high-profile vulnerabilities in the wider Open
Source Java community.

This commit bumps JGroups up to the latest release - 5.2.0.Final.
However, there is a cost associated with upgrading.

The old-style properties configuration is no longer supported. I think
it's unlikely that end-users are leveraging this because it is not
exposed via broker.xml. The JGroups XML configuration has been around
for a long time, is widely adopted, and is still supported. I expect
most (if not all) users are using this. However, a handful of tests
needed to be updated and/or removed to deal with this absence.

Some protocols and/or protocol properties are no longer supported. This
means that users may have to change their JGroups stack configurations
when they upgrade. For example, our own clustered-jgroups example had to
be updated or it wouldn't run properly.
2022-02-04 13:47:11 -05:00
AntonRoskvist 263b723726 ARTEMIS-3646 - OpenWire, Fix overflowing prefetch and incorrect metrics for messages sent to DLQ 2022-02-04 13:40:32 -05:00
Justin Bertram e184038d05 ARTEMIS-3670 support diverting to multiple addresses 2022-02-04 11:39:16 -05:00
Justin Bertram 8063110644 ARTEMIS-3638 Support MQTT 5
MQTT 5 is an OASIS standard which debuted in March 2019. It boasts
numerous improvments over its predecessor (i.e. MQTT 3.1.1) which will
benefit users. These improvements are summarized in the specification
at:
https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901293

The specification describes all the behavior necessary for a client or
server to conform. The spec is highlighted with special "normative"
conformance statements which distill the descriptions into concise
terms. The specification provides a helpful summary of all these
statements. See:
https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901292

This commit implements all of the mandatory elements from the
specification and provides tests which are identified using the
corresponding normative conformance statement. All normative
conformance statements either have an explicit test or are noted in
comments with an explanation of why an explicit test doesn't exist. See
org.apache.activemq.artemis.tests.integration.mqtt5 for all those
details.

This commit also includes documentation about how to configure
everything related to the new MQTT 5 features.
2022-02-04 09:57:15 -05:00
Clebert Suconic ba02fccb77 ARTEMIS-3664 Critical Analyzer should not HALT or STOP the broker during the startup 2022-01-31 13:33:20 -05:00
Robbie Gemmell 8661cecb8f ARTEMIS-3655: isolate the errorprone dependencies to its profiles, enable everywhere, fix related problems, and update to 2.10. 2022-01-26 16:32:34 +00:00
Robbie Gemmell ee52e3de7c ARTEMIS-3650: simplify distribution to leverage module poms for most of work, ensure their deps are present
Fixes/tidies some module definitions to set appropriate test/etc dep scopes and/or exclude bits not used or passed on for usage.
2022-01-26 10:09:18 +00:00
gtully e164a5b3b8 ARTEMIS-3627 - fix regression in CriticalCrashTest - statically configured converters were being lost on new custom bean utils 2022-01-25 19:22:36 +00:00
gtully c05177d723 ARTEMIS-3627 - allow default classpath properties name to be configured and use non intrusive property for testing, root cause of falure in test identified by ARTEMIS-3652 2022-01-24 17:18:34 +00:00
gtully 10d93d9c92 ARTEMIS-3627 - support broker.properties for augmenting or supplying additional configuration via nested properties of the internal configuratinimpl bean - elements with a name attribute can be configured in collections, the type inferred by the add singular fluent api 2022-01-19 14:39:27 +00:00
Justin Bertram 951c506481 ARTEMIS-3637 config-delete-diverts not applied properly
The address-setting config-delete-diverts is not being applied correctly
hierarchically because it's not included in the merge() method. It is
also not being persisted to disk either. This commit fixes both issues.
2022-01-12 21:06:40 -05:00
Clebert Suconic e34677f5c0 [maven-release-plugin] prepare for next development iteration 2021-12-14 22:50:55 -05:00
Clebert Suconic 3dea7eeb71 [maven-release-plugin] prepare release 2.20.0 2021-12-14 22:50:53 -05:00
AntonRoskvist 7d129b36e9 Commits: 'Add redistribution to old Anycast consumers' and 'Changed redistributionDelay-check to earlier, improved test, reverted changes in ClusterTestBase' 2021-12-14 09:22:05 -05:00
Justin Bertram fac7f1692a ARTEMIS-3601 expose acceptors via management 2021-12-14 08:52:48 -05:00
Justin Bertram 996f6f46fe ARTEMIS-3115 use correct call timeout defaults for cluster-connection 2021-12-13 21:56:45 -06:00
Marlon Müller 47e947ad7b ARTEMIS-3542 Avoid requesting LDAP root attribute
Check getAttributes with dn of user entry to avoid missing permissions
2021-12-13 21:55:32 -06:00
Clebert Suconic 1e62979577 ARTEMIS-3604 Async sends overflowing server in OpenWire 2021-12-10 15:49:26 -05:00
gtully 158157260c ARTEMIS-2097 - via elastic queue use case test based on ARTEMIS-3365 and ARTEMIS-3569
scenario - avoid paging, if address is full chain another broker and produce to the head, consume from the tail using producer and consumer roles to partition connections. When tail is drained, drop it.
 - adds a option to treat an idle consumer as slow
 - adds basic support for credit based address blocking ARTEMIS-2097
 - adds some more visiblity to address memory usage and balancer attribute modifier operations
2021-12-09 10:14:20 +00:00
gtully 56299e846a ARTEMIS-3054 - fix lock inversion - intermittent failure of PageCleanupWhileReplicaCatchupTest and hang 2021-12-09 10:13:26 +00:00
gtully e0b16217a1 ARTEMIS-3594 - add support for a local target key transformer and an instance of CONSISTENT_HASH_MODULO that can be used to partition in a static cluster 2021-12-07 13:17:37 +00:00
Domenico Francesco Bruscino 3f7f8c0ecd ARTEMIS-3576 Fix toString methods throwing exceptions 2021-12-03 13:15:44 -05:00
Clebert Suconic 5730fcacfa ARTEMIS-3599 Removing finalization calls 2021-12-03 13:12:02 -05:00
franz1981 7e6373d4df ARTEMIS-3578 Save SimpleString duplication and long[] allocation while moving Core messages 2021-12-01 10:27:46 +01:00
franz1981 185236f74d ARTEMIS-3577 Save Core msg re-encoding due to msg copy 2021-12-01 10:27:46 +01:00
franz1981 ad4f6a133a ARTEMIS-3021 OOM due to wrong CORE clustered message memory estimation 2021-12-01 10:27:46 +01:00
Clebert Suconic 12a93e3c7e Revert "ARTEMIS-3576 Fix toString methods throwing exceptions"
This reverts commit fcd512f9de.

this will be re-applied after fixing the build and tests
2021-11-29 13:21:24 -05:00
Justin Bertram 5fe42dd0c4 ARTEMIS-3552 NPE on message expiration 2021-11-29 12:13:14 -05:00
Domenico Francesco Bruscino fcd512f9de ARTEMIS-3576 Fix toString methods throwing exceptions 2021-11-29 12:02:58 -05:00
Domenico Francesco Bruscino f8472fd736 ARTEMIS-3569 Validate users on AMQP remote open 2021-11-24 11:28:16 +01:00
gtully b979189187 ARTEMIS-3569 - balancer role_name local target, matches role of authenticated user 2021-11-24 11:28:16 +01:00
Clebert Suconic bfc10dcf8b ARTEMIS-3546 Jakarta javax.json incompability on jakarta all client
Domenico Bruscino provided the JSON Wrapper used here. Thanks Domenico!
2021-11-19 13:20:38 -05:00
gtully 8d50aa916c ARTEMIS-3581 - allow max-size-bytes=0 configuration force paging for an address, independent of the page-size-bytes 2021-11-18 09:44:13 +00:00
gtully 778ab4419f ARTEMIS-3575 - ensure message owner is set from journal reload, follow up on ARTEMIS-3067 2021-11-16 11:33:26 -05:00
Erwin Dondorp dde48d052f ARTEMIS-3556 show message protocol on message-view page 2021-11-10 20:46:55 -05:00
Clebert Suconic 98a6e42a57 ARTEMIS-3554 Invalid Prepared Transaction could interrupt server reload 2021-11-05 10:14:43 -04:00
Justin Bertram 4367ec40a6 ARTEMIS-649 deprecate the HTML based JMX reports
The HTML output methods are hold-overs from way back when the code-base
started off as JBoss Messaging 2 and the broker mainly ran in JBoss AS 4
and 5 which leveraged an HTML-based JMX console where these methods
would be executed and spit out nicely formatted data. That stuff has all
long since been retired so this commit deprecates the HTML-based
management methods so they can be removed completely in a future release.
JSON is a better structured output format for this and most of the
deprecated methods have JSON alternatives.
2021-11-04 11:36:49 -04:00
Clebert Suconic 8b3663e827 ARTEMIS-3538 Removing a few extra // ----- structural comments 2021-11-02 21:45:09 -04:00
Asukwo-comfort 923e4cc892 ARTEMIS-3538: Removing // --------- comments from the codebase 2021-11-02 21:44:12 -04:00
Clebert Suconic 1d0c0a8897 ARTEMIS-3541 createQueue ignoring autoDeleteAddress flag
Commit 481b73c8ca from ARTEMIS-3502
inadvertently broke this functionality. This commit restores the
original behavior.

autoDeleteAddress was renamed to forceAutoDeleteAddress which will ignore the address settings.

delete temporary queues will use forceAutoDeleteAddress=true.

this is done in collaboration with Justin Bertram
2021-11-02 08:56:15 -04:00
gtully c6b85ea4e3 ARTEMIS-1925 - fix test regression - isHighAcceptPriority does not need to check for off_with_redistribution 2021-11-01 13:08:26 +00:00
gtully 1839461204 ARTEMIS-3489 - fix JdbcLeaseLockTest fails sporadically in CI 2021-11-01 09:35:39 +00:00
pahamala a0c4cba7e1 ARTEMIS-3140 Extra options in LDAP login module
Adds support for extra configuration options to LDAP login module to
prepare for supporting any future/custom string configuration in LDAP
directory context creation.

Details:

 - Changed LDAPLoginModule to pass any string configuration not
recognized by the module itself to the InitialDirContext contruction
environment.
 - Changed the static LDAPLoginModule configuration key fields to an
enum to be able to loop through the specified keys (e.g. to filter out
the internal LDAPLoginModule configuration keys from the keys passed to
InitialDirContext).
 - Few fixes for issues reported by static analysis tools.
 - Tested that LDAP authentication with TLS+GSSAPI works against a
recent Windows AD server with Java
OpenJDK11U-jdk_x64_windows_hotspot_11.0.13_8 by setting the property
com.sun.jndi.ldap.tls.cbtype (see ARTEMIS-3140) in JAAS login.conf.
 - Moved LDAPLoginModuleTest to the correct package to be able to
access LDAPLoginModule package privates from the test code.
 - Added a test to LDAPLoginModuleTest for the task changes.
 - Updated documentation to reflect the changes.
2021-10-29 12:19:30 -05:00
gtully 2167ac2e30 ARTEMIS-1925 - ensure OFF_WITH_REDISTRIBUTION behaves like OFF for initial routing 2021-10-29 13:37:17 +01:00
Clebert Suconic fdc0cc591c ARTEMIS-3523 Small tweaks into AddressControl delegation 2021-10-21 13:20:19 -04:00
nbrendah ebf8adc72b ARTEMIS-3523: Created delegated methods replay in addressControl 2021-10-21 13:20:06 -04:00
Domenico Francesco Bruscino dca3facb55 ARTEMIS-3495 Fix backup cluster controller connection loops
Skip backup connector equivalent to cluster connector for cluster connections.
2021-10-21 10:46:59 +01:00
Justin Bertram 6d52f20edd ARTEMIS-3530 space in role list breaks user listing 2021-10-21 10:44:29 +01:00
gtully 925ceadffa ARTEMIS-3433 - allow null return and throw error only startup usage paths 2021-10-21 10:35:43 +01:00
gtully 3259791bbb ARTEMIS-3533 - respect extra url parameters from federation connector-ref 2021-10-20 09:44:21 +01:00
gtully cf85d35355 ARTEMIS-3308 - support federation of large messages 2021-10-20 09:43:11 +01:00
Clebert Suconic a833d95c1f ARTEMIS-3461 Generalize MBean Support on Messages and avoid converstion to core on AMQP Messages on console browsing
Done in collaboration with Erwin Dondorp through https://github.com/apache/activemq-artemis/pull/3794/
2021-10-17 11:25:27 -04:00
Clebert Suconic 1d84800d5a ARTEMIS-3529 Expire should not reject messages from duplicateID 2021-10-13 19:11:40 -04:00
Clebert Suconic 2383aa0125 ARTEMIS-3525 Empty Auto Created queues should be removed on restart 2021-10-12 12:54:48 -04:00
gtully 6f4c609ee0 ARTEMIS-3496 - add test to verify no reconnect on locators - mokito based and quite involved 2021-10-12 10:14:30 +01:00
franz1981 1dc9d4f455 ARTEMIS-3496 Replica connection to its live should fail fast 2021-10-12 10:14:30 +01:00
Justin Bertram 402842062a [maven-release-plugin] prepare for next development iteration 2021-10-11 13:35:57 -05:00
Justin Bertram 5fcb763234 [maven-release-plugin] prepare release 2.19.0 2021-10-11 13:35:06 -05:00
Justin Bertram c3d93f5590 ARTEMIS-3313 routing-type conflict during import/export 2021-10-08 08:09:21 -05:00
Clebert Suconic d125109784 ARTEMIS-3502 Removing non used logger method 2021-10-08 09:02:18 -04:00
gtully 5508b8a87a ARTEMIS-3365 - add simple local-target balancer example with amqp failover, remove manditory pool and policy config and update doc with data gravity concept 2021-10-07 15:23:58 +01:00
Robbie Gemmell a5b5a504e0 ARTEMIS-3038: unwind effect of defunct changes from ARTEMIS-1264
Follows earlier test removal in a3de3d4c75
2021-10-07 10:45:02 +01:00
Clebert Suconic 15c2dbb1c3 ARTEMIS-3521 Option to disable duplicate detection on openwire failover clients 2021-10-06 16:26:01 -04:00
Clebert Suconic ef9011a83c ARTEMIS-3519 OperationContext not respecting store lineups and dones on store only 2021-10-06 14:56:19 -04:00
Clebert Suconic 481b73c8ca ARTEMIS-3502 Auto delete & auto create leading to inconsistencies 2021-10-05 17:53:30 -04:00
Clebert Suconic ef63dc95bb ARTEMIS-3513 Compacting exception invalidates deletes and updates 2021-10-05 11:44:24 -04:00
Justin Bertram 8cf428ad49 ARTEMIS-3433 mitigate NPE
It is technically possible for
OpenSSLContextFactoryProvider.getOpenSSLContextFactory() to return
null so we need to check to avoid an NPE.
2021-10-04 14:47:08 -05:00
AntonRoskvist 919245b3b3 ARTEMIS-3501 Added exception handling on #handleAddMessage to not stop broker from starting with currupted messages 2021-09-29 13:39:49 -05:00
Robbie Gemmell 20511375de NO-JIRA: update to errorprone 2.9.0, fix errors, enable it when running on Java 17+ 2021-09-29 11:55:40 +01:00
Andy Taylor e37175784c ARTEMIS-3493 - expose User ID (JMS Message ID) in send tab of console
https://issues.apache.org/jira/browse/ARTEMIS-3493
2021-09-28 08:11:26 +01:00
Clebert Suconic 116545c589 ARTEMIS-3498 Bridge reconnects will not clear delivering count statistics on internal queues 2021-09-24 16:40:59 -04:00
Clebert Suconic e4276e8cd0 NO-JIRA Update Paging Logging with extra information 2021-09-24 13:18:35 -04:00
gtully 72cfda6b1a ARTEMIS-2007 - refactor to make use of existing refCountForConsumers for tracking consumer count and remove need for volatile redistributor 2021-09-24 15:07:01 +01:00
gtully 28a10450b7 ARTEMIS-3106 - add some doc for SASL SCRAM-SHA
Update docs/user-manual/en/security.md
Co-authored-by: Robbie Gemmell <robbie@apache.org>
2021-09-24 15:03:00 +01:00
Emmanuel Hugonnet fa439375e9 [ARTEMIS-3494]: ActiveMQClientProtocolManagerFactory shouldn't have a private constructor.
* Removing the 'private' constructor
* Removing the use of a static getInstance

Issue: https://issues.apache.org/jira/browse/ARTEMIS-3494
2021-09-23 11:28:06 +02:00
Domenico Francesco Bruscino 569c5994a5 ARTEMIS-3491 Fix cluster connection restart 2021-09-17 19:45:08 +02:00
Robbie Gemmell 515ac3a7cb ARTEMIS-3475: fix recursion and duplicate class name print from 2481a784f3 2021-09-17 15:48:48 +01:00
JiriOndrusek 4d429b115c [ARTEMIS-1946] Cluster with allow-direct-connections-only="true" and localAddress in netty connections with allow-direct-connections-only="true" prevents core bridge to be created. 2021-09-16 18:48:28 -05:00
Andy Taylor 0545664b3d ARTEMIS-3474 - replace whitelist with allowlist in management.xml
https://issues.apache.org/jira/browse/ARTEMIS-3474
2021-09-16 17:19:02 -05:00
Clebert Suconic c3b403a980 ARTEMIS-3482 Removing non used methods and some reorg on message methods 2021-09-15 09:17:01 -04:00
Clebert Suconic 2481a784f3 ARTEMIS-3475 avoiding possible recursion on toString and improving overal PacketImpl toString 2021-09-13 14:51:55 -04:00
Clebert Suconic 14457c4308 ARTEMIS-3464 Protecting scheduled tasks counter with a synchronized 2021-09-13 14:35:45 -04:00
Clebert Suconic 6db6b8cf9e ARTEMIS-3442 Removing input for journal retention on cli create 2021-09-12 20:11:16 -04:00
Clebert Suconic 2fb23474ce ARTEMIS-3464 Improving ACK reliability on Paging and code improvements 2021-09-10 18:27:00 -04:00
Clebert Suconic 7792d8f7b3 ARTEMIS-3473 Some tests were leaving a directory named null for journal files under tests/integration-tests 2021-09-10 17:43:06 -04:00
franz1981 e379b447ff ARTEMIS-3465 BufferSplitter::split shouldn't consume input buffer 2021-09-09 15:37:51 -04:00
Clebert Suconic 7fb4f80649 ARTEMIS-3464 Missing ACKs on Page and Mirror 2021-09-08 15:30:39 -04:00
franz1981 a4c311f368 ARTEMIS-3449 Speedup AMQP large message streamig 2021-09-08 15:22:22 -04:00
Domenico Francesco Bruscino 9d04c9d51d ARTEMIS-3462 Improve MBean Guard exception messages 2021-09-08 10:28:36 +02:00
Domenico Francesco Bruscino 0a88aafd74 ARTEMIS-3450 Fix StaticPoolTest and DiscoveryPoolTest intermittent failures 2021-09-07 10:01:14 +01:00
franz1981 f4d7c8ae69 ARTEMIS-3219 Save allocating map entries during bindings iteration 2021-09-07 09:18:16 +02:00
franz1981 f150fe5095 NO-JIRA Fix HAPolicyConfigurationTest::PrimaryReplicationTest NPE on assert 2021-09-07 07:11:14 +02:00
franz1981 ce3b50c1a6 ARTEMIS-3430 Activation Sequence Auto-Repair 2021-09-06 18:14:29 +02:00
franz1981 44dd84d704 ARTEMIS-3429 Backup forget coordination-id after quorum loss 2021-09-06 18:14:29 +02:00
gtully 276f822a0e ARTEMIS-1925 - allow redistribution with new loadbalance type of OFF_WITH_REDISTRIBUTION to ensure local consumers get priority, we only optionally redistribute when messages are stuck 2021-09-06 11:18:11 +01:00
gtully b27aa03a37 ARTEMIS-1612 - strip any acceptor matching prefix from the message address such that further routing will match the lack of prefixes in broker routing, different fix for redistribution with prefixes 2021-09-06 11:08:36 +01:00
gtully e985df77fb ARTEMIS-3223 - ensure distribution uses the address from the message, rather than the address from the queue which may be a wildcard sub and not valid for publishng on, fix and test 2021-09-06 11:08:36 +01:00
gtully 224b89810d ARTEMIS-2007 - allow redistribution if there are unmatched messages pending on a queue and there is new remote demand 2021-09-06 10:40:39 +01:00
Justin Bertram 13df6a8fb9 ARTEMIS-3457 log WARN for OpenWire property conversion problem
While converting a core message to an OpenWire message there may be an
error processing a property value. Currently this results in an
exception and the message is not dispatched to the client. The broker
eventually attempts to redeliver this message resulting in the same
error. Instead of throwing an exception the broker should simply log a
WARN message and skip the property. This will allow clients to receive
the message without the problematic property and the broker will not
have to attempt to redeliver the message again.
2021-09-03 16:51:02 -04:00
Justin Bertram 6ee7e72db1 ARTEMIS-3445 automatically clean-up abandoned MQTT subscriptions 2021-09-03 16:48:01 -04:00
gtully c7b672d8b9 ARTEMIS-3365 - fix intermittent ci failure on test 2021-09-02 12:09:31 +01:00
Clebert Suconic 0266582a8f ARTEMIS-3441 Remove a few finalize methods 2021-08-24 19:08:00 -04:00
Clebert Suconic 4d2fd89882 ARTEMIS-3436 Journal Replay operation 2021-08-24 19:07:15 -04:00
Justin Bertram 3fd0eea667 ARTEMIS-3438 legacy updateQueue doesn't respect ringSize 2021-08-20 17:00:23 -04:00
Justin Bertram c8d71cbebc ARTEMIS-3422 mitigate NPE for audit logging 2021-08-20 16:33:21 -04:00
Robbie Gemmell 02a8296821 ARTEMIS-3435: fail-fast if AIO check fouls, rather than burning hours and still failing, and report/log detals to aid analysis 2021-08-20 16:38:08 +01:00
Clebert Suconic 3edb96b09b ARTEMIS-3425 Possible NPE on Page reload 2021-08-18 17:49:35 -04:00
Justin Bertram 82f0ece67c ARTEMIS-3329 ability to purge all queues on address 2021-08-18 12:33:01 -04:00
Clebert Suconic b8c64590f9 [maven-release-plugin] prepare for next development iteration 2021-08-09 11:58:28 -04:00
Clebert Suconic 37cc298973 [maven-release-plugin] prepare release 2.18.0 2021-08-09 11:58:27 -04:00
Clebert Suconic cc4a51a3ea [maven-release-plugin] prepare for next development iteration 2021-08-06 17:04:18 -04:00
Clebert Suconic 0b30187091 [maven-release-plugin] prepare release 2.18.0 2021-08-06 17:04:16 -04:00
Clebert Suconic 0e2ce484ba [maven-release-plugin] prepare for next development iteration 2021-08-06 13:46:56 -04:00
Clebert Suconic cb705b5c5c [maven-release-plugin] prepare release 2.18.0 2021-08-06 13:46:54 -04:00
Domenico Francesco Bruscino 3555dd7d25 ARTEMIS-3365 Add broker balancers 2021-08-06 08:33:21 -04:00
franz1981 49e3843aa7 ARTEMIS-3340 Atomic server restart and clean dirty activation: fix testFailbackTimeout 2021-08-06 08:29:54 -04:00
gtully ca7a100de0 ARTEMIS-3340 Sequential activation tracking for pluggable quorum replication policies + peer
Co-authored-by: franz1981 <nigro.fra@gmail.com>
2021-08-05 14:18:20 -04:00
Francesco Nigro 536271485f ARTEMIS-2716 Pluggable Quorum Vote 2021-08-05 14:18:20 -04:00
gtully c2da0fd663 ARTEMIS-3200 - remove braces from the belt and braces fix in ARTEMIS-2712, the braces are not necessary and leak, cleaning up in close negates the need to the session closeable 2021-08-05 09:27:12 -04:00
Erwin Dondorp abcfe2fe6f ARTEMIS-3177 allow a NOT-CONTAINS filter 2021-08-05 09:21:55 -04:00
Clebert Suconic f9aa0a98b4 ARTEMIS-3411 Add PrintData information on Divert records 2021-08-04 17:18:15 -04:00
Domenico Francesco Bruscino a741ae9994 ARTEMIS-3367 Set verifyHost true for connectors by default 2021-08-03 18:14:51 -04:00
Clebert Suconic 813ed88ecb ARTEMIS-3243 Implementing dual mirror with Broker Connections
There are some major tests added as part of this PR.

This PR has been done through an extensive collaboration with Robbie Gemmel on https://github.com/apache/activemq-artemis/pull/3633
2021-08-03 16:50:43 -04:00
Justin Bertram 6bd30e8fe3 ARTEMIS-3385 management changes can be reverted by XML update
Durable changes made via the management API (e.g. adding
security-settings, adding address-settings, adding diverts) can be
reverted when reloading the XML at runtime.
2021-08-03 12:30:00 -04:00
Justin Bertram 8c3384a947 ARTEMIS-3397 remove queue rate metric from web console
This is a follow-up from ARTEMIS-2322.

The changes related to expired message are only there because
QueueFilterPredicate had a bug where the rate was correlated to expired
messages. When I fixed that I noticed that expired messages was actually
missing so I added it.
2021-08-03 10:15:57 -04:00
Justin Bertram 55533ae099 ARTEMIS-3394 ClassCastException when queue & divert have same name 2021-08-03 09:57:05 -04:00
Justin Bertram 7a9de8eea3 ARTEMIS-3302 swap deprecated X509Certificate
Casting the result of getPeerCertificates() to X509Certificate[] mirrors
what is done in the ActiveMQ "Classic" code-base.

A few tests which were imported from ActiveMQ "Classic" to verify our
OpenWire implementation were removed as they relied on a "stub"
implementation of javax.net.ssl.SSLSession that never would have worked
across multiple JDKs once javax.security.cert.X509Certificate[] was
removed. Furthermore, the tests appeared to be related to the OpenWire
*client* and not relevant to our broker-side implementation.
2021-08-03 09:55:36 -04:00
Andy Taylor c358688fd6 ARTEMIS-3404 - expose max retry interval on bridge mbean
https://issues.apache.org/jira/browse/ARTEMIS-3404
2021-08-03 09:07:39 -04:00
franz1981 2694f8b52e ARTEMIS-3402 Split Brain detection should reject bad member updates 2021-08-03 14:43:20 +02:00
franz1981 63577c7264 ARTEMIS-3405 Log the end of paging mode for a destination 2021-07-28 10:02:14 -04:00
Andy Taylor 57790a93a9 ARTEMIS-3403 - wrong debug level in ArtemisMBeanServerGuard
https://issues.apache.org/jira/browse/ARTEMIS-3403
2021-07-27 22:52:56 -04:00
Justin Bertram f554806ec3 ARTEMIS-3400 add audit logging for message ack
Aside from adding audit logging for message acknowledgement this commit
also consolidates the two nearly identical acknowledge method
implementations in o.a.a.a.c.s.i.QueueImpl. This avoids duplicating
code for audit logging, plugin invocation, etc. There is no semantic
change.
2021-07-26 23:27:36 -04:00
Justin Bertram 2954829e3e ARTEMIS-3399 fix audit logging for AMQP
Due to the multi-threaded AMQP implementation the ThreadLocal variables
used by the AuditLogger to track the username and remote address don't
work properly. Changes include:

 - Passing the audit Subject (set during authentication) and the remote
   address explicitly for audit logging on the relevant ServerSession
   methods rather than relying on the AuditLogger's ThreadLocal
   variables
 - Audit logging core session creation *after* successful authentication
   so that we have the proper Subject; this is especially important for
   the SSL certificate authentication use-case
 - Renaming some methods and variables in AuditLogger to more accurately
   reflect their intended use
 - Adding JavaDoc and refactoring the getCaller methods on AuditLogger
 - Refactor audit log testing and add a new test
2021-07-26 23:27:35 -04:00
Justin Bertram bb9bbf062d ARTEMIS-3395 ensure sending audit log contains message ID 2021-07-23 14:28:53 -04:00
Andy Taylor 82e40ce229 ARTEMIS-3398 - fix filtering in console with filter
https://issues.apache.org/jira/browse/ARTEMIS-3398
2021-07-22 11:24:14 -04:00
Howard Gao 8a88c5f913 ARTEMIS-3392 Scale down would fail if target queue's id greater than max int 2021-07-21 15:12:43 -04:00
Domenico Francesco Bruscino 2d07d0d844 ARTEMIS-3384 Fix bridge duplicate messages after reconnection 2021-07-15 14:20:45 -04:00
Clebert Suconic b4aef3fca8 ARTEMIS-3386 Expiry messages using too many threads 2021-07-15 13:51:52 -04:00
Justin Bertram 9f96e2d270 ARTEMIS-3379 add message details to consumer audit log 2021-07-06 16:15:50 -04:00
Justin Bertram b7f9807cd9 ARTEMIS-2919 support timestamping incoming messages 2021-07-06 14:09:00 -05:00
Justin Bertram 1d02d06eab ARTEMIS-3374 config-managed queue can be deleted by durable subscriber 2021-07-06 14:06:39 -05:00
Justin Bertram 47d4b8fff4 ARTEMIS-3343 log WARN & ignore duplicate address-setting match 2021-07-04 16:00:31 -05:00
Michal Petrov 33e13ebc14 ARTEMIS-3356: fix debug message arguments 2021-07-04 14:37:51 -05:00
franz1981 bea0568a88 ARTEMIS-3360 Backup connector ignores TTL settings on the connection factories 2021-07-04 14:32:58 -05:00
Justin Bertram 45ae64a01c ARTEMIS-3366 deleteAddress can remove SnF queue 2021-06-24 13:27:35 -05:00
Domenico Francesco Bruscino b1d326ba8b ARTEMIS-3339 Fix management role match key comparator 2021-06-15 15:06:55 -04:00
Justin Bertram 867bf5e01e ARTEMIS-3155 support better backwards compatibility
Support better backwards compability for SSL keyStoreProvider and
trustStoreProvider.
2021-06-14 18:04:06 -04:00
Justin Bertram a4c1155a01 ARTEMIS-3341 update checkstyle to latest + update code
As a follow-up to #3618/dc7de893747b90b627d729f9f18a758bb4dad9d5 update
checkstyle to the latest version, restoring the originally intended
"RightCurly" style, and updating all the code to properly adhere to the
style as enforced by the new checkstyle version.

The version of checkstyle we used before the aforementioned commit had
a bug which didn't properly enforced our intended "RightCurly" style
(see https://github.com/checkstyle/checkstyle/issues/6345). That commit
changed the style to accommodate the handful of unintended style
violations. This commit reverts that change for 2 main reasons:
 - The style was always intended to use `alone` for both `METHOD_DEF`
and `CTOR_DEF`.
 - There are over 1,000 existing uses of the intended style and around
30 violations of this style which were unintentionally allowed.

Reverting the style back to the original and cleaning up the unintented
violations makes the code more consistent and prevents further style
inconsistencies in the future.

There were a handful of other changes related to checkstyle bugs which
allowed unintended style violations. These were related to indentation
levels.

This closes #3619
(with some minor changes from Robbie to fix remaining violations)
2021-06-11 12:16:04 +01:00
Domenico Francesco Bruscino bafefdc8ec ARTEMIS-3338 Preserve prepared XA transactions on connection failure 2021-06-09 15:00:45 -04:00
Clebert Suconic 05498c350e ARTEMIS-3261 Remove need to lookup replaceableRecords on the hot path
We known it's a replaceable record as part of the logic, no need to lookup the record type unless it's a reload from the system.
2021-06-09 14:52:06 -04:00
gtully 73bcc78beb no jira - update commons.io version to latest 2021-06-04 13:46:34 +01:00
Clebert Suconic 7137252c5d NO-JIRA fixing spelling udpate as update 2021-06-03 10:43:11 -04:00
Clebert Suconic cfd032799c ARTEMIS-3327 removing unecessary blocking operations on update and delete records 2021-06-03 10:37:16 -04:00
gtully 0e77f93f83 ARTEMIS-3326 - fix state visibility between netty and actor thread after initial connection info processing. fix and test 2021-06-03 09:37:23 +01:00
Robbie Gemmell c993b5a0e9 NO-JIRA: fix javadoc errors on JDK11+, enable CI javadoc check on JDK11+ 2021-06-02 17:37:06 +01:00
franz1981 14dddb04d7 ARTEMIS-3280 Netty Pool micrometer metric plugin 2021-05-27 13:32:06 -05:00
Clebert Suconic f0476d6a12 ARTEMIS-3318/ARTEMIS-2931 Fixing potential issue
The issue here is not supposed to happen,
however I'm changing the return here to true and logging the warn properly
2021-05-27 08:51:41 -04:00
Clebert Suconic cfee2035c8 ARTEMIS-3318 Invalid data on page should not hold page cleanup 2021-05-27 08:08:47 -04:00
Justin Bertram e9c94e57d9 ARTEMIS-3288 support bulk user loading with basic security manager 2021-05-25 11:13:35 -05:00
Clebert Suconic f6df6083e3 ARTEMIS-3283 Fixing Slow Consuemr Test and speeding it up
I am removing some combinations that are not needed here,
and I'm adding another extra test to valiate the rate per minutes
2021-05-25 11:29:04 -04:00
Justin Bertram 3621258458 ARTEMIS-3285 potential duplicate messages with LVQ + non-destructive 2021-05-24 16:42:10 -04:00
Domenico Francesco Bruscino e03c4fe193 ARTEMIS-3309 Add a parameter to limit messages to move or transfer 2021-05-24 14:09:20 -04:00
Justin Bertram e543aa3bd5 ARTEMIS-3159 errors during concurrent expiration with auto-creation 2021-05-24 13:02:08 -05:00
Justin Bertram 81bbca15c1 ARTEMIS-3229 add details to AdressControl MBean 2021-05-24 11:51:14 -05:00
Martyn Taylor 3c0e14de58 ARTEMIS-3283 Added SlowConsumerThreshold unit configuration option 2021-05-24 11:49:38 -05:00
gtully 72c9cae8e1 ARTEMIS-3311 - ensure visibility of error state on operation context callback registration, fix and test 2021-05-24 16:07:36 +01:00
Clebert Suconic 3f38be8c08 ARTEMIS-3310 Paging could lose AMQPmessage if match didn't work for any reason 2021-05-20 13:19:57 -04:00
Clebert Suconic 27c343913f ARTEMIS-3297 Journal Retention Feature 2021-05-18 16:29:18 -04:00
Andy Taylor a34d9aad6b ARTEMIS-3295 - do not cluster advisories
https://issues.apache.org/jira/browse/ARTEMIS-3295
2021-05-14 10:08:21 -04:00
Domenico Francesco Bruscino 0355dda813 ARTEMIS-3294 Fix conversion of messages with a text body 2021-05-13 11:59:20 +01:00
Clebert Suconic 67d47274a1 NO-JIRA removing runDirectJournalBlast 2021-05-12 09:51:56 -04:00
Clebert Suconic b0f8f515c5 ARTEMIS-3273 Recover tool and PrintData enhancements 2021-04-30 18:41:05 -04:00
Clebert Suconic d2676e77f8 ARTEMIS-3271 Improve Critical Analyzer to use AutoCloseable on the API 2021-04-30 12:46:15 -04:00
Clebert Suconic 62395dcd44 ARTEMIS-3261 Fixing tests and allowing configuration to reload data files on start 2021-04-24 21:30:56 -04:00
Clebert Suconic 1392cb5f0b ARTEMIS-3261 Enhance compact to deal with Rollbacks and update records that can be replaced 2021-04-23 15:17:06 -04:00
gtully 64f5761767 ARTEMIS-3117 - tackle the root cause of the scale issue with the netty ssl acceptor, the creation of an sslcontext per connetion, since ARTEMIS-400 2021-04-15 08:31:32 -04:00
Justin Bertram 81e6e4a5a2 ARTEMIS-3209 add details to AMQ222186 WARN message 2021-04-14 20:04:26 -04:00
Clebert Suconic ac4eb693b2 ARTEMIS-3238 Fixing SendACKFailTest after d408f284b1 2021-04-13 08:49:17 -04:00
Clebert Suconic d408f284b1 ARTEMIS-3238 AMQP Mirror not routing correctly with SNF 2021-04-12 19:30:35 -04:00
Domenico Francesco Bruscino b4789a894f ARTEMIS-3221 Migrating to Jakarta EE 8 artifacts 2021-04-09 11:49:59 -04:00
Clebert Suconic faf32fe550 ARTEMIS-3227 Web Console could be shutdown after certain failures 2021-04-08 19:59:00 -04:00
Christoph Läubrich 5313a800a3 ARTEMIS-3106 Support for SASL-SCRAM
adds the implementation necessary to perform SASL-SCRAM authentication with ActiveMQ Artemis
2021-04-08 19:58:09 -04:00
franz1981 08ec7c67c8 ARTEMIS-3219 Improve FQQN message routing 2021-04-03 13:20:47 +02:00
franz1981 17dd86ff4b ARTEMIS-3219 Improve message routing 2021-04-03 13:20:47 +02:00
Domenico Francesco Bruscino 2f851cbbe0 ARTEMIS-3203 Match filter field names with view field names
The filter and the view use different convection for field names, ie the
connection view uses the `sessionID` field name while the connection filter
uses the `SESSION_ID` field name. This commit replace the field names used
by the filter with the field names used by the view preserving the backward
compatibility.
2021-04-01 12:23:00 -05:00
AntonRoskvist fe3851ff6d ARTEMIS-3198 - Fix order of concurrency parameter 2021-03-26 11:16:53 -04:00
gtully 3b4872e1a2 ARTEMIS-3128 - add test of large message browse opentype support 2021-03-26 14:42:03 +00:00
Andy Taylor 658d45f543 ARTEMIS-3202 - add a flag to deleted diverts removed from config
https://issues.apache.org/jira/browse/ARTEMIS-3202
2021-03-24 19:24:16 -04:00
Andy Taylor 69bea6756c ARTEMIS-3201 - configured diverts arent persisted
https://issues.apache.org/jira/browse/ARTEMIS-3201
2021-03-24 19:24:16 -04:00
Justin Bertram 186481bbe8 ARTEMIS-3155 differentiate SSL store type and provider
The provider of an SSL key/trust store is different from that store's
type. However, the broker currently doesn't differentiate these and uses
the provider for both. Changing this *may* potentially break existing
users who are setting the provider, but I don't see any way to avoid
that. This is a bug that needs to be fixed in order to support use-cases
like PKCS#11.

Change summary:
 - Added documentation.
 - Consolidated several 2-way SSL tests classes into a single
   parameterized test class. All these classes were essentially the same
   except for a few key test parameters. Consolidating them avoided
   having to update the same code in multiple places.
 - Expanded tests to include different providers & types.
 - Regenerated all SSL artifacts to allow tests to pass with new
   constraints.
 - Improved logging for when SSL handler initialization fails.
2021-03-24 09:08:33 -04:00
Clebert Suconic 8d24bfa646 ARTEMIS-3204 Fixing NPE on Counting Queue for Resource Limit 2021-03-24 08:12:40 -04:00
Andy Taylor bb94d0a5b3 ARTEMIS-3196 - expose journal pool files in JMX
https://issues.apache.org/jira/browse/ARTEMIS-3196
2021-03-23 10:01:24 +00:00
Sebastian Thomschke 28c7d95367 NO-JIRA Remove unnecessary cast from byte[] to byte[] 2021-03-23 09:54:03 +00:00
gtully 06461f146c ARTEMIS-3168 - add PrincipalConversionLoginModule feature 2021-03-23 09:51:50 +00:00
gtully 02bb7031c2 ARTEMIS-3175 - implement address setting management-message-attribute-size-limit to sensibly limit data returned by list/browse/filter management ops 2021-03-23 09:48:45 +00:00
Domenico Francesco Bruscino 4473758edb ARTEMIS-3195 Filter empty items from listNetworkTopology 2021-03-22 22:20:15 -04:00
Clebert Suconic 31345c5b51 ARTEMIS-3198 Fixing test after concurrency bridge changes 2021-03-22 21:56:02 -04:00
AntonRoskvist e9e1e476ee ARTEMIS-3198 Add concurrency option on core bridges 2021-03-22 19:13:06 -04:00
Clebert Suconic b4beea1f2c ARTEMIS-3150 Broker Connections with restricted security
The local connections and sessions created internally were supposed to bypass security
just like bridges and other internal components
2021-03-22 17:32:43 -04:00
Markus Meierhofer 1d1a9433bc ARTEMIS-2870: Transfer connection close/failure listeners one by one on reattachment
Previously, when a session was reattached, all the close/failure listeners
were removed from the old connection and set onto the new connection.
This only worked when at most 1 session of the old connection was
transferred: When the second session was transferred, the old
connection already didn't contain any close/failure listeners anymore,
and therefore the list of close/failure listeners was overwritten by
an empty list for the new connection.

Now, when a session is being transferred, it only transfers the
close/failure listeners that belong to it, which are the session itself
+ the TempQueueCleanerUppers.

Modified a test to check whether the sessions are failure listeners of
the new connection after reattachment.
2021-03-18 18:26:07 -04:00
gtully 8d848f4615 ARTEMIS-3188 / ARTEMIS-2108 Fixing StackOverFlow over bindings
This fix was done in collaboration with Gary Tully
2021-03-18 18:08:42 -04:00
gtully 052bd60da4 ARTEMIS-3180 - fix multiple path match case in wildcard address map 2021-03-18 11:24:51 +00:00
Markus Meierhofer 3b9008bda0 ARTEMIS-3174: Set new connection on ServerSession during reattachment
During session reattachment, also set the new connection on the
"session" member of the ServerSessionPacketHandler. Until now,
the connected ServerSessionImpl instance still referenced the old
connection although it had already been transferred on the new connection.
2021-03-17 13:36:09 -05:00
Justin Bertram fea5e246e7 ARTEMIS-3166 support disabling configuration file reload 2021-03-17 09:52:13 -05:00
Justin Bertram eb26f67ab6 ARTEMIS-3137 support XPath filters
Change summary:
 - Remove the existing Xalan-based XPath evaluator since Xalan appears
   to be no longer maintained.
 - Implement a JAXP XPath evaluator (from the ActiveMQ 5.x code-base).
 - Pull in the changes from https://issues.apache.org/jira/browse/AMQ-5333
   to enable configurable XML parser features.
 - Add a method to the base Message interface to make it easier to get
   the message body as a string. This relieves the filter from having
   to deal with message implementation details.
 - Update the Qpid JMS client to get the jms.validateSelector parameter.
2021-03-10 09:32:23 -05:00
gtully 20007ad485 ARTEMIS-3141 - respect the browse page limit on all queue controll/jmx operations that use a queue browser 2021-03-10 08:51:06 -05:00
Justin Bertram 1a149b9af4 ARTEMIS-3102 throw more accurate exception when re-authentication fails 2021-03-09 13:46:08 -06:00
Clebert Suconic 05c55d382c ARTEMIS-3133 Just Encapsulating ObjectPool into a small utility 2021-03-04 10:38:14 -05:00
franz1981 bc83b31232 ARTEMIS-3133 Reduce memory usage for Null an Ping packets 2021-03-03 13:51:05 -05:00
Domenico Francesco Bruscino 5aa3a4b6aa ARTEMIS-3147 Fix auto created addresses reload 2021-03-03 13:49:59 -05:00
sebthom 026f3859a2 ARTEMIS-3117 Provide CachingOpenSSLContextFactory
to mitigate performance degradation in JDK 11 during TLS connection
initialization.
2021-03-03 10:06:45 -06:00
Andy Taylor 46858bcfc3 ARTEMIS-3130 - fixing broken filter fields in console
https://issues.apache.org/jira/browse/ARTEMIS-3130
2021-03-02 12:55:45 +01:00
Christopher L. Shannon (cshannon) 4c4d7a71cb ARTEMIS-2802: Add a null check when checking matching metaData inside
Federated Queue

Other protocols besides CORE may not have a metadata map so we need to
check for null before passing to the filter matcher
2021-03-01 13:41:20 -06:00
franz1981 6c7231928f ARTEMIS-3138 Shared Nothing Live broker shouldn't try to connect to itself (2) 2021-02-25 10:19:02 -05:00
franz1981 03a8e20de2 ARTEMIS-3138 Shared Nothing Live broker shouldn't try to connect to itself 2021-02-25 10:19:02 -05:00
gtully a0ce3812ba ARTEMIS-3067, ARTEMIS-3135 - rework accounting for lazy decoding by directly referencing the owning page store, owner now tracked on a message rather than the message reference. This avoids the error prone checks around potential decoding sites 2021-02-24 15:50:13 +00:00
gtully a56ade38b4 ARTEMIS-3135 - track possible change in memory estimate when messages are converted to maps for JMX or UI display, follows up from ARTEMIS-3067 2021-02-23 15:30:40 +00:00
Clebert Suconic 12c8096a23 ARTEMIS-3093 Ordering on multiple consumers and core with rollback 2021-02-22 15:10:04 -05:00
franz1981 6126d926dd ARTEMIS-3045 ReplicationManager can batch sent replicated packets 2021-02-19 15:18:20 -05:00
sebthom f9e23def8d ARTEMIS-3121 Avoid creation of unnecessary StringBuilder instance in
Netty#getProtocols() and simplify implementation
2021-02-19 14:25:22 -05:00
Petr Kužel a75dce9577 ARTEMIS-2931: Resolving potential NPEs detected by eclipse
WARNING: the eclipse static analyser is pretty limited and it cannot cope with cases like: correlated variables, exception paths, .... 70% of eclipse warnings on artemis codebase is a false alarm.

Anyway some variable correlations can be eliminated and code becomes more readable for humans too.

For "never-throws", the assumption is made explicit. If you disagree with the reverse-engineered assumption then it is likely an indication of a true potential NPE.

Last but not least, copy&paste is a common source of bugs. I suspect eclipse indirectly detected one such case.

Hope it helps
2021-02-11 20:52:16 -06:00
Clebert Suconic 21ee5985ea [maven-release-plugin] prepare for next development iteration 2021-02-11 12:00:04 -05:00
Clebert Suconic 36a771150b [maven-release-plugin] prepare release 2.17.0 2021-02-11 11:59:51 -05:00
Clebert Suconic e5b27d6de7 NO-JIRA Adding thread dump logging 2021-02-10 10:40:24 -05:00
Clebert Suconic c0867f0361 [maven-release-plugin] prepare for next development iteration 2021-02-09 12:12:48 -05:00
Clebert Suconic 9b473698e0 [maven-release-plugin] prepare release 2.17.0 2021-02-09 12:12:35 -05:00
Justin Bertram ea6b133ac8 ARTEMIS-3109 unsetting expiry-address results in excessive logging 2021-02-09 11:21:52 -05:00
Clebert Suconic 6ed1e4c87d [maven-release-plugin] prepare for next development iteration 2021-02-08 15:56:31 -05:00
Clebert Suconic 06b29806ca [maven-release-plugin] prepare release 2.17.0 2021-02-08 15:56:18 -05:00
Justin Bertram cd7600314f ARTEMIS-3108 fixing yet another test failure 2021-02-08 11:45:26 -06:00
Justin Bertram 1dd34e6e54 ARTEMIS-3108 fixing another test failure 2021-02-08 11:43:43 -06:00
Justin Bertram 05e7198099 ARTEMIS-3108 fix test failure 2021-02-08 11:37:11 -06:00
Justin Bertram 52de3827fe ARTEMIS-3108 bridge XML config doesn't allow -1
The value `-1` is valid for both the confirmation-window-size and the
producer-window-size elements.
2021-02-08 12:19:42 -05:00
Justin Bertram 86cb888b62 NO-JIRA remove failover-on-server-shutdown from bridge doc 2021-02-08 11:18:23 -05:00
Justin Bertram 0148eec79a ARTEMIS-3099 wrong default producer-window-size on bridge in xml 2021-02-07 11:16:31 -05:00
岳豹 9c5ec1b07c ARTEMIS-3105 large message file not closed on backup side 2021-02-07 10:41:41 +08:00
Justin Bertram b4f8aada3c ARTEMIS-3092 inconsistent JDBC config logging 2021-02-04 15:32:51 -05:00
Justin Bertram 4b314e2aab NO-JIRA fix JDBC parsing typo 2021-02-04 15:32:51 -05:00
Justin Bertram 15e3cdf409 ARTEMIS-3096 bridge config using wrong default conf-window-size 2021-02-04 13:48:37 -06:00
Marcos Singermann 69fb226054 ARTEMIS-3068 Fix HierarchicalRepository matcher comparator 2021-02-03 13:12:34 -05:00
franz1981 9e06a0645b ARTEMIS-3051 Fix MessageReferenceImpl::getMemoryEstimate 2021-02-03 10:27:09 -05:00
franz1981 71685bf6bf ARTEMIS-3051 Fix MessageReferenceImpl::getMemoryEstimate 2021-02-03 10:27:08 -05:00
Domenico Francesco Bruscino bcdb13365e ARTEMIS-3075 Skip temporary queues scale down 2021-02-03 10:20:42 -05:00
Erwin Dondorp 4c611a6670 NO-JIRA fixed debug message 2021-02-03 10:19:06 -05:00
Tomas Hofman ebeea15c2a ARTEMIS-3074 Add ActiveMQServerControl#createBridge() method variant accepting a JSON string 2021-02-01 19:21:40 -05:00
Erwin Dondorp bd9ca52d9a NO-JIRA added space to separate 2 words that otherwise appear joined 2021-02-01 19:20:51 -05:00
Justin Bertram d9e114da55 ARTEMIS-3089 direct delivery can break LVQ+non-destructive 2021-02-01 19:19:20 -05:00
gtully d186d20406 ARTEMIS-3067 - track application properties in memory estimate and check for modification after potential filter execution 2021-02-01 09:21:17 -05:00
gtully 05e9cfed4c ARTEMIS-3064 - ensure useTopologyForLoadBalancing is disabled when ha=false 2021-01-28 15:26:15 -05:00
Clebert Suconic c019218c4e ARTEMIS-3084 Eliminate Block on moving to next file on libaio 2021-01-28 11:10:40 -05:00
Justin Bertram 88b21f9039 ARTEMIS-3082 fix non-destructive + rollback 2021-01-27 20:41:33 -05:00
Ryan Yeats 86a2cad12a ARTEMIS-1884 add plugin API for message level authorization policies 2021-01-25 13:44:36 -06:00
Justin Bertram 4fbc8bf67d ARTEMIS-3008 mngmnt op to reload config file 2021-01-25 13:35:19 -06:00
Justin Bertram 9319f0c8c8 ARTEMIS-3012 incorrect fallback consumer authorization
The fallback consumer authorization implemented in ARTEMIS-592 needs to
check for an *exact* security-settings match otherwise in certain
configurations a more general and more permissive setting might
be used instead of the intended more specific and more restrictive
setting.
2021-01-25 13:34:18 -06:00
Sebastian Thomschke 193374d71d NO-JIRA Minor code improvement in NettyAcceptor class
Make public static fields final and remove an unused private class field.
2021-01-25 13:23:52 -06:00
Domenico Francesco Bruscino eea619137f ARTEMIS-3073 Improve replication manger NPE logs 2021-01-20 11:27:03 -05:00
gtully c2c637407e ARTEMIS-2937 - tidy up shutdown, resolve intermittent failure in org.apache.activemq.artemis.tests.integration.amqp.connect.AMQPReplicaTest#testReplicaCatchupOnQueueCreates 2021-01-20 11:26:08 -05:00
Andy Taylor 4a646e4415 ARTEMIS-3072 - Management methods check for null and not for empty strings
https://issues.apache.org/jira/browse/ARTEMIS-3072
2021-01-19 14:36:38 +00:00
Clebert Suconic 78c0792989 ARTEMIS-3065 AMQP Anonymous producer would eventually block 2021-01-13 15:46:54 -05:00