Commit Graph

234 Commits

Author SHA1 Message Date
Timothy Bish 28e7cb0b21 https://issues.apache.org/jira/browse/AMQ-6309
Fix some minor issues shown by static code analysis
2016-06-03 18:05:40 -04:00
Timothy Bish db71b43b19 https://issues.apache.org/jira/browse/AMQ-6305
Lower prefetch on settlement of allow for dispatch of the full amount of
granted credit.  Adds additional tests.
2016-06-03 17:05:00 -04:00
Timothy Bish 76b70545f2 https://issues.apache.org/jira/browse/AMQ-6304
Ensure that the broker send a container ID using its assigned Broker
name value.
2016-06-01 18:38:41 -04:00
Timothy Bish 8448cf1cb8 https://issues.apache.org/jira/browse/AMQ-6305
Refactor credit handling and drain state tracking to ensure we stay in
sync with the remote state and always answer drain requests.  Start
adding some more tests around drain to the interop suite.
2016-06-01 18:30:31 -04:00
Timothy Bish 6ae169e275 https://issues.apache.org/jira/browse/AMQ-6305
Add test and supporting enhancements to the JUnit module to allow for
easy repetition of tests that don't always fail reliably
2016-05-26 18:02:59 -04:00
Timothy Bish 08f266d762 Remove unused import. 2016-05-26 16:52:18 -04:00
Timothy Bish 4d6f4d7475 https://issues.apache.org/jira/browse/AMQ-6263
Encode the incoming messageId value into a string using type prefixes
and decode them on the way out to ensure that we preserve the original
AMQP MessageId type and value.
2016-04-26 18:08:11 -04:00
Timothy Bish 98165c4b69 https://issues.apache.org/jira/browse/AMQ-6228
Create a better error message that for the invalid frame size error.
2016-03-31 16:52:34 -04:00
Timothy Bish 19ea5515c8 https://issues.apache.org/jira/browse/AMQ-6107
Remove the deprecated setPrefetch option
2015-12-22 16:16:23 -05:00
Timothy Bish b5dd0a16f4 https://issues.apache.org/jira/browse/AMQ-6055
Account for Authzid in SASL PLAIN mechanism and provide a means to fail
the authorization if the challenge response is invalid.  Update the
client to properly exclude sasl mechanism that don't apply to it's
configured credentials such as using only ANONYMOUS when no user or
password is set.
2015-11-20 14:39:03 -05:00
Timothy Bish 5d353e241b https://issues.apache.org/jira/browse/AMQ-6037
Add support for amqp style variants of the ActiveMQ job scheduler
options set in message annotations.
2015-11-10 18:12:40 -05:00
Timothy Bish 480b3e7c36 https://issues.apache.org/jira/browse/AMQ-6037
Add support for the delivery time header to allow for scheduled messages
at a desired time.
2015-11-09 12:00:38 -05:00
Robert Gemmell 037f91d61e AMQ-6031: use System.nanoTime() when deriving time to tick the transport with for idle-timeout handling 2015-10-30 16:28:53 +00:00
Timothy Bish 490436c136 https://issues.apache.org/jira/browse/AMQ-6015
Add support for returning some more meaningful error codes.
2015-10-19 15:49:47 -04:00
Timothy Bish e8a0d042d8 NO-JIRA - Fix some warnings from unused imports and use of deprecated
methods.
2015-10-14 12:51:02 -04:00
Timothy Bish 80b526be7d https://issues.apache.org/jira/browse/AMQ-6010
Fix for failed SSL connections not releasing the connection count in the
transport which leads to connections being rejected as having eceeded
the maximum configured connections.
2015-10-14 11:39:24 -04:00
Timothy Bish bbcd938032 https://issues.apache.org/jira/browse/AMQ-6001
Refill credit at a slightly faster rate.
2015-10-06 11:33:35 -04:00
Christopher L. Shannon (cshannon) 04ee70a161 https://issues.apache.org/jira/browse/AMQ-5889
Adding support for auto detection of wire protocols over a transport.
OpenWire, AMQP, STOMP, and MQTT can all be detected and the broker
will properly handle each one over a given Transport.  Currently
auto TCP, NIO, SSL, and NIO+SSL transports can handle auto-detection
of the wire format and client but support could be added in the
future for other transports like websockets.
2015-08-11 19:39:29 +00:00
Robert Gemmell 0cfd225912 AMQ-5890: prevent NPE if Modified disposition is applied without the delivery-failed flag set, add some general tests of Modified handling
https://issues.apache.org/jira/browse/AMQ-5890
2015-07-16 12:46:24 +01:00
Timothy Bish cd32c60f39 https://issues.apache.org/jira/browse/AMQ-5850
Use JMS Transformer by default for inter-protocol interoperability.
2015-06-18 15:00:12 -04:00
Timothy Bish ed266835b5 https://issues.apache.org/jira/browse/AMQ-5847
Add workarounds to allow for TX work to take place in multiple sessions
on the same connection.  Future work needed to properly support TXN
Capabilities defined in the spec and support checking of violations of
expected behavior.
2015-06-16 16:41:18 -04:00
Timothy Bish c2310391b9 https://issues.apache.org/jira/browse/AMQ-5845
provide server information in connection properties.
2015-06-15 18:38:12 -04:00
Timothy Bish 4945c83d70 https://issues.apache.org/jira/browse/AMQ-5839
Use correct name for the no-local filter
2015-06-12 16:11:55 -04:00
Timothy Bish 11da37b991 https://issues.apache.org/jira/browse/AMQ-5828
Fixed bad default for message persistence that breaks AMQP specification
defined behavior when the durable value is not present in the Header.
2015-06-05 11:21:27 -04:00
Timothy Bish f37b005acf https://issues.apache.org/jira/browse/AMQ-5776
Add better support for maxFrameSize configuration that fits with the
defaults configuration for the broker by allowing the maxFrameSize to be
configured via ?wireFormat.maxFrameSize on STOMP, AMQP, and MQTT.
Previously we only supported transport.wireFormat.maxFrameSize.
2015-06-02 15:25:11 -04:00
Robert Gemmell 138e52b08c AMQ-5801: add error condition hint via the info map to signal the container-id was the invalid field 2015-05-27 18:09:45 +01:00
Timothy Bish 5e7b70f11f https://issues.apache.org/jira/browse/AMQ-5413
ensure drain completion clear currently tracked credit value, next flow
should update to the correct value.
2015-05-27 11:30:29 -04:00
Timothy Bish 17bcf43048 https://issues.apache.org/jira/browse/AMQ-5799
Resolve a compilation error.
2015-05-27 06:10:08 -04:00
Timothy Bish ffcd99ac85 https://issues.apache.org/jira/browse/AMQ-5799
Add unit test for case of JMS AMQP client changing properties on a
durable sub when resubscribing, not working with current version. 

