Commit Graph

749 Commits

Author SHA1 Message Date
Justin Bertram 7096bc187a ARTEMIS-2649 always over-write ORIG message props
ORIG message propertes like _AMQ_ORIG_ADDRESS are added to messages
during various broker operations (e.g. diverting a message, expiring a
message, etc.). However, if multiple operations try to set these
properties on the same message (e.g. administratively moving a message
which eventually gets sent to a dead-letter address) then important
details can be lost. This is particularly problematic when using
auto-created dead-letter or expiry resources which use filters based on
_AMQ_ORIG_ADDRESS and can lead to message loss.

This commit simply over-writes the existing ORIG properties rather than
preserving them so that the most recent information is available.
2020-06-01 15:19:34 -04:00
Francesco Nigro 99c819b776 ARTEMIS-2785 removed unused and leak-prone readBytes method 2020-05-29 18:43:21 +02:00
Francesco Nigro c72b226bfb ARTEMIS-2785 io.netty.util.internal.OutOfDirectMemoryError during uncompress 2020-05-29 18:17:11 +02:00
Clebert Suconic 39b3dd1044 ARTEMIS-2781 Adding getAllQueueNames; fixing tests 2020-05-28 16:36:59 -04:00
brusdev 9a7620fd71 ARTEMIS-2770 Update diverts using the management API 2020-05-26 20:31:19 -04:00
Justin Bertram fd11a1e079 ARTEMIS-2781 return only local queue names for AddressControl.getQueueNames() 2020-05-26 17:30:38 -05:00
Justin Bertram 4b7b612eb9 ARTEMIS-2771 support JVM GC & thread metrics 2020-05-20 15:53:15 -04:00
Clebert Suconic 001a4b409e ARTEMIS-2769 ConfigurationHelper Test returning default on parsing error 2020-05-19 15:49:40 -04:00
Clebert Suconic faa83b2ba6 [maven-release-plugin] prepare for next development iteration 2020-05-16 18:38:47 -04:00
Clebert Suconic 5f49d89264 [maven-release-plugin] prepare release 2.13.0 2020-05-16 18:38:34 -04:00
Clebert Suconic c99fcd501b [maven-release-plugin] prepare for next development iteration 2020-05-15 16:42:54 -04:00
Clebert Suconic 47fafac760 [maven-release-plugin] prepare release 2.13.0 2020-05-15 16:42:41 -04:00
Emmanuel Hugonnet a88815d9b3 [ARTEMIS-2704]: Provide a SPI to manage and cache SSLContext.
* Adding a new SPI to allow for SSLContext reuse accross the broker.
 * Providing a default behaviour similar to the existing one.

[ARTEMIS-2718]: Take advantage of ARTEMIS-2704 to cache SSLContexts.
* Adding a cache for SSLContexts and reusing them accross acceptors and
  connectors.

