Commit Graph

302 Commits

Author SHA1 Message Date
Michael Andre Pearce 26752a7aaf ARTEMIS-1348 Support LVQ for AMQP
Add support for LVQ, using the same property key as core "_AMQ_LVQ_NAME"
Add test case for AMQP LVQ.
2017-08-12 23:43:37 +01:00
gtully db62ed92f7 [ARTEMIS-1310] require mechanism to be explicitly enabled 2017-08-08 13:28:50 -04:00
gtully ca7197b5c3 [ARTEMIS-1310] add amqp sasl gssapi mechanism support
delegate to the jdk saslServer. Allow acceptor configuration of supported mechanismis; saslMechanisms=<a,b>
and allow login config scope for krb5 to be configured via saslLoginConfigScope=x
2017-08-08 13:28:50 -04:00
Clebert Suconic fdad83be22 [maven-release-plugin] prepare for next development iteration 2017-07-24 21:21:18 -04:00
Clebert Suconic 71b1cc2a20 [maven-release-plugin] prepare release 2.2.0 2017-07-24 21:21:06 -04:00
Clebert Suconic 8f5f2bbe52 ARTEMIS-1300 Deadlock when Core direct deliverying and AMQP receive 2017-07-20 08:59:32 -04:00
Timothy Bish 22b8076b71 ARTEMIS-1283 Fix delay on drained response
On completion of drain the response is not flushed and the
client can wait a few seconds before another broker task
flushes the work.  Flush the connection after updating the
linked as being drained.  Also perform the work with the
connection lock held to prevent conccurent update of proton
state.
2017-07-12 19:20:01 -04:00
gtully 004753cc53 ARTEMIS-1264 - fix amqp regression by supplying the remoting connection to the security manager 2017-07-07 11:24:05 +01:00
Michael Andre Pearce 44b7e455cb ARTEMIS-1205: AMQP Shared Durable Subscriber incorrect behaviour
Use AcitveMQDestination for subscription naming, fixing and aligning queue naming in the process.

The change is behind a configuration toggle so to avoid causing any breaking changes for uses not expecting.
2017-06-19 12:44:13 +01:00
Michael Andre Pearce d9d9699732 ARTEMIS-1205: AMQP Shared Durable Subscriber incorrect behaviour.
Add test case, to prove the issue, and then obviously ensure it works, post fix.
Apply changes in logic of createQueueName to handle global better and fix the behaviour.
Create queues so names are same as behaviour with core client.
2017-06-05 22:40:54 +01:00
Clebert Suconic 830c3bf179 ARTEMIS-1169 Fixing protocol conversion
this will fix a few multiple protocol tests on ConsumerTests.
And a few other AMQP tests dealing with conversions.

You would get a classCastException without this commit.
2017-05-18 13:25:15 -04:00
Ulf Lilleengen 4f1308d2f0 ARTEMIS-1173: Don't set routing type if null 2017-05-18 09:31:07 -04:00
Andy Taylor 22f4736c88 ARTEMIS-1169 - Implement Interceptors for the AMQP protocol
Add Outgoing call