fix: Use existing filters map to avoind creating a new instance.
2015-05-26 18:28:28 -04:00
Timothy Bish b5c6264789 https://issues.apache.org/jira/browse/AMQ-5799
Return the noLocal filter and set selector if one exists for the
existing durable subscription when a lookup is requested.
2015-05-26 17:30:54 -04:00
Timothy Bish 3125caee5b https://issues.apache.org/jira/browse/AMQ-5794
implement transport.connectAttemptTimeout option across the transports
fro OpenWire, STOMP, AMQP and MQTT and add tests to cover.
2015-05-26 12:29:23 -04:00
Timothy Bish 13b915ad19 https://issues.apache.org/jira/browse/AMQ-5795
Allow fallback of message transformers when configured one can't handle
the incoming message.
2015-05-22 18:57:42 -04:00
Timothy Bish f05ff94e5c https://issues.apache.org/jira/browse/AMQ-4900
Strip delivery annotations from the incoming messages when using JMS
transformer, the other transformers don't currently have a way to do
this.
2015-05-20 14:54:13 -04:00
Timothy Bish 7c41ebc912 https://issues.apache.org/jira/browse/AMQ-5778
Fixes and some testing around maxFrameSize handling on the AMQP
Transport.
2015-05-18 14:51:56 -04:00
Timothy Bish 4b4cf7c09e https://issues.apache.org/jira/browse/AMQ-5757
Add inactivity monitoring and heartbeats to the AMQP transport.
2015-05-05 18:36:15 -04:00
Robert Gemmell fa81c1ff73 AMQ-5763: ensure we replenish the credit for the transaction coordinator link
https://issues.apache.org/jira/browse/AMQ-5763
2015-05-05 19:35:20 +01:00
Robert Gemmell 3a5f127d52 AMQ-5738: Ensure the sender links for non-durable consumers also get unregistered, remove duplicate closed field, fix method names. 2015-04-22 10:17:38 +01:00
Timothy Bish b313209aa2 https://issues.apache.org/jira/browse/AMQ-5711
Reject sender / receiver creation when the address is a temp destination
prefixed value but the destination doesn't map down to a temp
destination created using a dynamic link which means the orignal
connection ID where the destination was created cannot be determined.
2015-04-21 17:45:45 -04:00
Timothy Bish ff1a1c4985 https://issues.apache.org/jira/browse/AMQ-5737
lookup transformer using case insensitive compare.
2015-04-21 15:58:06 -04:00
Timothy Bish 2013c6a54f Update some logging for better coverage 2015-04-16 18:46:40 -04:00
Timothy Bish a5c2f3f423 https://issues.apache.org/jira/browse/AMQ-5731
Add some additional checks and handlers for frames with an invalid size
prefix and ensure that the connection state is torn down broker side.
2015-04-16 14:53:22 -04:00
Timothy Bish 31834ed1fb https://issues.apache.org/jira/browse/AMQ-5731
Ensure that a ShutdownInfo is propagated to the Broker when the AMQP
transport encounters an unrecoverable error.
2015-04-15 18:30:13 -04:00
Timothy Bish b3bf8e74f2 https://issues.apache.org/jira/browse/AMQ-5723
Ensure that we settle the delivery state of incoming deliveries that are
already remotely settled so that the resources associated are freed.
2015-04-14 11:18:32 -04:00
Timothy Bish f0ebda7ef9 Add a bit of logging for link and session level events. 2015-04-13 09:39:05 -04:00
Timothy Bish 25c99a6c36 https://issues.apache.org/jira/browse/AMQ-5707
Add support for aborting a slow AMQP consumer and some testing.
2015-04-07 10:32:49 -04:00
Timothy Bish 3d6bb7c392 https://issues.apache.org/jira/browse/AMQ-5704
send correct order of preferred SASL mechanisms.
2015-04-01 10:18:01 -04:00
Timothy Bish b9ed01fa56 https://issues.apache.org/jira/browse/AMQ-5698
Ensure that wireFormat transport options get applied
2015-03-31 12:36:00 -04:00
Timothy Bish e333fd957b https://issues.apache.org/jira/browse/AMQ-5591
Clean up SASL authentication code to make it easier to add new
mechanisms.
2015-03-30 16:41:34 -04:00
Timothy Bish af13292916 https://issues.apache.org/jira/browse/AMQ-5684
Whem possible restore the orignal MessageId value from the incoming
message.
2015-03-27 18:59:34 -04:00
Timothy Bish 05ff52dc15 https://issues.apache.org/jira/browse/AMQ-5413
https://issues.apache.org/jira/browse/AMQ-5433
https://issues.apache.org/jira/browse/AMQ-5647
https://issues.apache.org/jira/browse/AMQ-5684

