Commit Graph

437 Commits

Author SHA1 Message Date
Domenico Francesco Bruscino 3555dd7d25 ARTEMIS-3365 Add broker balancers 2021-08-06 08:33:21 -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
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
Robbie Gemmell d9a44002c5 ARTEMIS-3304: replace use of deprecated constructors marked as for-removal since Java 16
updates all the uses in tests, missed in original commit
2021-07-27 14:55:40 +01:00
Clebert Suconic 18e9dee490 NO-JIRA Small tweaks on AMQPMessage.
- adding annotations into toString()
- comment typo
2021-07-13 08:28:06 -04:00
Clebert Suconic ee3814dbfd ARTEMIS-3383 AMQPMessage.isDurable wrongly returns false during persistent lazy reload state 2021-07-12 23:00:16 -04:00
Justin Bertram ec508d8306 ARTEMIS-3381 AMQP bypasses session when deleting queues
The AMQP implementation bypasses the ServerSession when deleting queues
which also bypasses security authorization.
2021-07-12 11:25:11 -04:00
Justin Bertram bf875c3a37 ARTEMIS-3374 fix tests and shared subscriber case
A couple of tests were explicitly written to delete the
configuration-managed queue. Since this is no longer allowed these
tests had to change.
2021-07-12 11:25:11 -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 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
Clebert Suconic d408f284b1 ARTEMIS-3238 AMQP Mirror not routing correctly with SNF 2021-04-12 19:30:35 -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
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
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
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 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
Clebert Suconic 12c8096a23 ARTEMIS-3093 Ordering on multiple consumers and core with rollback 2021-02-22 15:10:04 -05:00
Domenico Francesco Bruscino ab7058ac75 ARTEMIS-3118 Fix the expiration on converting from AMQP to core
Initialize the JMS expiration with the value calculated during the scan
of the AMQP message to avoid a different value for each conversion based
on System.currentTimeMillis() and ttl.
2021-02-17 17:34:20 +01:00
Clebert Suconic 7d10e915b6 ARTEMIS-3116 Fixing Core->AMQP Conversion of Scheduled Delivery Time 2021-02-12 13:00:06 -05:00
Clebert Suconic e7e3c71511 ARTEMIS-3113 - Artemis AMQP shouldn't depend on JMS.
* removing the  JMS dependency on AMQP module
* fixing destinations usage.
* refactoring to remove some JMS usage and make exceptions a bit better

