Commit Graph

1162 Commits

Author SHA1 Message Date
Gary Tully 348763e14a ARTEMIS-4164: add acceptor sslAutoReload option to have the broker watch key and trust store paths for modifications and automatically call reload 2023-11-27 11:26:07 -05:00
Clebert Suconic 3cdd6cc672 ARTEMIS-4483 Avoid log.warn on regular AMQP closing 2023-11-13 11:02:04 -05:00
Clebert Suconic b041f2cde2 ARTEMIS-4476 Client Failures Soak Test
I was not able to reproduce the actual issue here, but I heavily used this test during debugging.
This will not serve as a reproducer to the Ghost consumer issue, but this is a valid test.
2023-11-09 15:09:35 -05:00
Petr Kužel ebb747b9e7
ARTEMIS-4470 prevent the common trap
Omitting reencode() results in latent error that surfaces only in
AMQP-AMQP messaging.
2023-11-08 14:12:37 -06:00
Robbie Gemmell 66dd52fcf2 ARTEMIS-4490: update to SLF4J 2.0.9 2023-11-03 17:55:48 +00:00
Robbie Gemmell bbe40c4b45 [maven-release-plugin] prepare for next development iteration 2023-10-27 11:14:45 +01:00
Robbie Gemmell f4bccc1a26 [maven-release-plugin] prepare release 2.31.2 2023-10-27 11:14:19 +01:00
Clebert Suconic 845648526f [maven-release-plugin] prepare for next development iteration 2023-10-25 14:45:43 -04:00
Clebert Suconic 5a1c9bf3d1 [maven-release-plugin] prepare release 2.31.1 2023-10-25 14:45:41 -04:00
Emmanuel Hugonnet 37273701ea ARTEMIS-4467 Core client code visibility change required.
* Since the constructors in RemotingConnectionImpl can be used from the server and the client.
If the server calling code is in a different classloader then the
constructor can't be called.
* same for the 'active' boolean property of ActiveMQChannelHandler

Issue: https://issues.apache.org/jira/browse/ARTEMIS-4467

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2023-10-25 13:39:08 -04:00
Clebert Suconic 9b56d296a3 ARTEMIS-4464 Cleanup on Soak and Smoke tests
- removed a few ignored tests
- removed some artemis maven plugin usage and using the CLI directly now
2023-10-24 14:44:24 -04:00
Clebert Suconic c46c6f11f6 ARTEMIS-4453 Removing unused parameter from constructor 2023-10-12 12:34:04 -04:00
Clebert Suconic 45f2789531 ARTEMIS-4453 Asynchronous flow control broken when more than 1000 destinations in the producer 2023-10-10 20:56:31 -04:00
Justin Bertram ab6f0a3032 ARTEMIS-4453 Lots of addresses breaks cluster bridge flow control 2023-10-10 20:56:31 -04:00
Nicolas Filotto 8599917222 ARTEMIS-4141 Update credits even for expired messages
When big messages are produced if a consumer receives an expired message, the credits are not updated, so if the consumer is too slow and an expiry delay has been set, we can end up with a situation where there are no more credits which prevents the consumer from receiving any more messages.
2023-09-22 14:30:29 -04:00
Clebert Suconic 0d2a94b006 [maven-release-plugin] prepare for next development iteration 2023-09-15 14:40:49 -04:00
Clebert Suconic 74f08ea059 [maven-release-plugin] prepare release 2.31.0 2023-09-15 14:40:45 -04:00
Clebert Suconic 784aa9f884 [maven-release-plugin] prepare for next development iteration 2023-09-14 16:54:07 -04:00
Clebert Suconic 816b0828eb [maven-release-plugin] prepare release 2.31.0 2023-09-14 16:54:05 -04:00
Clebert Suconic 6c9ddfd460 [maven-release-plugin] prepare for next development iteration 2023-09-14 14:58:10 -04:00
Clebert Suconic 30e4df8ff8 [maven-release-plugin] prepare release 2.31.0 2023-09-14 14:58:07 -04:00
haanhvu 6ec2131e32 ARTEMIS-3057 Add min-disk-free feature
To check if the remaining disk is enough. Alternative to max-disk-usage.
2023-09-14 17:20:43 +01:00
Justin Bertram af2672e79a ARTEMIS-966 MQTT subscription state isn't durable
Durable subscrption state is part of the MQTT specification which has
not been supported until now. This functionality is implemented via an
internal last-value queue. When an MQTT client creates, updates, or
adds a subscription a message using the client-ID as the last-value is
sent to the internal queue. When the broker restarts this data is read
from the queue and populates the in-memory MQTT data-structures.
Therefore subscribers can reconnect and resume their session's
subscriptions without have to manually resubscribe.