Issue: https://issues.apache.org/jira/browse/ARTEMIS-2704
Issue: https://issues.apache.org/jira/browse/ARTEMIS-2718
2020-05-15 16:19:50 -04:00
brusdev 8d5a212bd2 ARTEMIS-2739 Artemis health check tool
Add the command `check` to the Command Line utility. This command exposes some
checks for nodes and queues using the management API for most of them.
The checks have been implemented to be modular. Each user can compose his own
health check, ie to produce and consume from a queue the command is
`artemis check queue --name TEST --produce 1 --consume 1`.
2020-05-15 09:43:02 -04:00
Chris Rog 8cb5332a50 ARTEMIS-2765 Fix parsing error in XMLUtil
Fix a StringIndexOutOfBoundsException in XMLUtil while parsing system
properties in XML that contains curly braces or unterminated property
references
2020-05-14 13:42:06 -05:00
brusdev 71d311322a ARTEMIS-2759 Warn ignored connection factory URI parameters 2020-05-14 09:04:49 -04:00
Clebert Suconic 4fe4220ff0 ARTEMIS-2372 / ARTEMIS-2740 Improving Message Annotations support in AMQP
- when sending messages to DLQ or Expiry we now use x-opt legal names
- we now support filtering thorugh annotations if using m. as a prefix.
- enabling hyphenated_props: to allow m. as a prefix
2020-05-13 10:55:36 -04:00
Andy Taylor 2ab381565c ARTEMIS-2749 - Broadcast Group Control Improvements
https://issues.apache.org/jira/browse/ARTEMIS-2749
2020-05-04 16:20:08 +01:00
Andy Taylor 8a04ee07de ARTEMIS-2648 - audit logging improvements
https://issues.apache.org/jira/browse/ARTEMIS-2648
2020-05-04 15:19:08 +01:00
Justin Bertram 0b155cf5ea ARTEMIS-2666 mngmnt for duplicate ID cache 2020-05-01 13:13:45 -05:00
Clebert Suconic 2ebf3c8e1b ARTEMIS-2372 Filtering on Message Annotations 2020-04-28 11:18:30 -04:00
Clebert Suconic ca4c4068df ARTEMIS-2732 Logging cleanup 2020-04-23 17:49:08 -04:00
Clebert Suconic 3541ebf218 ARTEMIS-2732 Cleanup on testsuite logging 2020-04-22 23:08:46 -04:00
Clebert Suconic 11a3e810bb [maven-release-plugin] prepare for next development iteration 2020-04-21 17:06:21 -04:00
Clebert Suconic 30272e0c2f [maven-release-plugin] prepare release 2.12.0 2020-04-21 17:06:08 -04:00
brusdev 21d9e3bbbf ARTEMIS-2723 Read the default CLI connector from the related broker
Read the CLI connector from the related broker instance if it isn't set by user.
2020-04-20 14:24:24 -04:00
Clebert Suconic d231e2ac63 [maven-release-plugin] prepare for next development iteration 2020-04-16 16:16:41 -04:00
Clebert Suconic 9636f4a3b0 [maven-release-plugin] prepare release 2.12.0 2020-04-16 16:16:28 -04:00
Justin Bertram 2efa44daf5 ARTEMIS-2692 refactor queue creation
This commit does the following:
- Deprecates existing overloaded createQueue, createSharedQueue,
  createTemporaryQueue, & updateQueue methods for ClientSession,
  ServerSession, ActiveMQServer, & ActiveMQServerControl where
  applicable.
- Deprecates QueueAttributes, QueueConfig, & CoreQueueConfiguration.
- Deprecates existing overloaded constructors for QueueImpl.
- Implements QueueConfiguration with JavaDoc to be the single,
  centralized configuration object for both client-side and broker-side
  queue creation including methods to convert to & from JSON for use in
  the management API.
- Implements new createQueue, createSharedQueue & updateQueue methods
  with JavaDoc for ClientSession, ServerSession, ActiveMQServer, &
  ActiveMQServerControl as well as a new constructor for QueueImpl all
  using the new QueueConfiguration object.
- Changes all internal broker code to use the new methods.
2020-04-13 14:25:30 -05:00
brusdev 0f200a4798 ARTEMIS-2698 Expose queue group attributes 2020-04-08 12:53:56 -04:00
Atri Sharma 405eb969c1 ARTEMIS-2636: Introduce Disk Usage Metrics
ARTEMIS-2636: This commit introduces metrics to publish the amount of disk used currently
2020-03-30 22:27:58 -04:00
Justin Bertram fdfe3ba3fa ARTEMIS-2679 deprecate message-expiry-thread-priority
Due to the changes in 6b5fff40cb the
config parameter message-expiry-thread-priority is no longer needed. The
code now uses a ScheduledExecutorService and a thread pool rather than
dedicating a thread 100% to the expiry scanner. The pool's size can be
controlled via scheduled-thread-pool-max-size.
2020-03-25 16:43:38 -04:00
Michael Pearce a60cb229dc ARTEMIS-1194 fixup maven dependencies 2020-03-07 22:04:03 +00:00
Andrius Dagys f1474ce7c8 ARTEMIS-1194 Add SOCKS support
Add a Netty socks proxy handler during channel initialisation to allow
Artemis to communicate via a SOCKS proxy. Supports SOCKS version 4a & 5.
Even if enabled in configuration, the proxy will not be used when the
target host is a loopback address.
2020-03-07 21:35:38 +00:00
Justin Bertram d65867e64a NO-JIRA continue STOMP doc/code property work 2020-03-05 21:00:41 -06:00
Justin Bertram ed7fee6d9c ARTEMIS-2643 allow masked password when resetting via mgmnt 2020-03-05 21:38:09 -05:00
Howard Gao cb8da54110 ARTEMIS-2716 Refactoring 2020-03-03 11:01:42 +00:00
Clebert Suconic 6a04a33e6e ARTEMIS-2637 Fixing checkstyle 2020-02-28 16:35:25 -05:00
Clebert Suconic ea3c592c82 ARTEMIS-2637 Adding additional logging and fixing checkstyle 2020-02-28 15:19:11 -05:00
Clebert Suconic 0cac669840 ARTEMIS-2637 Making UDP client discovery resilient
In case there is a hardware, firewal or any other thing making the UDP connection to go deaf
we will now reopen the connection in an attempt to go over possible issues.