Jira: https://issues.apache.org/jira/browse/ARTEMIS-3113
2021-02-11 10:45:01 -05:00
Clebert Suconic 7f64822591 Revert "[ARTEMIS-3113]: Artemis AMQP shouldn't depend on JMS."
This reverts commit 5079ad1019.
2021-02-10 18:34:25 -05:00
Clebert Suconic 5079ad1019 [ARTEMIS-3113]: Artemis AMQP shouldn't depend on JMS.
* removing the  JMS dependency on AMQP module
* fixing destinations usage.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-3113
2021-02-10 12:47:38 -05:00
Christoph Läubrich 0bedb3048a ARTEMIS-33 Generic integration with SASL Frameworks
This adds the opportunity to register new SASL schemes via the default
java service-loader mechanism.
Implementors have to provide an implementation of the ServerSASLFactory
that is responsible for providing instances of the actual scheme.
2021-02-07 11:18:13 -05:00
岳豹 9c5ec1b07c ARTEMIS-3105 large message file not closed on backup side 2021-02-07 10:41:41 +08:00
Domenico Francesco Bruscino 267c6e5b56 ARTEMIS-3091 Fix AMQP message headers export from the journal 2021-02-01 11:54:37 -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
Domenico Francesco Bruscino 9d070812dd ARTEMIS-3079 Fix AMQP binary properties serialization to JSON 2021-01-25 13:22:53 -06:00
Clebert Suconic 78c0792989 ARTEMIS-3065 AMQP Anonymous producer would eventually block 2021-01-13 15:46:54 -05:00
franz1981 2e0f051d2d ARTEMIS-3063 AMQPMessage get property can use a String switch 2021-01-12 12:07:23 +01:00
franz1981 dc68d2e08f ARTEMIS-3061 AMQPMessage::getDuplicateProperty can save key comparisons and class checks 2021-01-11 21:42:54 -05:00
franz1981 be3812b2e2 ARTEMIS-3059 AMQP message reencoding should save creating Netty heap arenas 2021-01-11 11:37:30 -05:00
Domenico Francesco Bruscino 92d6ae87ed ARTEMIS-3027 Fixing AMQP persister encoding 2020-12-22 10:37:34 -05:00
Clebert Suconic 57c9dc623c ARTEMIS-3035 Log.info on connection success for AMQP Broker Connection 2020-12-16 13:41:32 -05:00
Clebert Suconic 3b0fa74970 ARTEMIS-3027 Fixing tests after some large messages changes 2020-12-14 15:19:12 -05:00
Clebert Suconic 63a3bcbe32 ARTEMIS-3027 Fixing Redistribution of Large Messages after expiration fix
This is fixing AmqpLargeMessageRedistributionTes and AMQPLargeMessageOverCoreBridgeTest after last commit on this issue.
2020-12-14 11:18:38 -05:00
Clebert Suconic dfd41d958e ARTEMIS-3027 Store calculated expiration as part of the journal record on AMQP 2020-12-10 18:33:15 -05:00
Clebert Suconic 94f1857914 ARTEMIS-3026 Allow "re-encode" of amqp large messages
notice the quotes on "re-encode", as this is just replacing the set of application properties, properties and headers by a new set
if a flag reEncoded is set to true on AMQPLargeMessage
2020-12-10 00:37:11 -05:00
Clebert Suconic 825341734a ARTEMIS-3024 Expiry or DLQ Retry not working with AMQP 2020-12-08 14:13:53 -05:00
Clebert Suconic 6a6a3b3863 ARTEMIS-3023 Avoid opening AMQP Large Message for final parsing 2020-12-07 21:24:45 -05:00
Clebert Suconic e6a6e81b02 ARTEMIS-3019 expiry changes in AMQP Large Message 2020-12-07 10:44:51 -05:00
Clebert Suconic ccefbfcfa9 ARTEMIS-3019 Before applying the fix into two methods, I needed to move the method into the right place
There is no real change in this commit other than moving the methods to the right place
2020-12-07 10:30:03 -05:00
Clebert Suconic ead05b7a89 ARTEMIS-2983 Fixing PrintData with AMQP 2020-11-11 12:47:02 -05:00
Domenico Francesco Bruscino 14ec3cb7b0 ARTEMIS-2976 Remove password before creating server locator 2020-11-05 11:39:35 -05:00
Robbie Gemmell 5ff075b7ff ARTEMIS-2971: add ANONYMOUS and EXTERNAL SASL mechanism support for outgoing AMQP server connections 2020-11-05 11:32:35 -05:00
Clebert Suconic 648340a864 ARTEMIS-2969 / ARTEMIS-2937 Making sure consumers are cleaned after failures and reconnects 2020-11-02 17:24:45 -05:00
Clebert Suconic 7a435a944c ARTEMIS-2969 / ARTEMIS-2937 should set connecting = false when maxRetry is reached 2020-11-02 13:13:15 -05:00
Clebert Suconic fa4064cfd7 ARTEMIS-2969 / ARTEMIS-2937 RedoConnection should call protonRemotingConnection.destroy
Instead of calling destroy, redo was closing the Netty connection directly leaving the job of destroy delayed until TTL
2020-11-02 11:40:10 -05:00
Andy Taylor dafef2b267 ARTEMIS-2973 - JMS AMQP Shared global subscriber queue not deleted on unsubscribe
https://issues.apache.org/jira/browse/ARTEMIS-2973
2020-11-02 10:00:13 -05:00
Clebert Suconic c0b12b14c8 ARTEMIS-2969 / ARTEMIS-2937 Controlling connecting state on AMQP Broker Connection
- Fixed an issue where I needed to set connection to null after closing it
- Added more tests on QpidDispatchPeerTest (tests i would have done manually, and reproduced a few issues along the way)
2020-11-02 09:54:21 -05:00