MQTT state is now managed centrally per-broker rather than in the
MQTTProtocolManager since there is one instance of MQTTProtocolManager
for each acceptor allowing MQTT connections. Managing state per acceptor
would allow odd behavior with clients connecting to different acceptors
with the same client ID.

The subscriptions are serialized as raw bytes with a "version" byte for
potential future use, but I intentionally avoided adding complex
scaffolding to support multiple versions. We can add that complexity
later if necessary.

Some tests needed to be changed since instantiating an MQTT protocol
manager now creates an internal queue. A handful of tests assume that no
queues will exist other than the ones they create themselves. I updated
the main test super-class so that an MQTT protocol manager is not
automatically instantiated when configuring a broker for in-vm support.
2023-09-13 11:28:53 +01:00
Clebert Suconic 6a8cd175dc ARTEMIS-4401 improving JDBC Performance with Paging by a significant factor 2023-09-12 08:34:09 -04:00
Timothy Bish d830f04de8 ARTEMIS-4419 Add federation support to AMQP broker connections
Allows federation of addresses and queues over an outbound AMQP broker
connection and provide configuration via XML or broker propeties.
2023-09-11 16:38:36 -04:00
Clebert Suconic ab6cfe2445 ARTEMIS-4424 Unecessary AMQ212025 (not connected) when no nodes are connected
The exception thrown by serverLocator.connect() should be all you need on such case
and the caller should then be responsible for taking appropriate action.
2023-09-11 11:19:26 -04:00
Clebert Suconic 47a3ee5304 ARTEMIS-4413 Improve reliability of CheckTest.testNodeCheckTopology
I have also made some other quick changes to make testing here easier.
2023-09-01 11:53:58 -04:00
Justin Bertram cd8a2e5c49 ARTEMIS-4396 make address/queue internal prop durable 2023-08-31 14:09:42 +01:00
Robbie Gemmell df410da7ae ARTEMIS-4402: add some unit tests exercising the semi-generated log/message bundles to make generation problems more quickly noticable 2023-08-25 15:02:24 +01:00
Clebert Suconic 064018a3e9 ARTEMIS-4384 cluster verify CLI command
ARTEMIS-4385 Expand StatQueue to visualize --clustered
2023-08-11 19:12:44 -04:00
Justin Bertram 7048d9d4a5 [maven-release-plugin] prepare for next development iteration 2023-07-20 14:39:21 -05:00
Justin Bertram f05b63b8a1 [maven-release-plugin] prepare release 2.30.0 2023-07-20 14:36:44 -05:00
Clebert Suconic 6b61e9eaaf NO-JIRA Moving CLI Management to use ManagementHelper 2023-07-20 15:01:58 -04:00
Clebert Suconic 677d71b8e7 ARTEMIS-4366 Missing Mirrored ACKs with MULTICAST and subscriptions 2023-07-17 20:19:06 -04:00
Justin Bertram cce565e78f ARTEMIS-4353 clean up Maven dependencies
This commit contains the following changes:
 - eliminate used, undeclared dependencies
 - eliminate unused, declared dependencies
 - fix scope for test dependencies
 - eliminate org.hamcrest completely as its use involved deprecated code
   as well as dependencies from multiple versions