https://issues.apache.org/jira/browse/ARTEMIS-1169
2017-05-18 08:40:43 +01:00
Andy Taylor d17ef14c90 ARTEMIS-1169 - Implement Interceptors for the AMQP protocol
https://issues.apache.org/jira/browse/ARTEMIS-1169
2017-05-17 14:07:23 -05:00
Clebert Suconic dc26ac96b4 ARTEMIS-1156: moving our collections on its own package 2017-05-12 10:06:05 -04:00
Clebert Suconic ce61d20f5a [maven-release-plugin] prepare for next development iteration 2017-05-08 15:20:12 -04:00
Clebert Suconic 64e8f015ee [maven-release-plugin] prepare release 2.1.0 2017-05-08 15:20:01 -04:00
Clebert Suconic 36c9659279 [maven-release-plugin] prepare for next development iteration 2017-05-05 22:11:09 -04:00
Clebert Suconic 7b5082639f [maven-release-plugin] prepare release 2.1.0 2017-05-05 22:10:58 -04:00
Timothy Bish 970782d36a ARTEMIS-1134 Close connection if error caught during event processing
If an error escapes into the event processing layer we close the
connection with an error condition to avoid the client becoming stuck on
waiting for a response from the broker and the broker side being in an
unknown state.
2017-05-02 13:01:29 -04:00
Justin Bertram 849c4b7def ARTEMIS-547 authorize AMQP sender on attach 2017-04-28 14:30:03 -05:00
Timothy Bish 19a640db3a ARTEMIS-1132 return security errors instead of generic failed
When creating some AMQP resources (senders, receivers, etc) the broker
can return an error of 'failed' instead of the security error that is
expected in these cases.  In the case of a receiver being created and
a security error happening the broker fails to send back a response
causing the client to hang waiting for an attach response.
2017-04-28 13:08:10 -05:00
Howard Gao f344c1ebaf ARTEMIS-1093 Full qualified queue name support
Broker should support full qualified queue names (FQQN)
as well as bare queue names. This means when clients access
to a queue they have two equivalent ways to do so. One way
is by queue names and the other is by FQQN (i.e. address::qname)
names. Currently only receiving is supported.
2017-04-23 16:01:20 -04:00
Timothy Bish 9eed28e0aa ARTEMIS-1127 Match remote Sender and Receiver settle modes
On link attach we currently default out SenderSettleMode to MIXED which
while legal doesn't truly reflect what the client asked for. We instead
now update the link to reflect the mode requested by the client

Also add some tests to ensure that we always return the
ReceiverSettleMode as FIRST since we don't support SECOND.
2017-04-21 15:00:09 -04:00
Clebert Suconic 1a39772489 ARTEMIS-1121 Improving expiry scanner
https://issues.apache.org/jira/browse/ARTEMIS-1121
2017-04-18 11:49:25 -04:00
Clebert Suconic 31d78eddf1 ARTEMIS-1118 IO callbacks on AMQP 2017-04-18 11:49:25 -04:00
Clebert Suconic 807e4e5d9c ARTEMIS-1119 flow controlling connection
https://issues.apache.org/jira/browse/ARTEMIS-1119
2017-04-18 11:34:09 -04:00
Clebert Suconic bfc07a7e01 ARTEMIS-1111 Fixing deadlock
There is a deadlock on flow controlling
the lock is using the wrong method and that is causing some issues under perf load.
2017-04-17 21:31:17 -04:00
Clebert Suconic f609884186 Revert "ARTEMIS-1093 Full qualified queue name support"
Testsuite won't complete with this commit.
Reerting it for further evaluation.