Adds support for AMQP drain and fixes some issues around incorrect
dispatching and credit handling.  Should resolve several issues that
have been seen using test suites from AmqpNetLite and other AMQP
clients.
2015-03-27 15:11:38 -04:00
Timothy Bish 3306467a64 https://issues.apache.org/jira/browse/AMQ-5591
Refactoring of the AMQP protocol stack to allow for more flexibility in
adding support for some additional AMQP semantics and group together
common functionality handling to avoid having to fix simillar issues in
multiple places.
2015-03-24 18:09:28 -04:00
Timothy Bish 8e6a404d5e https://issues.apache.org/jira/browse/AMQ-5666
Create some tests that exercise creating temp destinations using sender
links with dynamic targets
2015-03-18 18:12:02 -04:00
Timothy Bish 4228e3d3e8 https://issues.apache.org/jira/browse/AMQ-5666
Tests around durable subscription lookup and reattach.
2015-03-18 15:00:11 -04:00
Timothy Bish ca456c4601 https://issues.apache.org/jira/browse/AMQ-5559
Fix and tests for filter handling on attach.  We only support JMS
selector and NoLocal type filters for receivers so only report those
back, all others are dropped to indicate we will not honor them.
2015-03-17 18:44:24 -04:00
Timothy Bish 6a6ef45ee0 https://issues.apache.org/jira/browse/AMQ-5661
Always honor the link credit as true prefetch value for the
subscription.  Enables previously failing test to verify.
2015-03-13 18:20:26 -04:00
Timothy Bish 72839b78a7 https://issues.apache.org/jira/browse/AMQ-5602
Functional client with added tests to start to cover various
expectations of an AMQP broker and some tests for expectations of a JMS
mapping compliant broker.
2015-03-13 15:47:30 -04:00
Timothy Bish 185213b44a https://issues.apache.org/jira/browse/AMQ-5655
Provide the open failed property when the broker sends an error
response, otherwise send the normal connection properties on the open.
2015-03-10 14:55:11 -04:00
Timothy Bish 528c25c6d8 https://issues.apache.org/jira/browse/AMQ-5648
Add new destiantion type annotation on outbound messages through the JMS
transformer.
2015-03-06 11:49:55 -05:00
Robert Gemmell 84c7c3cdf8 AMQ-5560: fixes typo in exception and drop extra cast
https://issues.apache.org/jira/browse/AMQ-5560
2015-03-06 10:26:30 +00:00
Timothy Bish aea771faf6 https://issues.apache.org/jira/browse/AMQ-5560
Check both the symbolic and numeric id values when searching filters.
2015-03-05 14:01:06 -05:00
Timothy Bish ace101a03a https://issues.apache.org/jira/browse/AMQ-5560
Use the type descriptor and not the key, also check object type since
Map from Proton is not enforcing.  Remove some dead code and uneeded
mutex locks for id generation.
2015-03-05 12:40:47 -05:00
Timothy Bish fe9e38622d Merge branch 'master' into amqp-sasl-auth 2015-03-04 14:10:50 -05:00
Timothy Bish 67ccfcad88 https://issues.apache.org/jira/browse/AMQ-5470
Allow for early SASL authentication and failure if credentials not
valid.
2015-03-04 14:06:04 -05:00
Robert Gemmell 6b18857b53 AMQ-5637: support mapping between the AMQP Subject field and JMSType header
https://issues.apache.org/jira/browse/AMQ-5637
2015-03-04 18:44:23 +00:00
Timothy Bish ad57cc6fcb https://issues.apache.org/jira/browse/AMQ-5631
Support for temporary topic delete
2015-03-03 15:55:28 -05:00
Timothy Bish 2ec586f267 https://issues.apache.org/jira/browse/AMQ-5593
Add support for JMS mapping compliant temp topic and temp queue creation
as well as responding correctly to authorization errors if the
connection has no rights to create them.  Also cleans up code to use a
consistent createDestination implementation that uses the names only and
not attempt to interpret the client only destination annotations.
2015-03-03 13:02:36 -05:00
Timothy Bish 7af7c0143f https://issues.apache.org/jira/browse/AMQ-5597
Clean up the durable subscription unsubscribe handling to be in line
with the AMQP JMS mapping spec and switch to the QPid 0.32-SNAPSHOT
build for now to allow us to track and other changes we might want to
feed back there before release.
2015-02-27 12:18:49 -05:00
Timothy Bish f988ca6e49 https://issues.apache.org/jira/browse/AMQ-5615
reorganize the connection response code to only pump once all state is
process.
2015-02-25 10:17:40 -05:00
Robert Gemmell 37b1b6a211 AMQ-5592: remove some unused stale functionlity, bring into line with latest missed commits from current almost-0.9 codebase.
https://issues.apache.org/jira/browse/AMQ-5592
2015-02-19 20:00:03 +00:00
Timothy Bish 6e69319606 https://issues.apache.org/jira/browse/AMQ-5592
Initial drop of the JMS transformer code to be reworked.
2015-02-17 15:42:45 -05:00
Timothy Bish 8b36701fc3 https://issues.apache.org/jira/browse/AMQ-5587
Add a connect check in the inactivity monitor to account for opened
connections that might drop but not be spotted, in the case where the
connect frame is lost this can lead to connections that aren't fully
opened and won't be cleaned up until the broker detects the socket has
failed.

