2458 Commits

Author SHA1 Message Date
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
4a4765c39cb73438ea2199b6e0937566d3556c10. 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 682f505e32f9b6472665212acd6f58c32c7bf98d 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 db8f530256dd374f14c3dce1adcf35f0e761113c.
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