This reverts commit a9a3c47808.
2017-04-12 16:53:40 -04:00
Martyn Taylor 930df5b663 ARTEMIS-1111 Avoid deadlock on AMQP delivery during close 2017-04-12 12:35:17 -04:00
Howard Gao a9a3c47808 ARTEMIS-1093 Full qualified queue name support
Broker should support full qualified queue names (FQQN)
as well as bare queue names. This means when clients access
to a queue they have two equivalent ways to do so. One way
is by queue names and the other is by FQQN (i.e. address::qname)
names. Currently only receiving is supported.
2017-04-12 09:59:28 +01:00
Clebert Suconic cc22a0286b ARTEMIS-1101 Fixing JMSFilter on AMQP 2017-04-11 16:07:33 -04:00
Timothy Bish d2731fa0e1 ARTEMIS-1110 Cleanup Transaction Coordinator buffer handling
Resuse a single small buffer for all txn commands (declare / dischare) to
avoid creating lots of small arrays and ByteBuffer wrappers for txn operations.
2017-04-11 11:33:58 -04:00
Timothy Bish 3b45261f19 ARTEMIS-1101 Read the correct values for timestamp and user-id
Fix the getUserID and getTimestamp methods in AMQPMessage to read and
return the correct values.  Adds some tests to cover these cases and
cleans up some others.
2017-04-07 16:12:58 -04:00
Clebert Suconic 01362bbb1d ARTEMIS-1100 Store Header on AMQP message 2017-04-07 09:11:11 -05:00
Timothy Bish 45c59f05dc ARTEMIS-1097 Respect the message priority value in the AMQP message
Ensure that the header value for priority is read and returned in a form
that is scaled such that it won't cause an IndexOutOfBoundsException
from the QueueImpl priority array.  Adds some additional testing for
message priority support.
2017-04-06 16:18:53 -04:00
Andy Taylor 5529bf150a ARTEMIS-1090 - Message not expired if absolute expiry time is 0 and ttl is set
https://issues.apache.org/jira/browse/ARTEMIS-1090
2017-04-03 14:28:02 +01:00
Timothy Bish 62cb9b22de ARTEMIS-1086 Proper conversion of SimpleString to String
When adding boolean value keyed by SimpleString the key needs to be
converted to a String type to be valid AMQP.
2017-03-30 21:19:43 -04:00
Clebert Suconic 86779195fa NO-JIRA: Removing duplciate code 2017-03-30 11:15:09 -04:00
Clebert Suconic 9bef242b74 ARTEMIS-1056 Adjusting Acceptor values
I have been doing tests with quiver at large message sizes
the tests would work really slowly without these fixes
2017-03-30 09:54:26 +01:00
Clebert Suconic 1f4473e8d7 ARTEMIS-1081 Implementing AMQP UndeliverableHere 2017-03-28 20:32:28 -05:00
Clebert Suconic 746220e11e ARTEMIS-1080 Implementing AMQP::reject 2017-03-28 20:32:28 -05:00
Clebert Suconic 13a272b37b ARTEMIS-1056 fixing tests
When I added flow control, some tests that were using reflection started to fail.
Also as a precaution I'm using <= on the flow control low credit check
2017-03-28 20:32:28 -05:00
Clebert Suconic 7f91d29564 ARTEMIS-1056 Improving Proton usage 2017-03-28 14:48:25 -04:00
Clebert Suconic dce59d5436 ARTEMIS-1056 Better event processing 2017-03-27 22:01:36 -05:00
Clebert Suconic dc25ff0e42 ARTEMIS-1073 Adding configuration for Producer's credits on AMQP 2017-03-27 16:27:24 -04:00
Justin Bertram c792b8e274 ARTEMIS-1068 JMS + AMQP routing 2017-03-27 15:14:43 -04:00
Clebert Suconic af0be518e1 ARTEMIS-1069 Artemis unsafe usage on Eventls polling 2017-03-27 11:41:20 -04:00
Timothy Bish 40b9ac0a20 ARTEMIS-1069 Fix some thread unsafe usages of proton
Unsafe modification of proton resources outside the connection lock
could lead to corruption in the transport work list and other internal
state data.
2017-03-24 17:46:00 -04:00
Justin Bertram 427039ef38 ARTEMIS-1068 routingType + AMQP fixes 2017-03-24 15:15:10 -05:00
Clebert Suconic 0bfb39bfb5 ARTEMIS-1056 Performance improvements on AMQP 2017-03-22 09:55:02 -05:00
Francesco Nigro ed3de61587 ARTEMIS-1055 Broker generates warning when a client tries to connect it 2017-03-22 11:39:11 +00:00
Clebert Suconic 64b4553284 ARTEMIS-1052 Fixing MessageJournalTest::testStoreAMQP 2017-03-20 21:50:57 -04:00
Clebert Suconic 65ac7f700b ARTEMIS-1052 Proper Expiry over AMQP 2017-03-20 18:33:31 -04:00
Timothy Bish 29796151c3 ARTEMIS-59 Accept transacted message using AMQP TransactionState
When a message is sent to the broker with a TransactionState indicating
that the message should be included in a transaction the disposition from
the broker indicating acceptance of the message should be done using a
TransactionState value that contained the TX ID and the Accepted
disposition.
2017-03-20 12:42:56 -04:00
Martyn Taylor 7cf06cd285 ARTEMIS-1050 Register AMQP failure/close listeners 2017-03-19 14:15:30 +00:00
Clebert Suconic 4b50d6c431 ARTEMIS-1048 Fixing Unsigned types and Selectors 2017-03-17 18:05:21 -04:00
Clebert Suconic 1ef4dcf7d9 ARTEMIS-1046 Fixing TX eventually stalling with AMQP
I have also reviewed the model in which we used transactions
2017-03-17 16:50:56 -04:00
Clebert Suconic 291a4719b6 ARTEMIS-1045 Performance improvements on AMQP 2017-03-17 16:11:14 -04:00
Andy Taylor c6f73b0c0a ARTEMIS-1042 - support amqp failover list
https://issues.apache.org/jira/browse/ARTEMIS-1042
2017-03-17 15:08:58 -04:00
Clebert Suconic a4beb18a6e ARTEMIS-1044 Avoiding StackOverflow on AMQP under load 2017-03-16 18:11:57 -04:00
Clebert Suconic 31639782f0 ARTEMIS-1041 Adjusting when hearders are being parsed 2017-03-15 19:27:59 -04:00
Timothy Bish 938c4ec558 ARTEMIS-1041 Apply absolute expiration time to message
Use the Absolute Expiration Time from the message properties and
override any value set in TTL if anything set there.
2017-03-15 19:25:08 -04:00
Clebert Suconic ae34b01065 ARTEMIS-1038 Make usage of Delivery.available and upgrade proton 2017-03-15 14:37:41 -04:00
Timothy Bish 7282b6890a ARTEMIS-1039 Transaction Coordinator credit refill
The coordinator needs to refill credit on the receiver once it has been
exhausted, otherwise the remote cannot send additional declare or
discharge commands to the broker.
2017-03-14 17:13:05 -04:00
Andy Taylor b5b6e4bea6 ARTEMIS-1034 - non-durable subscription queue not ended on link close
https://issues.apache.org/jira/browse/ARTEMIS-1034
2017-03-13 10:33:13 -05:00
Martyn Taylor c40823e5ec [maven-release-plugin] prepare for next development iteration 2017-03-10 14:54:33 +00:00
Martyn Taylor 70e319d6e3 [maven-release-plugin] prepare release 2.0.0 2017-03-10 14:52:26 +00:00
Martyn Taylor f1a5f1caf9 Revert "[maven-release-plugin] prepare release 2.0.0"
This reverts commit 057047499b.
2017-03-10 14:45:29 +00:00
Martyn Taylor 1964abe567 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 9a52f51c9f.
2017-03-10 14:44:58 +00:00
Martyn Taylor 9a52f51c9f [maven-release-plugin] prepare for next development iteration 2017-03-10 11:36:36 +00:00
Martyn Taylor 057047499b [maven-release-plugin] prepare release 2.0.0 2017-03-10 11:25:47 +00:00
Clebert Suconic a41a1930ef ARTEMIS-1009 AMQP shouldn't use application properties
As part of my refactoring on AMQP, the broker shouldn't rely on Application properties
for any broker semantic changes on delivery.