By default the connection timer is set to 30 seconds, if no connect
frame is read by then the connection is dropped.  The broker can be
configured via the 'transport.connectAttemptTimeout' URI option, a value
2015-02-13 17:07:33 -05:00
Timothy Bish 2a0be3b0f0 https://issues.apache.org/jira/browse/AMQ-5550
Ensure that the consumer and producer context instances are marked as
closed when creation at the broker end fails.
2015-01-30 10:35:35 -05:00
Robert Gemmell 6466ae2bcf AMQ-5519: use the NOT_FOUND error condition when failing to find a DurableSubscription
https://issues.apache.org/jira/browse/AMQ-5519
2015-01-14 16:47:41 +00:00
Timothy Bish a090472942 Add properties to the connection that indicate what the proper
destination prefix value should be for Topic or Queue destination types.
2014-12-19 12:27:09 -05:00
Timothy Bish 9bd070a8f6 https://issues.apache.org/jira/browse/AMQ-5484
Ensure that the subscriptionByConsumerId map gets cleaned up when a
sender is closed.
2014-12-11 13:03:09 -05:00
Timothy Bish 61a3eab8ab https://issues.apache.org/jira/browse/AMQ-5475
Ensure that client's connecting with non-supported AMQP versions or
client's with invalid AMQP headers are sent an AMQP v1.0 header and are
then disconnected.
2014-12-08 17:23:15 -05:00
Dejan Bosanac 5d77b395f6 https://issues.apache.org/jira/browse/AMQ-5379 - use zero prefetch if consumer credit is unknown when connecting 2014-12-04 12:32:59 +01:00
Timothy Bish 9edf907aed https://issues.apache.org/jira/browse/AMQ-5467
Apply patch to use individual ack for messages in a TX to avoid
unmatched ack when ack range is non-sequential
2014-12-01 14:16:01 -05:00
Timothy Bish 9797d3b957 https://issues.apache.org/jira/browse/AMQ-5464
Apply patch from gemmellr to allow Configuration' TerminusDurability to
imply a durable subscription as well.
2014-12-01 09:56:37 -05:00
Dejan Bosanac 0ca376d540 https://issues.apache.org/jira/browse/AMQ-5379 - amqp prefetch size and redelivery header problem 2014-11-27 14:42:39 +01:00
Timothy Bish c5f183548e https://issues.apache.org/jira/browse/AMQ-5456
Apply patch from gemmellr to ensure that TX messages accepted retain the
TX state until commit.
2014-11-25 09:15:36 -05:00
Dejan Bosanac 5cd56e7fb1 https://issues.apache.org/jira/browse/AMQ-5431 - prevent NPE when a Detach frame is received for a
link that didn't get as far as setting a context during creation before being
 detached/closed