2023-07-14 14:03:41 +01:00
Domenico Francesco Bruscino 451d03fd75 ARTEMIS-4332 Add management method to close stuck server sessions
In rare cases a store operation could silently fails or starves, blocking the
related server session and all delivering messages. Those server sessions can
be closed adding a management method that cleans their operation context
before closing them.
2023-07-13 10:32:14 -04:00
Justin Bertram 2d1a8661fd ARTEMIS-4338 STOMP inoperable w/resource audit logging
When resource audit logging is enabled STOMP is completely inoperable
due to an NPE during the protocol handshake. Unfortunately the failure
is completely silent. There are no logs to indicate a problem.

This commit fixes this problem via the following changes:
 - Mitigate the original NPE via a check for null
 - Move the logic necessary to set the "protocol connection" on the
   "transport connection" to a class shared by all implementations.
 - Add exception handling to log failures like this in the future.
 - Add tests to ensure the audit logging is correct.
2023-07-06 12:08:16 +01:00
Justin Bertram f60a7d5c04 ARTEMIS-4341 refactor JavaDoc generation
Currently JavaDoc is generated for many classes that don't need it.
JavaDoc should be reserved for user-facing classes (e.g. those used by
client application developers and developers embedding a broker into
their application). This commit narrows down the configuration to just
the classes that are needed. This will save time during release builds,
and save disk space wherever these files are stored (e.g. Apache
website).
2023-07-04 18:00:42 +01:00
Gary Tully a8b4ee1992 ARTEMIS-4314 support queue federation batchOnCapacity via consumerWindowSize=0 2023-06-16 15:44:51 +01:00
Alexey Markevich d00b9ad014 NO-JIRA artemis-core-client: minor SecurityFormatter improvement 2023-06-15 17:00:53 -05:00
Clebert Suconic ae554b43db [maven-release-plugin] prepare for next development iteration 2023-06-14 18:20:58 -04:00
Clebert Suconic 2be5c54cd0 [maven-release-plugin] prepare release 2.29.0 2023-06-14 18:20:45 -04:00
a181321 0f4982913f ARTEMIS-4185 Resending compressed message uncompressed throws exception in consumer 2023-06-14 17:08:40 -04:00
a181321 582a689cdb ARTEMIS-4186 Ability to set compressionLevel for compressLargeMessages 2023-06-14 04:42:38 -07:00
Domenico Francesco Bruscino bd3c057559 ARTEMIS-4251 Support CORE client failover to other live servers
Improve the CORE client failover connecting to other live servers when all
reconnect attempts fails, i.e. in a cluster composed of 2 live servers,
when the server to which the CORE client is connected goes down the CORE
client should reconnect its sessions to the other liver broker.
2023-06-13 08:24:02 -07:00
Justin Bertram c96a074b53 ARTEMIS-4292 support more Micrometer system metrics
This commit exposes Micrometer's system metrics for:
 - file descriptors
 - processor
 - uptime
2023-06-13 04:58:59 -07:00
Justin Bertram c4501f6793 ARTEMIS-4294 support text-encoded WebSocket frames 2023-05-31 16:34:02 -05:00
Justin Bertram 15aafe0b70 ARTEMIS-4293 add mngmnt ops to clear authn/z caches 2023-05-26 16:47:33 +02:00
Clebert Suconic e719622de5 ARTEMIS-4285 Limit number of redelivery records 2023-05-19 13:59:28 -07:00
Domenico Francesco Bruscino c47d15c12a ARTEMIS-4283 Fail fast CORE client connect on closing
ServerLocatorImpl waits for topology after connecting a new session factory.
It should interrupt waiting for topology when it is closed to fail fast.
2023-05-19 08:30:58 -07:00
Clebert Suconic 1d4139f278 ARTEMIS-3809 Fixing LargeMessageController timeout
Say packets stopped flowing, and you are calling receive(0);
The Controller should check if packets didn't arrive and throw a proper exception
2023-05-15 14:37:05 -07:00
Justin Bertram c9c819aa88 ARTEMIS-4274 push masked credential support into core client 2023-05-10 13:55:39 -07:00
Gary Tully c5d872575e ARTEMIS-4256 - support removal of configuration via properties 2023-05-05 11:58:15 +01:00
Domenico Francesco Bruscino cc9db6b2f7 ARTEMIS-4244 Set web config using system properties 2023-04-26 17:07:32 -05:00
Justin Bertram 74fa4ca758 ARTEMIS-4212 fix sending msgs to address w/mismatching routing types
When sending, for example, to a predefined anycast address and queue
from a multicast (JMS topic) producer, the routed count on the address
is incremented, but the message count on the matching queue is not. No
indication is given at the client end that the messages failed to get
routed - the messages are just silently dropped.