I am removing any access to those now, so we can properly deal with this post 2.0.0.
2017-03-09 12:27:39 -05:00
Clebert Suconic c369084381 ARTEMIS-1009 Tight up on AMQP
avoiding application properties even further
fixing nolocal
2017-03-09 08:12:42 -06:00
Clebert Suconic ce77d12b87 ARTEMIS-1009 fixing ProtonTest::testFilterJMSMessageID 2017-03-07 09:29:04 -05:00
Martyn Taylor 456e2a65e2 ARTEMIS-1012 Fix AMQP Transaction Retirement 2017-03-06 11:55:29 -05:00
Martyn Taylor 543dd4c9e3 ARTEMIS-1013 Queue deliver after AMQP msg release 2017-03-06 11:55:29 -05:00
Clebert Suconic fe0ca4d84f ARTEMIS-1009 Pure Message Encoding.
with this we could send and receive message in their raw format,
without requiring conversions to Core.

- MessageImpl and ServerMessage are removed as part of this
- AMQPMessage and CoreMessage will have the specialized message format for each protocol
- The protocol manager is now responsible to send the message
- The message will provide an encoder for journal and paging
2017-03-05 23:08:53 -05:00
Justin Bertram 01465035c0 ARTEMIS-970 handle indeterminate JMS destination 2017-02-23 12:55:27 -05:00
Jiri Danek a7a0535afa NO-JIRA Fixing typos in log messages, test names and comments
Related to ARTEMIS-387 (fowardingAddress)
2017-02-20 20:54:45 -05:00
Clebert Suconic 29af4a982a NO-JIRA: removing dead code on AMQPSessionContext 2017-02-20 19:34:38 -05:00
Clebert Suconic b788acd834 ARTEMIS-982 Fixing possible deadlock on AMQP.close & delivery
https://issues.apache.org/jira/browse/ARTEMIS-982