2014-11-25 10:43:27 +01:00
Dejan Bosanac 162f9fc559 https://issues.apache.org/jira/browse/AMQ-5391: offer the ANONYMOUS-RELAY connection capability to
signal support for the anonymous relay
2014-11-24 15:56:05 +01:00
Dejan Bosanac 741b739da8 https://issues.apache.org/jira/browse/AMQ-5391: use null or empty address to signify
anonymous-relay node, in line with expected direction for the Addressing spec
 underway at OASIS AMQP TC
2014-11-24 15:54:52 +01:00
Timothy Bish 0b148ade32 https://issues.apache.org/jira/browse/AMQ-5402
Revert the changes here as the mapping is moving in a different
direction.

4881a848dc
2014-10-29 14:16:34 -04:00
Timothy Bish adafdfe97d Make BrokerService visible to the protocol converter so that in the
future we can use it to better manage durable subscriptions and link
reattach behavior.
2014-10-28 14:58:17 -04:00
Timothy Bish e3377edb06 https://issues.apache.org/jira/browse/AMQ-5401
Free the broker side sender right away so that client's that don't close
their end properly after error don't prevent future remove attempts.
2014-10-22 10:48:11 -04:00
Dejan Bosanac ab3de0c4c2 https://issues.apache.org/jira/browse/AMQ-5379 - amqp prefetch; split producer and consumer prefetch settings; allow consumer prefetch to be adjusted using link credit 2014-10-21 14:52:39 +02:00
Timothy Bish 4881a848dc https://issues.apache.org/jira/browse/AMQ-5402
Add support for encoding the destination type in transformed messages as
a byte value to supoort future JMS->AMQP spec mappings.
2014-10-20 09:49:36 -04:00
Timothy Bish 5a6129b512 https://issues.apache.org/jira/browse/AMQ-5403
Remove now unnecessary workaround for older proton-j TTL issue.
2014-10-20 09:42:56 -04:00
Timothy Bish 004568234b https://issues.apache.org/jira/browse/AMQ-5401
Ensure that the sender is closed on error and add some tests for
unsubscribe failures.
2014-10-17 14:58:56 -04:00
Timothy Bish e90f1decb2 https://issues.apache.org/jira/browse/AMQ-5391
Fix temp queue creation.
2014-10-15 10:35:36 -04:00
Timothy Bish 78cb1120b7 https://issues.apache.org/jira/browse/AMQ-5391
Allow for an anonymous relay using a configurable node name when
creating the new link, default is $relay.  Message's that arrive without
a to field set are rejected as this is required for a relay.
2014-10-14 17:32:23 -04:00
Timothy Bish 78446ad175 https://issues.apache.org/jira/browse/AMQ-5395
Check for the presence of a prefix before asking for a substring
2014-10-14 11:46:49 -04:00
Dejan Bosanac 838bbebeeb https://issues.apache.org/jira/browse/AMQ-5379 - amqp prefetch size 2014-10-02 11:32:31 +02:00
Timothy Bish 2d9475c4f0 https://issues.apache.org/jira/browse/AMQ-5346
Apply patch for link detach event from @gemmellr
2014-09-30 12:18:00 -04:00
Timothy Bish c70d75213e https://issues.apache.org/jira/browse/AMQ-5352
Applied and tested, all tests still passing after this change.
2014-09-09 14:19:39 -04:00
Timothy Bish b2e6a41661 https://issues.apache.org/jira/browse/AMQ-5350
Don't link the AMQP max frame size to the TransportConnector
maxFrameSize value.
2014-09-09 10:59:11 -04:00
Timothy Bish 3afde7bac7 https://issues.apache.org/jira/browse/AMQ-5346
need to call free on the amqp resources now to ensure their state data
is all cleaned up.
2014-09-08 17:48:22 -04:00
Timothy Bish 644b96a68a https://issues.apache.org/jira/browse/AMQ-5346
Prepare for the move to Proton 0.8.  Use the 1.0-SNAPSHOT builds to
start testing against the changes coming in Proton 0.8
2014-09-08 13:29:10 -04:00