Fixing this problem requires a slight semantic change. The broker is now
more strict in what it allows specifically with regards to
auto-creation. If, for example, a JMS application attempts to send a
message to a topic and the corresponding multicast address doesn't exist
already or the broker cannot automatically create it or update it then
sending the message will fail.

Also, part of this commit moves a chunk of auto-create logic into
ServerSession and adds an enum for auto-create results. Aside from
helping fix this specific issue this can serve as a foundation for
de-duplicating the auto-create logic spread across many of the protocol
implementations.
2023-04-25 16:08:31 -05:00
Clebert Suconic 4eb978b931 ARTEMIS-4233 Disabling RefCounting debug and error after paged messages 2023-04-12 16:40:26 -07:00
Clebert Suconic 6d3dbc4383 ARTEMIS-4233 Large Message Issues After Failed Clients
- interrupted message breaking reference counting
After the server writing to the client is interrupted in AMQP, the reference counting was broken what would require the server restarted
in order to cleanup the files of any interrupted sends.

- Removed consumer during large message delivery damaging large messages
If the consumer failed to deliver messages for any reason, the message on the queue would be duplicated. what would wipe out the body of the message
and other journal errors would happen because of this.

extra debug capabilities added into RefCountMessage as part of ARTEMIS-4206 in order to identify these issues
2023-04-06 07:40:01 -07:00
Clebert Suconic 07d96ecb9e NO-JIRA dump typo 2023-03-30 15:42:10 -04:00
Justin Bertram 448a6dee02 ARTEMIS-4209 avoid double 'ID:' for 'User ID' when browsing AMQP msgs 2023-03-28 16:21:13 -05:00
Domenico Francesco Bruscino bb08a573eb ARTEMIS-3640 Use client connectors for HA 2023-03-09 11:20:51 +00:00
Clebert Suconic 2378d187af [maven-release-plugin] prepare for next development iteration 2023-01-31 07:22:48 -05:00
Clebert Suconic 893e1e7916 [maven-release-plugin] prepare release 2.28.0 2023-01-31 07:22:47 -05:00
Clebert Suconic 764db34e9b ARTEMIS-3178 Page Limitting (max messages and max bytes)
I am adding three attributes to Address-settings:

* page-limit-bytes: Number of bytes. We will convert this metric into max number of pages internally by dividing max-bytes / page-size. It will allow a max based on an estimate.
* page-limit-messages: Number of messages
* page-full-message-policy: fail or drop

We will now allow paging, until these max values and then fail or drop messages.

Once these values are retracted, the address will remain full until a period where cleanup is kicked in by paging. So these values may have a certain delay on being applied, but they should always be cleared once cleanup happened.
2023-01-30 18:19:45 -05:00
Andy Taylor b02002fc66 ARTEMIS-3875 - adding consumer and producer metrics
https://issues.apache.org/jira/browse/ARTEMIS-3875
2023-01-13 15:49:44 -05:00
Clebert Suconic bc1258ab25 ARTEMIS-3609 Using a different thread for the completion listener 2023-01-13 09:23:51 -05:00
Clebert Suconic 4550fcf47c ARTEMIS-4116 Management lock to avoid multiple long running tasks running from user requests 2023-01-13 09:23:51 -05:00
Ryan Highley 51c1504b05 ARTEMIS-3794 System Property Encryption Support
Adds support for standard Java TLS and ActiveMQ Artemis-specific override
encrypted system property values for the key store and trust store
passwords, including a separate codec property
2022-12-16 19:15:56 -06:00
AntonRoskvist 5c2a0d744c
ARTEMIS-4091 - Make scaleDown target more deterministic 2022-12-15 16:05:26 -06:00
Erwin Dondorp 065e4246e1 ARTEMIS-3993 changed some MB style uses to use MiB; added support for MiB/GiB/etc in config 2022-12-15 13:14:24 -06:00
Clebert Suconic 1de10671f8 ARTEMIS-3609 Do not use netty thread for thread completion listener 2022-12-15 10:35:43 -05:00
Clebert Suconic af9bd7b84a ARTEMIS-4065 Optimize page counters to not use the journal as often
- From now on we will save snapshots of page-counters on the journal (basically for compatibility with previous verions).
  And we will recount the records on startup.