This is also improving locking around DiscoveryGroup initial connection.
2020-02-28 11:54:27 -05:00
Clebert Suconic ddd8ed4402 ARTEMIS-1975 Real Large Message support into AMQP
This is a Large commit where I am refactoring largeMessage Body out of CoreMessage
which is now reused with AMQP.

I had also to fix Reference Counting to fix how Large Messages are Acked

And I also had to make sure Large Messages are transversing correctly when in cluster.
2020-02-25 15:25:01 +01:00
Justin Bertram d0758f34f6 ARTEMIS-2624 auto-create expiry resources 2020-02-20 17:44:56 -05:00
Justin Bertram b76f3b3a0d ARTEMIS-2587 auto-create dead-letter resources
This is a reimplementation of the IndividualDeadLetterQueueStrategy
from 5.x in a way that makes sense with the Artemis addressing model.
2020-02-20 17:44:56 -05:00
Christopher L. Shannon (cshannon) 3966e47338 ARTEMIS-2613: Add support for DivertBindings for federated addresses
This will allow federated addresses to create remote consumers based on
the existing of divert bindings and matching queue bindings
2020-02-17 12:15:18 -05:00
Justin Bertram 72429e1e49 ARTEMIS-2325 ack handler being invoked twice 2020-02-14 13:12:49 -05:00
Justin Bertram daae7e750a ARTEMIS-2619 allow disabling STOMP 'server' header 2020-02-12 19:38:38 -06:00
Francesco Nigro 5897909dc9 ARTEMIS-2617 use core pools to reduce GC on journal loading 2020-02-12 13:29:51 -05:00
Francesco Nigro 3282f105bb ARTEMIS-2604 Optimize journal loading
- Avoid some Properties Decoding, checking if we need certain properties like scheduled delivery
- Avoid creating some unnecessary SimpleString instances
- Removed some intermediate ActiveMQBuffer allocation
- Removed some intermediate UnreleasableByteBuf allocation
2020-02-05 11:13:53 -05:00
Sebastian Thomschke ba4e52ca40
NO-JIRA Fix compiler warning in FederationStreamConnectMessage v2
Second attempt to fix the following compiler warning that is reported in Travis builds, this time using the correct cast type `Class<?>[]` which prevents temporary object allocation because of var-args handling:

```java
/home/travis/build/apache/activemq-artemis/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/FederationStreamConnectMessage.java:151: warning: non-varargs call of varargs method with inexact argument type for last parameter;

         return (FederationPolicy) Class.forName(clazz).getConstructor(null).newInstance();

  cast to Class<?> for a varargs call
  cast to Class<?>[] for a non-varargs call and to suppress this warning
```
2020-02-03 19:22:04 +01:00
Francesco Nigro 09fe47884b Revert "NO-JIRA Fix compiler warning in FederationStreamConnectMessage"
This reverts commit 9fe17d40
2020-02-03 11:07:46 -05:00