This is fixing a possible deadlock on delivering messages while AMQP close is called for any reason.
2017-02-20 12:35:49 -06:00
Ulf Lilleengen 5f6a390b60 ARTEMIS-908: Ensure that connection lock is held when flushing 2017-02-15 14:09:27 +01:00
Justin Bertram ff3e75d148 NO-JIRA move RoutingType to different package 2017-02-13 09:50:41 -06:00
Andy Taylor 318778954d ENTMQBR-522 - dont ack on separately settled deliveries
https://issues.jboss.org/browse/ENTMQBR-522
2017-02-10 09:50:51 -05:00
Timothy Bish b9bf5d54f2 ARTEMIS-794 Add tests for handling of various outcomes for deliveries
Adds tests for handling of Rejected, Released and Modified outcomes for
a delivery sent to a receiver.  Tests show that for the Modified outcome
the broker is redelivering the message to the same receiver when the
undeliverable here value is set which violates the AMQP 1.0 specified
handling of that field.  Also for Rejected outcome the broker should
be sending the rejected message to the DLQ as Rejected is supposed to
be a terminal outcome.

Small fix included to not adjust the delivery count if the Modified
outcome does not indicate that the delivery failed.
2017-02-07 13:45:11 +00:00
Will Reichert 3347a4fd27 ARTEMIS-928 Changing Netty and InVM to copy buffers, and retain them on the Netty Polls. 2017-01-18 16:59:32 -05:00
Andy Taylor f52cb5c610 ARTEMIS-918 - use requested routing type when client defined with amqp and address doesnt exist
https://issues.apache.org/jira/browse/ARTEMIS-918
2017-01-12 12:07:16 +00:00
Howard Gao 4e309d842e ARTEMIS-562 Use 'to' field if sender target is null 2017-01-11 14:20:39 -05:00
Andy Taylor 355d33ea4f fix log trace message throwing exception 2017-01-09 14:58:25 -05:00
Ulf Lilleengen f2f3552067 ARTEMIS-908: Hold connection lock when issuing credits 2017-01-04 10:59:33 -06:00
Timothy Bish 51c95babfe ARTEMIS-901 Account for the presence of authzid in sasl plan auth
If the SASL plain mechanism arrives with the authzid value set the
mechanism needs to account for its presence and use the correct fields
of the exchange to get the username and password values.  Adds some
tests to validate this fix.
2016-12-21 18:18:54 -05:00
Andy Taylor 63f723fe8d ARTEMIS-888 - default to false if header durable not set
https://issues.apache.org/jira/browse/ARTEMIS-888
2016-12-20 09:32:33 +00:00
Andy Taylor 198143edd0 ARTEMIS-892 - add lock to tick method
https://issues.apache.org/jira/browse/ARTEMIS-892
2016-12-16 12:11:54 +00:00
Clebert Suconic 0c18c343e9 NO-JIRA: fixing checkstyle 2016-12-15 17:00:10 -05:00
Martyn Taylor 55fbcfebf8 Do not autoDelete address if it was not autoCreated 2016-12-15 17:13:09 +00:00
Andy Taylor a9b32bdf0b adding missing check for closed on proton receiver 2016-12-15 13:40:47 +00:00
Andy Taylor 3b75c95413 ARTEMIS-888 - AMQP headers arent always set
https://issues.apache.org/jira/browse/ARTEMIS-888
2016-12-15 07:07:04 +00:00
jbertram 10a32481fd ARTEMIS-789 fix ArtemisTest 2016-12-14 19:46:53 -06:00
Andy Taylor 881615e646 ARTEMIS-891 - upgrade proton to 0.16
https://issues.apache.org/jira/browse/ARTEMIS-891
2016-12-14 18:25:26 +00:00