Clebert Suconic [Wed, 13 Apr 2022 17:17:44 +0000 (13:17 -0400)]
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.
Clebert Suconic [Wed, 13 Apr 2022 16:34:30 +0000 (12:34 -0400)]
ARTEMIS-3776 just my OCD applying aesthetic tweaks to recediveOW.groovy
Clebert Suconic [Wed, 13 Apr 2022 01:58:13 +0000 (21:58 -0400)]
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.
Justin Bertram [Fri, 8 Apr 2022 18:25:04 +0000 (13:25 -0500)]
ARTEMIS-3773 remove defunct rate references from web console
This is a follow-up from ARTEMIS-3397. This commit removes the last
traces of the "rate" queue metric from the web console.
Justin Bertram [Tue, 12 Apr 2022 15:05:03 +0000 (10:05 -0500)]
ARTEMIS-3774 support user properties on MQTT will message
Robbie Gemmell [Fri, 8 Apr 2022 12:38:41 +0000 (13:38 +0100)]
ARTEMIS-3772: update to mockito 4.4.0
Clebert Suconic [Fri, 1 Apr 2022 02:01:30 +0000 (22:01 -0400)]
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
Clebert Suconic [Thu, 7 Apr 2022 13:19:16 +0000 (09:19 -0400)]
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
Clebert Suconic [Tue, 5 Apr 2022 22:18:27 +0000 (18:18 -0400)]
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.
Robbie Gemmell [Thu, 7 Apr 2022 11:58:38 +0000 (12:58 +0100)]
ARTEMIS-3768: update to Qpid JMS 1.6.0
Robbie Gemmell [Mon, 4 Apr 2022 14:28:06 +0000 (15:28 +0100)]
ARTEMIS-3758: clean up lots of tests that never run, remove related files + dependencies and some unnecessary deps
Robbie Gemmell [Wed, 6 Apr 2022 15:07:06 +0000 (16:07 +0100)]
ARTEMIS-3762: update docs build, add version overrides to clear security warnings
Robbie Gemmell [Thu, 7 Apr 2022 10:01:06 +0000 (11:01 +0100)]
This closes #4014
Domenico Francesco Bruscino [Tue, 5 Apr 2022 07:45:34 +0000 (09:45 +0200)]
ARTEMIS-3760 Upgrade jackson version to 2.13.2
Justin Bertram [Wed, 6 Apr 2022 16:38:29 +0000 (11:38 -0500)]
ARTEMIS-3764 wrong CONNACK return code for MQTT5
This bug is causing tests in o.a.a.a.t.i.m.s.c.ConnectTestsWithSecurity
to fail.
This commit fixes the problem by setting the session's version earlier
in the logic handling the CONNECT packet so that the proper CONNACK
return code can be supplied to the remote client in case of
authentication failure.
Gary Tully [Tue, 5 Apr 2022 12:15:44 +0000 (13:15 +0100)]
ensure temp files are off the base class temp folder rule root to get cleaned up post test
Gary Tully [Mon, 4 Apr 2022 16:17:38 +0000 (17:17 +0100)]
ARTEMIS-3757 - allow system and env var substution of properties config, respect order of file loaded properties and add generic enum converter
Domenico Francesco Bruscino [Mon, 4 Apr 2022 08:59:14 +0000 (10:59 +0200)]
ARTEMIS-3752 Upgrade Spring Framework to 5.3.18 for examples and tests
Domenico Francesco Bruscino [Fri, 1 Apr 2022 12:47:42 +0000 (14:47 +0200)]
ARTEMIS-3752 Upgrade Spring Framework to 5.3.18
Domenico Francesco Bruscino [Fri, 1 Apr 2022 15:54:05 +0000 (17:54 +0200)]
ARTEMIS-3754 Upgrade tomcat-servlet-api to 8.5.78
Justin Bertram [Wed, 30 Mar 2022 16:57:50 +0000 (11:57 -0500)]
This closes #3997
Justin Bertram [Thu, 24 Mar 2022 19:43:53 +0000 (14:43 -0500)]
ARTEMIS-3744 NPE with empty security-manager config in bootstrap.xml
Justin Bertram [Wed, 30 Mar 2022 16:57:28 +0000 (11:57 -0500)]
This closes #3996
Justin Bertram [Wed, 23 Mar 2022 20:50:19 +0000 (15:50 -0500)]
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.
Justin Bertram [Wed, 23 Mar 2022 20:37:58 +0000 (15:37 -0500)]
ARTEMIS-3740 Upgrade Johnzon
Justin Bertram [Wed, 30 Mar 2022 16:56:47 +0000 (11:56 -0500)]
This closes #4002
Vilius Šumskas [Sun, 27 Mar 2022 19:30:24 +0000 (22:30 +0300)]
NO-JIRA addUser is also applicable for ActiveMQBasicSerurityManager
Justin Bertram [Wed, 30 Mar 2022 16:15:26 +0000 (11:15 -0500)]
This closes #3998
AntonRoskvist [Fri, 25 Mar 2022 10:09:24 +0000 (11:09 +0100)]
ARTEMIS-3733 - Destination cache size too small for OpenWire clients
Tiago Bueno [Wed, 30 Mar 2022 14:40:47 +0000 (11:40 -0300)]
NO-JIRA fix duplicate text in security.md doc
Remove the duplicate text in CertificateLoginModule section of the
the security.md doc
Tiago Bueno [Thu, 24 Mar 2022 15:24:45 +0000 (12:24 -0300)]
ARTEMIS-3749 e2e-tests improvements
Scripts:
- Fix the preapre-docker.sh to exit with 0 instead of 1 on success
On pom files:
- Change e2e-tests variable names to e2e-tests.xxxxxx for clarity on
e2e-tests variables
- Add e2e-tests.skipImageBuild variable to control if the docker image
will be build (defaults to not build)
- Add e2e-tests.dockerfile variable to specify the dockerfile to be
used (defaults to Dockerfile-centos)
- Bump testcontainers version to 1.16.3
- Add artemis distribution dependency since the docker image build
depends on it
On ContainerService class:
- Fix exposePorts and exporseFolder to use SELinux shared mode
otherwise the mount fails on machines with SELinux enabled
- Move the logic to use specific user on container from generic start
method to broker specific method to avoid affect other images
- Update the broker image name to a more generic name (activemq-artemis
instead of artemis-centos)
- Update the broker image tag to match with the project version in pom
file
Justin Bertram [Tue, 29 Mar 2022 20:19:43 +0000 (15:19 -0500)]
Fix typo
Justin Bertram [Tue, 29 Mar 2022 20:12:19 +0000 (15:12 -0500)]
NO-JIRA add version/upgrade info for 2.21.0
Justin Bertram [Thu, 24 Mar 2022 18:15:31 +0000 (13:15 -0500)]
NO-JIRA improve Wait.asserEquals error message
Clebert Suconic [Tue, 22 Mar 2022 17:34:58 +0000 (13:34 -0400)]
[maven-release-plugin] prepare for next development iteration
Clebert Suconic [Tue, 22 Mar 2022 17:34:55 +0000 (13:34 -0400)]
[maven-release-plugin] prepare release 2.21.0
Clebert Suconic [Tue, 22 Mar 2022 16:25:44 +0000 (12:25 -0400)]
NO-JIRA updating git clone URI on Release instructions
Clebert Suconic [Tue, 22 Mar 2022 15:52:46 +0000 (11:52 -0400)]
ARTEMIS-3734 Correcting typo on documentation for CLI Transfer
Domenico Francesco Bruscino [Mon, 21 Mar 2022 05:32:32 +0000 (06:32 +0100)]
ARTEMIS-3710 Deprecate queues config element
Clebert Suconic [Tue, 22 Mar 2022 13:15:06 +0000 (09:15 -0400)]
NO-JIRA fixing MessagesExpiredPagingTest
There is a reference expiring in one hour. It should not leave page mode.
This is about still flowing messages, not leaving page mode.
Domenico Francesco Bruscino [Tue, 8 Mar 2022 11:02:39 +0000 (12:02 +0100)]
ARTEMIS-3708 Collapse key transformer into policy
Tiago Bueno [Fri, 21 Jan 2022 17:38:18 +0000 (14:38 -0300)]
NO-JIRA fix ManifestTest
As the test needs the generated jms jars to be verified I moved it from
unit-tests to smoke-tests.
Updated the test to look for the correct jars as the originally
specified does not exist.
Update the test to assert against Implementation-Version instead of
ActiveMQ-Version in the manifest file as the ActiveMQ-Version property does not exist.
Clebert Suconic [Mon, 21 Mar 2022 22:23:46 +0000 (18:23 -0400)]
ARTEMIS-3720 Exposing global-max-messages on the CLI
Justin Bertram [Tue, 8 Mar 2022 17:06:00 +0000 (11:06 -0600)]
ARTEMIS-3711 support AMQ_SCHEDULED_DELAY for OpenWire clients
Clebert Suconic [Mon, 21 Mar 2022 14:08:58 +0000 (10:08 -0400)]
ARTEMIS-3720 Improvements on Paging MaxMessages usage
I "used" the broker a little bit around max-messages and found a few minor issues.
Clebert Suconic [Mon, 21 Mar 2022 20:50:17 +0000 (16:50 -0400)]
This closes #3994
Emmanuel Hugonnet [Mon, 21 Mar 2022 20:00:17 +0000 (21:00 +0100)]
[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
Clebert Suconic [Mon, 21 Mar 2022 20:48:39 +0000 (16:48 -0400)]
This closes #3980
Tiago Bueno [Mon, 2 Aug 2021 18:22:46 +0000 (15:22 -0300)]
ARTEMIS-3716 move e2e tests to e2e-tests module
Move all tests which are related to end-to-end testing from smoke-tests
module to a new module named e2e-tests.
These e2e tests are those which are dependent of ContainerService
class. ContainerService class uses artemis inside a container by using
the testcontainers library and for that reason these tests are usually
a quite slow and tecnically they are not a smoke test.
The new e2e-tests module is part of tests module but it is not enabled
by default and to get executed it requires the e2e-tests profile
specification on maven command.
Clebert Suconic [Mon, 21 Mar 2022 20:37:19 +0000 (16:37 -0400)]
NO-JIRA Simplifying some formatting in logging
Domenico Francesco Bruscino [Wed, 16 Mar 2022 08:40:29 +0000 (09:40 +0100)]
ARTEMIS-3709 Add group-rebalance-pause-dispatch attribute to queueType
Justin Bertram [Fri, 18 Mar 2022 19:28:39 +0000 (14:28 -0500)]
ARTEMIS-3676 ignore NoRouteToHostException
This kind of exception can be common in cloud environments and should be
ignored for logging just like ConnectException.
Domenico Francesco Bruscino [Fri, 18 Mar 2022 15:01:41 +0000 (16:01 +0100)]
ARTEMIS-3729 Fix JMS CORE client commit after async sends
Clebert Suconic [Fri, 18 Mar 2022 18:36:57 +0000 (14:36 -0400)]
ARTEMIS-3720 Documentation about max-messages
Clebert Suconic [Thu, 16 Dec 2021 18:37:03 +0000 (13:37 -0500)]
ARTEMIS-3720 Max Number Of Messages on a deciding policy for paging (global and address-settings)
Justin Bertram [Fri, 4 Mar 2022 04:04:20 +0000 (22:04 -0600)]
ARTEMIS-3702 auth failures don't adhere to MQTT spec
The commit includes the following changes:
- Don't drop the connection on subscribe or publish authorization
failures for 3.1 clients.
- Don't drop the connection on subscribe authorization failures for
3.1.1 clients.
- Add configuration parameter to control behavior on publish
authorization failures for 3.1.1 clients (either disconnect or not).
Domenico Francesco Bruscino [Thu, 10 Mar 2022 09:00:47 +0000 (10:00 +0100)]
ARTEMIS-3715 Support testClientID for artemis-maven-plugin
Robbie Gemmell [Tue, 15 Mar 2022 15:06:25 +0000 (15:06 +0000)]
ARTEMIS-3724: Update Jetty to 9.4.45.v20220203
Robbie Gemmell [Tue, 15 Mar 2022 13:19:43 +0000 (13:19 +0000)]
ARTEMIS-3723: update to Netty 4.1.75 (and netty-tcnative 2.0.50)
Clebert Suconic [Tue, 15 Mar 2022 02:36:24 +0000 (22:36 -0400)]
ARTEMIS-3721 AMQP Mirrored Large Message file not removed
Justin Bertram [Fri, 11 Mar 2022 15:36:22 +0000 (09:36 -0600)]
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.
Robbie Gemmell [Mon, 14 Mar 2022 17:15:16 +0000 (17:15 +0000)]
ARTEMIS-3591: stop paging checkMemory task executing twice
Justin Bertram [Wed, 9 Mar 2022 19:46:32 +0000 (13:46 -0600)]
This closes #3977
pringinacio [Mon, 7 Mar 2022 15:00:29 +0000 (15:00 +0000)]
ARTEMIS-3714 change Docker group and user IDs to 1001
Changed group and user ids to 1001 to allow Artemis user to be the own
of /var/lib/artemis-instance and /opt/activemq-artemis. Otherwise the
owner will be root (1000).
This was already done in Dockerfile-centos file.
Justin Bertram [Wed, 9 Mar 2022 17:19:08 +0000 (11:19 -0600)]
This closes #3981
Justin Bertram [Wed, 9 Mar 2022 04:08:32 +0000 (22:08 -0600)]
ARTEMIS-3712 refresh doc generation tool-chain
Justin Bertram [Fri, 4 Mar 2022 17:31:15 +0000 (11:31 -0600)]
ARTEMIS-3698 fix test
When copying message properties from the core message to the OpenWire
message we intentially omit any properties starting with `_AMQ` and
`__HDR_`. However, we were effectively negating that logic because we
copied the marshalled properties directly to the message without any
filtering. Now that we no longer copy the marshalled properties directly
to the message the test breaks because it expects properties starting
with `__HDR_`. This commit fixes the test by removing those
expectations. The test is still valid because the message is still
receieved rather than being swallowed due to an exception (which was the
original problem).
Clebert Suconic [Fri, 4 Mar 2022 15:41:45 +0000 (10:41 -0500)]
ARTEMIS-3701 Do no block libaio on compacting or closing
I am adding a test showing it is safe to not wait pending callbacks before closing a file.
With this I can just close the file and let the kernel to deal with sending the completions.
Robbie Gemmell [Fri, 4 Mar 2022 13:54:12 +0000 (13:54 +0000)]
This closes #3969
Justin Bertram [Mon, 28 Feb 2022 19:45:02 +0000 (13:45 -0600)]
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.
Robbie Gemmell [Thu, 3 Mar 2022 13:27:04 +0000 (13:27 +0000)]
ARTEMIS-3695: use specific jetty deps instead of uber jar, rationalise servlet api deps
Partially reverts
c5f94f340d721600c4b67dc003eace023b046211
nbrendah [Wed, 5 Jan 2022 14:52:38 +0000 (17:52 +0300)]
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
franz1981 [Thu, 3 Mar 2022 15:49:57 +0000 (16:49 +0100)]
This closes #3974
franz1981 [Thu, 3 Mar 2022 15:46:28 +0000 (16:46 +0100)]
ARTEMIS-3522 Improve next fire time computation using double period
franz1981 [Wed, 2 Mar 2022 12:32:43 +0000 (13:32 +0100)]
This closes #3857
franz1981 [Thu, 16 Sep 2021 11:49:40 +0000 (13:49 +0200)]
ARTEMIS-3522 Implement performance tool for RUL benchmarks
Co-authored-by: gtully
Clebert Suconic [Tue, 1 Mar 2022 17:27:01 +0000 (12:27 -0500)]
NO-JIRA Improving assertion on MessageExpiredPagingTest
Clebert Suconic [Tue, 1 Mar 2022 16:56:07 +0000 (11:56 -0500)]
NO-JIRA Improving expiry test with an executor
gtully [Fri, 28 Jan 2022 13:47:53 +0000 (13:47 +0000)]
ARTEMIS-3660 - rename broker-balancer to connection-router
Domenico Francesco Bruscino [Mon, 28 Feb 2022 21:23:36 +0000 (22:23 +0100)]
ARTEMIS-3697 Skipping testInabilityToCreateDirectoryDuringPaging for db
Justin Bertram [Tue, 1 Mar 2022 02:43:06 +0000 (20:43 -0600)]
This closes #3970
Domenico Francesco Bruscino [Mon, 28 Feb 2022 20:06:30 +0000 (21:06 +0100)]
ARTEMIS-3685 Fix BridgeTransformer resolver
Clebert Suconic [Tue, 1 Mar 2022 02:09:30 +0000 (21:09 -0500)]
NO-JIRA Fixing test assertion
Domenico Francesco Bruscino [Mon, 28 Feb 2022 18:02:42 +0000 (19:02 +0100)]
ARTEMIS-3685 Fix BridgeImpl init
Justin Bertram [Fri, 25 Feb 2022 15:41:21 +0000 (09:41 -0600)]
ARTEMIS-3696 avoid null prop values on STOMP msgs
Justin Bertram [Mon, 28 Feb 2022 16:12:05 +0000 (10:12 -0600)]
ARTEMIS-3685 fix a couple more issues
Justin Bertram [Mon, 28 Feb 2022 15:54:37 +0000 (09:54 -0600)]
ARTEMIS-3685 fix a couple of issues
Justin Bertram [Thu, 24 Feb 2022 21:05:13 +0000 (15:05 -0600)]
ARTEMIS-3698 avoid byte[] prop values when converting from OpenWire
Avoid storing the following values as byte[] for OpenWire:
- Marshalled properties. We already store the unmarshalled properties
so this is altogether redundant.
- Producer ID.
- Message ID.
- Various destination values.
Also, eliminate the "original transaction ID" conversion code as it's
never actually set from the incoming message.
Justin Bertram [Mon, 28 Feb 2022 01:57:14 +0000 (19:57 -0600)]
This closes #3962
Domenico Francesco Bruscino [Fri, 18 Feb 2022 13:23:02 +0000 (14:23 +0100)]
ARTEMIS-3691 Build the CLI connector from a broker acceptor
Justin Bertram [Mon, 28 Feb 2022 01:17:03 +0000 (19:17 -0600)]
This closes #3964
Kerner, Dr. Patrick [Thu, 24 Feb 2022 08:28:14 +0000 (09:28 +0100)]
ARTEMIS-3690 add missing getters/setters to RA ConnectionFactory
Justin Bertram [Sat, 26 Feb 2022 21:16:04 +0000 (15:16 -0600)]
This closes #3957
Justin Bertram [Wed, 16 Feb 2022 23:06:58 +0000 (17:06 -0600)]
ARTEMIS-3687 bridges with concurrency > 1 can leak
Justin Bertram [Mon, 14 Feb 2022 17:49:11 +0000 (11:49 -0600)]
ARTEMIS-3685 support reloading bridges
Justin Bertram [Sat, 26 Feb 2022 21:14:33 +0000 (15:14 -0600)]
This closes #3930
Justin Bertram [Sat, 22 Jan 2022 06:16:50 +0000 (00:16 -0600)]
ARTEMIS-3657 refactor address docs
Mainly refactoring the address docs. This commit has the following
changes:
- Remove examples for discouraged use-cases (e.g. using anycast and
multicast on the same address).
- Reword to use configuration terms wherever possible. For example,
instead of saying "point-to-point" (which is not a configuration term)
say "anycast". References to things like "point-to-point" and
"publish-subscribe" are still there since users are familiar with these
terms. They're just used much less often.
- Remove duplicate explanation of exclusive queues.
- Remove duplicate explanation of auto-create and auto-delete elements.
- Re-create graphics and include the master SVGs for potential updates
later.
- Give non-destructive queues its own chapter.
- Add details about specifying routing type using a message property.
- Update the styling on the user manual's cover page to look better.
- Lots of re-wording for clarity's sake.
- Re-order sub-sections for clarity's sake.
- Break up the address model and the settings documentation. The
settings documentation is large and deserves its own chapter. The
original anchor link is still available with a link to the new chapter.
In general the address-specific documentation should be much more clear,
concise, and consistent now.
Clebert Suconic [Fri, 25 Feb 2022 16:01:55 +0000 (11:01 -0500)]
ARTEMIS-3697 Adding test assertion on invalid IO on Paging
This commit is part of a bigger task where I am improving paging.
This test is needed to validate some of the changes I am making on further commits.
Domenico Francesco Bruscino [Tue, 22 Feb 2022 09:17:27 +0000 (10:17 +0100)]
ARTEMIS-3694 Support remote servers for console smoke tests
franz1981 [Thu, 10 Feb 2022 16:10:30 +0000 (17:10 +0100)]
ARTEMIS-3679 Brokers shutdown after daylight saving fall back