- While the rebuild is being done the value from the previous snapshot is still available with current updates.
2022-12-15 10:30:18 -05:00
Robbie Gemmell f790911c44 ARTEMIS-4110: insert standard ASF licence header comment in various cases, such as to replace a javadoc header 2022-12-07 10:21:25 +00:00
Domenico Francesco Bruscino 3a13a7850c ARTEMIS-4077 Add an option to disable XML external entity processing 2022-11-15 10:06:03 -06:00
Clebert Suconic f2e0f8713f ARTEMIS-4083 ClientLargeMessage Streaming not closing inputStream if compressed 2022-11-10 07:52:44 -05:00
Clebert Suconic 9528e45869 ARTEMIS-4083 ClientLargeMessage Streaming not closing inputStream if compressed 2022-11-10 06:27:10 -05:00
Justin Bertram dce4ba3c1a [maven-release-plugin] prepare for next development iteration 2022-11-08 13:17:38 -06:00
Justin Bertram 1fd6cb6239 [maven-release-plugin] prepare release 2.27.0 2022-11-08 12:46:20 -06:00
Gary Tully 3b981b3920 ARTEMIS-4028 - add alder32 checksum to the status of properties files read by the broker 2022-10-13 18:23:09 +01:00
Gary Tully 03ef286cc8 ARTEMIS-4025 - trap failure to apply properties as errors and report via the broker status in a configuration/properties/errors status field 2022-10-13 18:23:09 +01:00
Justin Bertram 0ab098e456
ARTEMIS-4035 all consumers of federated queue drop if only one consumer drops 2022-10-13 10:36:38 -05:00
Justin Bertram 5343c97c7d ARTEMIS-4022 add auto-delete queue attribute to management 2022-10-11 13:16:46 -04:00
Timothy Bish 617269319a ARTEMIS-4020: Remove string appends and various isXEnabled logger checks (add some where useful)
Logger statements should use formatting syntax and let the normal framework checks take care of
checking if a logger is enabled instead of string concats and isXEnabled logger checks except
in cases there is known expense to the specifc logging message/arg preparation or passing.

Changes from myself and Robbie Gemmell.

Co-authored-by: Robbie Gemmell <robbie@apache.org>
2022-10-07 15:40:53 -04:00
Clebert Suconic 0e799ca1c9 ARTEMIS-4033 Updating descriptions on the replay operations
Incorporating suggested changes by John Clifford
2022-10-06 16:24:03 -04:00
Clebert Suconic 12cc70c5bf ARTEMIS-4020 Using a little trick to create the Loggers
Trick provided by Tim Bish
2022-09-29 17:46:51 -04:00
Robbie Gemmell 9873fccf74 ARTEMIS-4020: switch to using SLF4J API for logging, use Log4J 2 as impl for broker distribution and tests
PR includes work from myself and Clebert Suconic, squashed from the new-logging branch.
2022-09-28 14:01:54 -04:00
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
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
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
Clebert Suconic 7bf1193380 ARTEMIS-4003 Fixing credit starve on Large Message over the bridge or clustering 2022-09-19 12:10:28 -04:00
Domenico Francesco Bruscino 93a5f3b596 ARTEMIS-3999 Fix setting extraParams for new acceptors via broker properties 2022-09-19 08:18:12 +02:00
Gary Tully c8624f57d7 ARTEMIS-3978 - allow federation upstream configuration via properties 2022-09-15 13:27:41 +01: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 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
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
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 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
Robbie Gemmell f6bca09afa ARTEMIS-3954: add more detail to core-client javadoc around the session and children thread model being like the JMS client 2022-08-23 13:30:15 +01:00
Clebert Suconic fa002728f2 [maven-release-plugin] prepare for next development iteration 2022-07-26 11:59:21 -04:00
Clebert Suconic 897d9beaef [maven-release-plugin] prepare release 2.24.0 2022-07-26 11:59:19 -04:00
Clebert Suconic 79daf49105 [maven-release-plugin] prepare for next development iteration 2022-07-21 17:44:35 -04:00
Clebert Suconic cc4867ccba [maven-release-plugin] prepare release 2.24.0 2022-07-21 17:44:33 -04:00
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
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
Gary Tully 6d926719f4 ARTEMIS-3863 - allow Role configuration via properties 2022-06-23 09:41:33 +01: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 578f2fb5cf ARTEMIS-3856 re-applying recursive logic on ThreadLocal 2022-06-10 00:53:28 -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
Justin Bertram 446ff61542
ARTEMIS-3770 refactor MQTT handling of client ID
It would be useful for security manager implementations to be able to
alter the client ID of MQTT connections.

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

This commit also refactors the MQTT connection class to extend the
abstract connection class. This greatly simplifies the MQTT connection
class and will make it easier to maintain in the future.
2022-05-09 14:51:06 -05:00
Clebert Suconic e420eb4732 ARTEMIS-3817 SchedulePageCleanup operation on AddressControl 2022-05-09 09:17:56 -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
Clebert Suconic 5e6f599f80 ARTEMIS-3805 producer-window-size default 2022-04-26 16:14:14 -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
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
Vilius Šumskas d42d654874
NO-JIRA addUser is also applicable for ActiveMQBasicSerurityManager 2022-03-30 11:56:46 -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
Emmanuel Hugonnet 3dc434a311 [ARTEMIS-3732]: ServerLocator disableFinalizeCheck method has been removed without being deprecated first.
* Adding back empty default method for retro compatibility.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-3732
2022-03-21 16:50:00 -04:00
Justin Bertram 842ac1df5d ARTEMIS-3676 ignore NoRouteToHostException
This kind of exception can be common in cloud environments and should be
ignored for logging just like ConnectException.
2022-03-21 13:49:26 -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
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
AntonRoskvist 99b9d87bfd
ARTEMIS-2934 Add option to suppress SESSION notifications 2022-02-17 14:56:16 -06:00
Justin Bertram 0bc7bf3f7c
ARTEMIS-3677 add more tests 2022-02-14 12:23:16 -06:00
Justin Bertram 7b25cbb51d
ARTEMIS-3677 add test, etc. 2022-02-10 12:00:17 -06:00
Justin Bertram 51a25b4ba4
ARTEMIS-3677 mitigate NPE when browsing messages 2022-02-10 10:30:03 -06:00
Luis De Bello cf73e895f3
ARTEMIS-3613: Deprecating stompMaxFramePayloadLength in favour of webSocketMaxFramePayloadLength 2022-02-07 19:44:18 -06:00
Justin Bertram e582ce03a5
ARTEMIS-3644 add cert info to CONNECTION_CREATED notification 2022-02-04 14:37:15 -06: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
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
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
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 54f4cb560c ARTEMIS-3636 LinkedListImpl leak on mesage consume error 2022-01-11 16:55:40 -05:00
Clebert Suconic 2e89dc25b6 NO-JIRA Notice update to 2022 2022-01-06 15:31:01 -05:00
franz1981 46d1fa66f7 ARTEMIS-3618 Faster Artemis CORE client MessageListener::onMessage without SecurityManager 2021-12-20 14:22:44 -05:00
Emmanuel Hugonnet dd645d0d4e [ARTEMIS-3607]: Supporting JsonValues in JsonUtil.addToArray and
JsonUtil.addToObject

* When the added Object is of type JsonValue, don't call the toString
  method on it.

Issue: https://issues.apache.org/jira/browse/ARTEMIS-3607
2021-12-15 08:45:19 -05:00