Commit Graph

788 Commits

Author SHA1 Message Date
Clebert Suconic 13a8a2bd40 [maven-release-plugin] prepare release 1.5.0 2016-11-03 15:34:54 -04:00
Clebert Suconic ab7adbbd7a ARTEMIS-814 Moving ProtonClientSenderContext towards the client package
I have done it this way to be consistent to what's being documented on the package-info.java for the client package
2016-11-02 14:24:51 -04:00
Ulf Lilleengen 52a462d155 ARTEMIS-814: Refactor client connection and allow adding custom event handlers 2016-11-02 14:24:44 -04:00
Clebert Suconic 5e5ac0f057 ARTEMIS-832 Openwire was ignoring data syncs.
I'm also adding the possibility of sync on libaio, and not only relay on write-cache
2016-11-02 13:17:12 -05:00
Timothy Bish b07d6a9e75 ARTEMIS-268 Adds tests that shows issue with presettled receivers
Tests added that show that a receiver attached to a queue as presettled
are not removing the messages that are dispatched to them.
2016-11-02 14:14:35 -04:00
Clebert Suconic e0021252ee ARTEMIS-829 Removing messages re-encoding
https://issues.apache.org/jira/browse/ARTEMIS-829
2016-10-28 16:54:58 -04:00
Andy Taylor 1a4a148ba9 ARTEMIS-817 and ARTEMIS-818 openwire fixes
https://issues.apache.org/jira/browse/ARTEMIS-817
https://issues.apache.org/jira/browse/ARTEMIS-818

issues around Openwire protocol, sending a null stream maessage via openwire causes a null pointer and if a topic is auto created with openwire then it cant be destroyed as it checks for the management queue.
2016-10-25 12:00:37 -04:00
Clebert Suconic 2d1bdcd5bd ARTEMIS-814: Moving classes around and adding docs 2016-10-24 09:42:22 -04:00
Ulf Lilleengen e65fd5d674 ARTEMIS-814: Add support for outgoing AMQP connections 2016-10-24 09:42:22 -04:00
Ulf Lilleengen 6e5b917cc5 ARTEMIS-814: Fix a bug where context could be null in case a connection was closed before the flow arrived 2016-10-24 09:42:22 -04:00
Timothy Bish 226f28abf5 ARTEMIS-799 Fix issues with the AMQP Durable Topic Subscription model
Fixes several issues found in the handling of durable topic
subscriptions (test cases added).
2016-10-14 03:54:35 +02:00
Paul Gallagher fcb70f3f60 ARTEMIS-779 upgrade to netty 4.1.5.Final 2016-10-10 23:24:56 +02:00
Martyn Taylor a09348695c ARTEMIS-778 Fix MQTT tests, refactor session state 2016-10-10 23:24:14 +02:00
Clebert Suconic bed3f47c85 NO-JIRA: removing non used class 2016-10-10 15:31:46 +02:00
Ville Skyttä ddd1559fbe javadoc: Fix doclint empty <p> warnings 2016-10-10 10:02:49 +02:00
Ville Skyttä 9a439b4791 javadoc: Fix doclint reference errors 2016-10-10 10:02:49 +02:00
Ville Skyttä 693e745b9c Remove redundant type arguments
Missed by sevntu-checkstyle, but not the Eclipse compiler.

https://github.com/sevntu-checkstyle/sevntu.checkstyle/issues/458
2016-10-08 10:01:45 +03:00
Timothy Bish 398da40f7d ARTEMIS-776 Attach response should only list supported filters
The broker needs to return only the filters that are supported on a
receiver attach otherwise the remote is not aware that the broker is not
able to honor the requested configuration of the receiver.
2016-10-07 17:35:27 -04:00
Timothy Bish 62627bf2ee ARTEMIS-770 AMQP Message Transformer refactor
Refactor the AMQP Message transformers both for better performance and
also to fix a number of issues with the transformers creating inbound
and outbound messages with incorrectly mapped values or extra data
appended where it should not be.
2016-10-07 10:42:52 -04:00
Martyn Taylor 95c4fdd408 ARTEMIS-762 Reflect management changes in AMQP protocol 2016-10-07 10:38:01 -04:00
Ville Skyttä 082b75bb3d More use of try-with-resources 2016-09-30 13:17:26 -04:00
Clebert Suconic ec48f9ed00 ARTEMIS-765 Improve Checkstyle 2016-09-30 11:12:09 -04:00
Andy Taylor bd9b2057fa ARTEMIS-758 - List/Object message sent by OpenWire JMS client can't be consumed with other clients
https://issues.apache.org/jira/browse/ARTEMIS-758
2016-09-29 20:28:31 -04:00
Timothy Bish 67fc49014e ARTEMIS-763 Remove the legacy Qpid JMS client annotations
Removes the append of the destination annotations from the outbound JMS
transformer as the legacy client has be unsupported at Qpid for quite
some time now.
2016-09-29 15:37:47 -04:00
Clebert Suconic a838bf0479 ARTEMIS-751 Simplification of the AMQP implementation
Since we don't need client implementations any longer, given the maturity level of
qpid jms, these classes can go, as a result a lot of the interfaces can be removed.

As part of this I am removing proton-plug, and reorganizing the packages in a way I think it
makes more sense and easier to other developers to understand and maintain it.

https://issues.apache.org/jira/browse/ARTEMIS-751
2016-09-27 09:29:40 -04:00
Clebert Suconic 1548a4e217 NO-JIRA Removing Thread usage for Pings on Stomp 2016-09-26 18:32:25 -04:00
jbertram 2dcf8de0de ARTEMIS-741 fix subscription queue leak on STOMP 2016-09-26 18:01:30 -04:00
Ville Skyttä e98da5f288 Make bunch of private fields final 2016-09-23 09:06:08 -04:00
Clebert Suconic 113c0c9360 ARTEMIS-738 Improving TX support on AMQP
https://issues.apache.org/jira/browse/ARTEMIS-738
2016-09-21 18:14:38 -04:00
Martyn Taylor 74742dcb66 Add Unique ClientID on Server 2016-09-16 16:05:20 +01:00
Martyn Taylor dd32d6bb3e Add back autoCreate for bindingsQuery in AMQP protocol 2016-09-15 11:17:26 -04:00
Howard Gao 406d09d986 ARTEMIS-728 Broker doesn't support unique jms client-id (qpid-jms client) 2016-09-15 11:17:02 -04:00
Ville Skyttä 2c7c81ca9e STOMP frame encode: Use fixed buffers 2016-09-14 20:54:28 +03:00
Ville Skyttä 8e59cf4d5f STOMP frame encode: Avoid StringBuilder resizing 2016-09-14 20:54:23 +03:00
Ville Skyttä 7bff07d5b1 Add missing @Overrides 2016-09-14 13:22:20 +03:00
Martyn Taylor afd6bb7aa6 ARTEMIS-731 properly handle AMQP recreate durable subscription queue 2016-09-13 14:10:26 -04:00
Andy Taylor cdb0391c1c ARTEMIS-723 - AMQP subscriptions aren't deleted properly
https://issues.apache.org/jira/browse/ARTEMIS-723
2016-09-12 10:27:49 +01:00
Clebert Suconic 46d3f4abcc Version upgrades 2016-09-09 14:49:33 -04:00
Martyn Taylor 8c7599d5e4 ARTEMIS-725 Strip internal headers on AMQP Out 2016-09-09 09:49:38 -04:00
Martyn Taylor 553f2df745 ARTEMIS-724 Implement no-local consumer filter AMQP 2016-09-09 11:07:53 +01:00
Timothy Bish 42ff4a6048 ARTEMIS-722 Add DELAYED_DELIVERY capability to server connection open
The server should indicate to clients that it supports the message
annotation that allows message delivery to be delayed
'x-opt-delivery-time'
2016-09-08 19:01:40 -04:00
Andy Taylor 519bf674bc ARTEMIS-718 - AMQP type message bodies are being lost
https://issues.apache.org/jira/browse/ARTEMIS-718
2016-09-08 15:39:27 -04:00
Martyn Taylor db7dfba607 ARTEMIS-720 Add JMSX properties in AMQP<->JMS converter 2016-09-08 09:31:43 -04:00
Martyn Taylor b788ffac22 ARTEMIS-719 Send ampq:not-found properly on remote open 2016-09-08 09:27:36 -04:00
Clebert Suconic 505b732843 [maven-release-plugin] prepare for next development iteration 2016-09-06 12:17:31 -04:00
Clebert Suconic b305e231ec [maven-release-plugin] prepare release 1.4.0 2016-09-06 12:17:08 -04:00
Clebert Suconic 4472aa0e36 ARTEMIS-581 Implement max disk usage, and global-max-size
max-disk-usage = how much of a disk we can use before the system blocks
global-max-size = how much bytes we can take from memory for messages before we start enter into the configured page mode

This will also change the default created configuration into page-mode as that's more reliable for systems.
2016-09-06 15:07:49 +01:00
Martyn Taylor 930d814daf ARTEMIS-701 Set Accepted on AMQP discharge 2016-09-06 09:36:50 -04:00
Howard Gao 61747acfd1 ARTEMIS-706 No Keep Alives from Broker 2016-09-02 21:39:44 -04:00
Clebert Suconic 739ce8a53a ARTEMIS-711 fixing tests 2016-09-02 10:00:00 -04:00
jbertram 1cf96f4fcf ARTEMIS-711 Fix handling of 'bare' header 2016-09-01 15:23:48 -04:00
Clebert Suconic 03b938468a ARTEMIS-657 Fixing JORAM AMQP Tests 2016-08-31 14:26:10 -04:00
Howard Gao 8fccd5df42 ARTEMIS-696 Broker fails when client sends messages in multiple transfer frames 2016-08-30 17:24:31 -04:00
Gordon Sim 8f188ef236 ARTEMIS-657: ensure management response bodies are encoded into amqp 2016-08-30 17:12:19 -04:00
Ville Skyttä d5242978d5 for and while loop to foreach conversions 2016-08-25 14:22:32 -04:00
Ville Skyttä e1728f0797 Spelling fixes 2016-08-25 14:22:32 -04:00
Ville Skyttä 30c617da3c Unnecessary @SuppressWarnings fixes 2016-08-25 14:22:32 -04:00
Clebert Suconic a3840c23c3 [maven-release-plugin] prepare for next development iteration 2016-08-16 11:59:55 -04:00
Clebert Suconic d38ef19bf6 [maven-release-plugin] prepare release 1.4.0 2016-08-16 11:59:36 -04:00
Martyn Taylor 7afd0fb028 ARTEMIS-677 Support websocket subprotocol handshakes 2016-08-10 11:07:47 -04:00
Gordon Sim 7a012008b7 ARTEMIS-447: add name and version to properties in amqp open frame 2016-08-10 08:56:44 -04:00
Ville Skyttä 330c65ba35 Remove unnecessary @SuppressWarnings("unchecked") 2016-08-09 11:24:22 +01:00
Clebert Suconic 579d6226aa ARTEMIS-671 Returning messages after connection killed, and validating usage of reconnect 2016-08-09 11:23:46 +01:00
Howard Gao 2fb8341f8d ARTEMIS-604 - Add checks for object messages in REST and AMQP
- Rest interface fix
  - Doc fixes (Rest->REST)
  - JSON management and AMQP outbound
2016-08-09 11:22:48 +01:00
Martyn Taylor 0af13e0d03 ARTEMIS-669 Do binding query on sender link attach
QueueQuery was previously used instead of checking for bindings on a
particular address name.  This meant sending and receiving only worked
for those queues that happened to have the same queueName to address.
This patch replaces this with binding check.

There's also some minor ProtonTest fixes included.
2016-08-09 08:21:41 +01:00
Martyn Taylor 2f721866ab ARTEMIS-636 Add AMQP Hard Soft Limit for BLOCK 2016-08-05 15:29:01 +01:00
Martyn Taylor 06fb4a1234 ARTEMIS-667 Make AMQP Exceptions extend ActiveMQException 2016-08-05 15:29:01 +01:00
bayern39 a741642a48 [ARTEMIS-642] Disable slow client reconnecting with KILL slow client policy 2016-08-03 18:39:57 -04:00
Martyn Taylor ab39e70dc9 ARTEMIS-666 Fix AMQP error message on address not found 2016-08-03 13:28:34 +01:00
Gordon Sim bac991215d ARTEMIS-446: use name from broker.xml as container id in AMQP open frame 2016-08-03 12:03:25 +01:00
jbertram df193060e6 Fix ExtraStompTest 2016-08-02 21:01:14 -04:00
Ville Skyttä 1bc42be7ff Access static fields and methods directly 2016-07-29 15:38:08 -04:00
Ville Skyttä 9022a311f3 Fix removing ended transaction id in OpenWireConnection.CommandProcessor 2016-07-29 15:35:25 -04:00
Ville Skyttä 7ce2d7c199 Fix adding duplicate detection id in Openwire AMQSession.send 2016-07-29 15:35:25 -04:00
Ville Skyttä c890164fda Use try-with-resources some more 2016-07-29 15:32:57 -04:00
Ville Skyttä 616c038dae Fix connection list cleanup in OpenWireProtocolManager.removeConnection 2016-07-29 15:27:55 -04:00
Ville Skyttä 9963f96033 Fix NPE with null session in MQTTConnectionManager.disconnect() 2016-07-28 23:30:02 +03:00
Ville Skyttä 72bf5b7a0a ARTEMIS-611 Remove redundant null check 2016-07-28 15:25:45 -04:00
Andy Taylor 85ede22c3c ARTEMIS-655 - [AMQP] On transacted session.commit() of receiver client, messages are read, but queue is not cleared out
Making sure that when a transaction state of accepted is returned we actually ack the message

https://issues.apache.org/jira/browse/ARTEMIS-655
2016-07-26 14:30:11 -04:00
Martyn Taylor 64e95b9b91 This closes #665 2016-07-26 15:14:40 +01:00
Martyn Taylor 69294e83e1 Add management filter to Queue not Consumer MQTT 2016-07-26 12:32:38 +01:00
Ville Skyttä aed49b3894 Spelling fixes 2016-07-26 14:24:45 +03:00
Martyn Taylor b549bb243c Add default AMQP flow behaviour and fix proton test 2016-07-26 11:14:25 +01:00
jbertram 778bd8361a ARTEMIS-650 clarify doc, use TTL default for 0 heartbeat 2016-07-25 16:27:30 +01:00
jbertram c4a7ddf9d6 ARTEMIS-548 Stomp durable sub unsubscrbe
Implement ability for Stomp clients to unsubscribe durable
subscriptions.
2016-07-25 16:23:06 +01:00
Martyn Taylor e341b54c49 ARTEMIS-641 filter out management notifications in MQTT 2016-07-21 14:47:20 -05:00
Martyn Taylor fe0cb648d6 ARTEMIS-335 Remove dead code from MQTTPublishManager 2016-07-21 14:47:20 -05:00
jbertram 7d8f9dcec6 ARTEMIS-611 send ERROR in case of TTL violation
I changed the message for TTL timeouts because the existing message was
a bit verbose and a bit speculative. Also, now that the broker supports
more protocols the bit about connection-ttl and
client-failure-check-period is less relevant.
2016-07-20 15:54:29 -05:00
jbertram 4232ed70d4 ARTEMIS-611 adjust ttlMin to fix Stomp tests 2016-07-20 15:54:29 -05:00
jbertram 707b51796a ARTEMIS-611 fix logging 2016-07-20 15:54:28 -05:00
jbertram b466cce593 ARTEMIS-234 fix content-length for Stomp 1.0 2016-07-20 13:40:57 +01:00
Martyn Taylor 4d60ced581 ARTEMIS-636 Implement AMQP AddressFull BLOCK 2016-07-20 10:33:44 +01:00
Martyn Taylor 5dfa1c59fb ARTEMIS-638 Only allocate credits once Link Attach 2016-07-20 10:33:44 +01:00
jbertram 89e0c461e5 ARTEMIS-611 refactor STOMP cxn TTL + heart-beat
Adds 3 new URI properties for STOMP acceptors to allow finer grained
configuration of heart-beat / connection-TTL behavior.
2016-07-18 17:10:05 -05:00
Timothy Bish 688eac50ea ARTEMIS-629 Preserve the correlation ID type during conversions
When converted to a core message type the original type of the
CorrelationId in the AMQP message is lost, we must encode the type to
prevent the loss of the original type as this value is meant to be
immutable.
2016-07-14 10:08:55 +01:00
jbertram 6881c1ddc3 ARTEMIS-578 cert authn/z for STOMP 2016-07-06 10:54:19 -05:00
jbertram 765b225924 ARTEMIS-584 add validated user to msg
Implements a new feature to aid in security auditing by adding the name
of the validated user to the messages it sends.
2016-07-06 09:37:29 -05:00
John D. Ament 7c746c719e ARTEMIS-607 Added interceptor support for MQTT protocol.
Also updated the maintainer's guide to clarify what is run in the PR builder.
2016-07-05 19:43:00 -04:00
Ville Skyttä 149216e8ec Remove unnecessary null checks and assignments 2016-07-05 14:18:01 -04:00
Timothy Bish 75f18d1e10 ARTEMIS-585 support send on dynamic sender link
The sender abstraction must be able to update its sender address in the
case of dynamic senders whose target address is not set until the code
initializes the link and creates a destination for it.
2016-06-21 09:33:33 -04:00
jbertram eb785b4194 ARTEMIS-409 clarify STOMP login failure response 2016-06-17 17:16:51 -05:00
Martyn Taylor 432e2ce178 ARTEMIS-570 Fix buffer size overflow ProtonHandler
There is a race condition in the ProtonHandlerImpl.outputBuffer()
method.  The method checks to see how many bytes (n) are pending in the
underlying ProtonJ buffer, then creates a Netty buffer of size n.  It
then writes the contents of the pending ProtonJ head.  However, ProtonJ
can still write to it's internal buffer, meaning that it's buffer.size >
n causing an illegalArgumentException.  This patch fixes it by only
writing 'n' bytes to the Netty buffer.
2016-06-17 15:04:32 -04:00
Howard Gao 109ce6ded9 ARTEMIS-571 Fix issues in openwire testsuite
* Redelivery count fix
* Regression in BrokerTest
2016-06-17 14:58:54 -04:00
Ville Skyttä 33a51223b0 Remove redundant type arguments 2016-06-14 20:50:21 -04:00
Ville Skyttä 3923ae45f4 Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
Clebert Suconic feaea9fb91 proton logging and tracing (first part) 2016-06-10 13:33:26 -05:00
Martyn Taylor 9ae39f663f [maven-release-plugin] prepare for next development iteration 2016-06-09 12:52:56 +01:00
Martyn Taylor 221039e353 [maven-release-plugin] prepare release 1.3.0 2016-06-09 12:49:13 +01:00
Martyn Taylor 319439ab27 [maven-release-plugin] prepare for next development iteration 2016-06-09 12:25:19 +01:00
Martyn Taylor 2c5ab446be [maven-release-plugin] prepare release 1.3.0 2016-06-09 12:24:48 +01:00
Martyn Taylor 4a07091718 [maven-release-plugin] prepare for next development iteration 2016-06-09 11:25:03 +01:00
Martyn Taylor 93cf7b4b9b [maven-release-plugin] prepare release 1.3.0 2016-06-09 11:23:03 +01:00
Martyn Taylor 4574b3ee13 [maven-release-plugin] prepare for next development iteration 2016-06-08 11:03:35 +01:00
Martyn Taylor 2b3d22c5cc [maven-release-plugin] prepare release 1.3.0 2016-06-08 11:02:14 +01:00
jbertram e53649a6b9 ARTEMIS-322 auto-create/delete JMS topic
Implements a new feature for the broker whereby it may automatically create and
delete JMS topics which are not explicitly defined through the management API
or file-based configuration. A JMS topic is created in response to a sent
message or connected subscriber. The topic may subsequently be deleted when it
no longer has any subscribers. Auto-creation and auto-deletion can both be
turned on/off via address-setting.
2016-06-06 16:00:57 -04:00
Martyn Taylor e453aae5c9 ARTEMIS-233 Convert TextMessage to UTF8 in MQTT 2016-05-25 15:37:20 -04:00
Martyn Taylor 0d8a565836 Artemis-233 Support JMS BytesMessage -> MQTT 2016-05-25 17:59:00 +01:00
Martyn Taylor 3c7c2ed5d3 ARTEMIS-233 Remove MQTT Address PreFix for cross protocol support 2016-05-25 17:59:00 +01:00
Clebert Suconic 10dfe97ec0 Adding JORAM Tests for AMQP with a few fixes around the protocol manager for JMS 2016-05-25 09:41:40 -04:00
jbertram e8d0639d05 ARTEMIS-536 fix checkstyle 2016-05-24 15:37:53 -05:00
Martyn Taylor d4038ec59a ARTEMIS-536 Fix AMQP List/Sequence decoding 2016-05-24 12:07:07 -04:00
Andy Taylor 73f908b8b4 ARTEMIS-535 - Improve amqp protocol to support topics
https://issues.apache.org/jira/browse/ARTEMIS-535
2016-05-24 13:26:24 +01:00
jbertram 2c923cec97 ARTEMIS-523 re-order SASL mechs 2016-05-18 13:49:12 -04:00
jbertram b9b4107020 ARTEMIS-522 fix AMQP ANON advert 2016-05-17 12:34:10 -04:00
Ville Skyttä 81956e1716 Use StandardCharsets more 2016-05-16 12:09:46 -04:00
Martyn Taylor 54752a9ced ARTEMIS-46 Adds AMQP Drain Support 2016-05-11 12:04:58 +01:00
Erich Duda a622fa7443 ARTEMIS-518 - Improvement of default thread factory 2016-05-09 14:33:41 -04:00
Andy Taylor c161ab46a6 ARTEMIS-503 - replace proton-jms with proton-jms from ActiveMQ
Ive copied over the source itself

https://issues.apache.org/jira/browse/ARTEMIS-503
2016-05-03 10:40:56 -04:00
Diego Bes 75a4e78948 Change keep alive ratio to 1.5 from 0.75
Fixes: ARTEMIS-397

From mqtt specs:

“If the Keep Alive value is non-zero and the Server does not receive a
Control Packet from the Client within one and a half times the Keep
Alive time period, it MUST disconnect the Network Connection to the
Client as if the network had failed [MQTT-3.1.2-24]. “
2016-05-03 14:14:34 +01:00
Howard Gao ada6600ee3 ARTEMIS-505 Fix OptimizedAckTest and testCloseConsumer
OptimizedAckTest: Using core api to replace old activemq
broker API to checking message count.
JmsQueueTransactionTest#testCloseConsumer: a bug in
delivery when prefetchSize is 0.
(InitalReconnectDelayTest)close connection after test.
2016-04-27 10:06:14 -04:00
Andy Taylor 1530ea3032 re-adding code accidently removed 2016-04-27 07:26:55 +01:00
Howard Gao fcda12f92c ARTEMIS-214 exception when sending 10k message 2016-04-26 10:04:24 -04:00
Andy Taylor 60df3dc05f ARTEMIS-503 - replace proton-jms with proton-jms from ActiveMQ
some extra fixes needed

https://issues.apache.org/jira/browse/ARTEMIS-503
2016-04-26 14:02:53 +01:00
Andy Taylor 9a17681f83 ARTEMIS-503 - replace proton-jms with proton-jms from ActiveMQ
https://issues.apache.org/jira/browse/ARTEMIS-503
2016-04-25 14:13:30 +01:00
Andy Taylor 76d937fab3 ARTEMIS-500 - possible index out of bounds after amqp sasl handshake
https://issues.apache.org/jira/browse/ARTEMIS-500
2016-04-25 14:13:30 +01:00
Clebert Suconic 172de47ce0 Created queue should be durable on openwire 2016-04-21 10:44:50 -04:00
Clebert Suconic 31055b6f0a Removing Marshalled property from Openwire 2016-04-20 23:00:57 -04:00
Howard Gao 3012447404 ARTEMIS-488 Fix OpenWire Test (Temp Queue removal and others)
Temp Queue not deleted when connection is closed.
Enable Stomp in openwire test because some test uses it.
Remove unused code in opwnwire
Wrong XA error code returned when xid is missing
(ActiveMQXAConnectionFactory.testRollbackXaErrorCode)
regression in ActiveMQSslConnectionFactoryTest (SSL related)
2016-04-20 12:33:01 -04:00
Andy Taylor f47bb6cc4b ARTEMIS-494 - implement filters correctly
took this code from ActiveMQ which was over hawled in this area

https://issues.apache.org/jira/browse/ARTEMIS-494
2016-04-20 12:14:04 +01:00
Andy Taylor 97f3fb241c ARTEMIS-493 - NullPointerException when trying a null connection remote properties are passed by client
adde a check and fixed a couple of other potential NPE's

https://issues.apache.org/jira/browse/ARTEMIS-493
2016-04-19 11:21:33 +01:00
Andy Taylor 8a72f8906a ARTEMIS-453 - AMQP reply-to property is stripped off message as it goes through broker
TheJMSVendor protocol convertor class was not creating the destinations so any destination calls, setTo and setJMSReplyTo, were ignored. Ive added a server side destination class to bypass the naming checks we have on the client and this now sets everything correctly

https://issues.apache.org/jira/browse/ARTEMIS-453
2016-04-12 10:24:13 +01:00
Ville Skyttä 3dc3e8520d Remove redundant toString calls 2016-04-11 16:54:30 -04:00
Ville Skyttä e6e1311f8d Add missing @Overrides 2016-04-11 16:51:01 -04:00
Clebert Suconic 50eac7c824 ARTEMIS-468 Amendments to how redelivery count is handled on openwire 2016-04-07 13:56:31 -04:00
Howard Gao 8a998ad805 ARTEMIS-468 Fix openwire redelivery related regressions under integration-tests 2016-04-07 12:12:28 -04:00
Clebert Suconic 91bdeb3728 ARTEMIS-464 Sending null textMessage shouldn't break the wire 2016-04-04 11:08:43 -05:00
Clebert Suconic 3560415bcb ARTEMIS-463 Using OperationContext for async support 2016-04-04 11:08:43 -05:00
Clebert Suconic 3aedf27386 ARTEMIS-463 More simplifications on the openwire head
https://issues.apache.org/jira/browse/ARTEMIS-463

This will have some extra refactoring on the protocol head, transferring responsibility to the broker classes in a lot of cases
and removing some duplicated code

This was a team effort from Clebert Suconic and Howard Gao
2016-04-04 11:08:43 -05:00
Clebert Suconic 6ddf486f8f ARTEMIS-463 Refactoring on Openwire
https://issues.apache.org/jira/browse/ARTEMIS-463

This was a team effort from Clebert Suconic and Howard Gao
2016-04-04 11:08:43 -05:00
Ville Skyttä 3a2d5de49e Remove unnecessary code 2016-04-04 11:04:49 -05:00
Ville Skyttä 16ee65309c Add missing @Override annotations 2016-04-04 11:03:48 -05:00
Clebert Suconic ee6a03295f ARTEMIS-437 Improving lock over certain protocols
Avoiding deadlocks between acks and other factors
2016-03-16 08:23:58 -04:00
Ville Skyttä 7c275cdb1a Use generics more 2016-02-28 01:06:59 +02:00
Ville Skyttä aa3f3bd6a7 Use try-with-resources more 2016-02-21 12:09:43 +02:00
Clebert Suconic 02afdbbb12 Upgrade proton to 0.12 2016-02-18 10:14:26 -06:00
Clebert Suconic 9ebc6786b6 ARTEMIS-401 Refactoring Acceptors and ProtocolManager to support parameters
https://issues.apache.org/jira/browse/ARTEMIS-401
2016-02-18 10:14:26 -06:00
gautric 3986f0a517 Add Name tag for several POM files 2016-02-16 11:56:01 -05:00
Andy Taylor 7702a0a1f9 ARTEMIS-398 - AMQP protocol idle timeout issue
added functionality to tick every n seconds where n is 1/2 the idle timeout

https://issues.apache.org/jira/browse/ARTEMIS-398
2016-02-16 11:24:09 +00:00
Clebert Suconic e62a820414 Fixing ServerMessage's copy and MQTT delivery 2016-01-27 17:12:56 -05:00
Ville Skyttä 51f125387b Add "persistent" header to outbound STOMP messages 2016-01-27 13:20:55 -05:00
Ville Skyttä bdea213e88 Rename Stomp.Headers.Message.PRORITY to .PRIORITY 2016-01-27 13:20:55 -05:00
Ville Skyttä 2c4312d4f2 Disconnect on STOMP 1.2 errors
https://stomp.github.io/stomp-specification-1.2.html#ERROR
2016-01-25 21:33:28 -05:00
jbertram ddc95a0f28 ARTEMIS-358 topic mistakenly removed with sub
The problem here is that the management notification listener was mistakenly
removing the topic itself instead of just the non-durable subscription. In
general I can't see why StompProtocolManager even needs to keep track of the
destinations when the broker already does that. As far as I can tell it is
redundant and it's clearly error-prone. Therefore I'm removing the destination
tracking from StompProtocolManager altogether.
2016-01-25 21:04:00 -05:00
Martyn Taylor 4922a7618a Bump to next version to 1.3.0-SNAPSHOT 2016-01-20 17:25:07 +00:00
Ville Skyttä f85e5e7922 Deprecation fixes 2016-01-11 13:22:18 -05:00
Clebert Suconic 1d7e8b38ea Fixing intermittent failure on Proton tests 2016-01-06 21:58:34 -05:00
Clebert Suconic b3a8c23802 ARTEMIS-332 - fix checkstyle 2016-01-06 20:39:38 -05:00
Clebert Suconic 0dab0552dc ARTEMIS-332 - fix openwire after exceptions change 2016-01-06 19:58:15 -05:00
Clebert Suconic 96849a42b7 ARTEMIS-332 - Duplicate delivery over Bridges under OME scenarios, paging and other failures
https://issues.apache.org/jira/browse/ARTEMIS-332
2016-01-04 20:49:28 -05:00
Martyn Taylor 2c430e597b [maven-release-plugin] prepare for next development iteration 2016-01-04 11:50:36 +00:00
Martyn Taylor f182c806b6 [maven-release-plugin] prepare release 1.2.0 2016-01-04 11:49:58 +00:00
Martyn Taylor 5f32e6575c [maven-release-plugin] prepare for next development iteration 2016-01-04 09:24:34 +00:00
Martyn Taylor 150c5d87aa [maven-release-plugin] prepare release 1.2.0 2016-01-04 09:19:35 +00:00
Ville Skyttä d48e344a8f Add missing @Overrides 2015-12-21 22:06:03 -05:00
Ville Skyttä a0dc9861a0 Access static members directly 2015-12-21 22:01:21 -05:00
Martyn Taylor 90c9469701 [maven-release-plugin] prepare for next development iteration 2015-12-17 17:03:40 +00:00
Martyn Taylor df61224d2d [maven-release-plugin] prepare release 1.2.0 2015-12-17 17:01:58 +00:00
Clebert Suconic b1b4bb8a32 ARTEMIS-320 Refactoring TCP flow control and proper implementation of flow control on consumers
https://issues.apache.org/jira/browse/ARTEMIS-320
2015-12-10 16:50:26 -05:00
Ville Skyttä f8a1c5ba8e Remove redundant type arguments 2015-12-07 22:55:05 +02:00
Ville Skyttä 3b5ee6c7ea Remove unnecessary casts 2015-12-07 22:53:42 +02:00
Ville Skyttä 25ae472455 Add missing @Override annotations 2015-12-06 01:27:35 +02:00
Christian Schneider 8cc6c2f5fc More checkstyle fixes 2015-11-24 14:55:35 +01:00
Christian Schneider be9dad3f2b OSGi support based on branch from gnodet 2015-11-24 11:12:10 +01:00
Clebert Suconic 270ad3ec3b ARTEMIS-238/ARTEMIS-236 Removing file that was supposed to be deleted 2015-10-23 09:44:30 -04:00
Clebert Suconic bc828c0017 ARTEMIS-238 and ARTEMIS-236 Moving HQClient to its own module avoiding uncessary server's dependencies 2015-10-22 10:15:14 -04:00
Julian Scheid aa7696e329 ARTEMIS-270 Supply RemotingConnection for authorization 2015-10-20 18:23:41 -04:00
Clebert Suconic ed51a6f706 removing accidental system.out 2015-10-12 19:14:30 -04:00
Clebert Suconic 206acdac7d ARTEMIS-238 and ARTEMIS-236 Fixing Legacy protocol support 2015-10-08 20:32:43 -04:00
Clebert Suconic d2a5003ff4 Adding stomp-jms example 2015-10-06 22:05:59 -04:00
Julian Scheid 235380d5df ARTEMIS-230 Copy STOMP content-header back and forth 2015-09-28 14:53:10 +02:00
Martyn Taylor bb2c890803 [maven-release-plugin] prepare for next development iteration 2015-09-15 15:43:44 +01:00
Martyn Taylor 63ea448728 [maven-release-plugin] prepare release 1.1.0 2015-09-15 15:41:37 +01:00
Howard Gao 0abf52468b ARTEMIS-200 Message Compression Support 2015-09-14 09:56:19 +08:00
Martyn Taylor 6408fd0357 [maven-release-plugin] prepare for next development iteration 2015-09-11 19:01:57 +01:00
Martyn Taylor c512f12a34 [maven-release-plugin] prepare release 1.1.0 2015-09-11 19:01:19 +01:00
Clebert Suconic 7b2c50415a using new qpid-jms client on AMQP 2015-09-11 09:06:00 -04:00
Martyn Taylor fec6546480 [maven-release-plugin] prepare for next development iteration 2015-09-08 16:39:59 +01:00
Martyn Taylor 4d0b15b043 [maven-release-plugin] prepare release 1.1.0 2015-09-08 16:29:09 +01:00
Martyn Taylor 82f6a88d59 [maven-release-plugin] prepare for next development iteration 2015-09-07 10:02:01 +01:00
Martyn Taylor 8c1e0e15fc [maven-release-plugin] prepare release 1.1.0 2015-09-07 10:01:10 +01:00
Howard Gao e3a1e8abd6 Fix ReconnectWithSameClientIDTest 2015-09-07 15:05:33 +08:00
Martyn Taylor a2aa18c123 [maven-release-plugin] prepare for next development iteration 2015-09-04 20:20:13 +01:00
Martyn Taylor a5decb659e [maven-release-plugin] prepare release 1.1.0 2015-09-04 20:19:11 +01:00
Martyn Taylor 4576ccea08 [maven-release-plugin] prepare for next development iteration 2015-09-04 19:48:52 +01:00
Clebert Suconic cc9cacef14 fixing openwire tests
I removed some valid code while removing dead code.
2015-08-31 08:14:25 -04:00
Howard Gao 638674bce0 Minor refactor of OpenWireProtocolManager
In addDestination() put the security check right before
  actual queue creation. That'll also fix BasicSecurityTest
  regression.
2015-08-31 10:37:28 +08:00
Clebert Suconic 9cf4c18ea5 removing more dead code on openwire
(classes without any implementation detail, no code usage or duplicate meaning)
2015-08-28 19:33:35 -04:00
Clebert Suconic 343ed61e14 removing more dead code on openwire 2015-08-28 17:10:24 -04:00
Clebert Suconic e850e1351d Removing dead code - AMQSEcurityContext 2015-08-28 15:05:44 -04:00
Clebert Suconic 738b15d0ae Removing deadcode on openwire AMQSubscription 2015-08-28 15:05:44 -04:00
Clebert Suconic ebb91edd42 Removing dead code on openwire - DestinationStatistics & AuthorizationPolicy 2015-08-28 15:05:43 -04:00
Clebert Suconic 5f16adde43 removing dead code on openwire - AMQPersistenceAdapter & AMQMessageStore 2015-08-28 15:05:43 -04:00
Clebert Suconic 8927456d21 removing dead code - NotenoughBytesException 2015-08-28 15:05:42 -04:00
Clebert Suconic 12de35892a Removing dead code - AMQPBrokerStoppedException 2015-08-28 15:05:42 -04:00
Clebert Suconic 04ca86c3dd removing more dead code on openwire implementation 2015-08-28 15:05:41 -04:00
Clebert Suconic 3fbf75b2ff removing dead code on openwire implementation 2015-08-28 15:05:41 -04:00
Clebert Suconic 8d98fc395f Refactoring Auth
this is doing some refactoring, making the SecurityStore mechnism possible to be reused on other protocols,
without forcing them to implement ServerSession on checks that won't fit the Server Model from Artemis
2015-08-28 15:04:59 -04:00
Howard Gao be9959e0bc ARTEMIS-191 Refactor RemoveDestinationTest
-Using core api to inspect queue status
  -Catch command visit() exceptions in order to
   pass it back to client.
  -Correct destination add/remove handlings
2015-08-28 20:33:38 +08:00
Andy Taylor 2f18b4cbfc ARTEMIS-193 - OpenWire protocol only works with messages received over openwire
Fix the address conversion between protocols so its consistent

https://issues.apache.org/jira/browse/ARTEMIS-193
2015-08-27 10:23:38 +01:00
Clebert Suconic 4b79ddb0bd ARTEMIS-209 fix keepAlive
- Received should be set to true on any package
2015-08-25 18:56:14 -04:00
Clebert Suconic 8935483cdd ARTEMIS-208 fixing BrokerInfo, using OpenWire connection instead of static property on the protocolManager 2015-08-24 22:54:59 -04:00
Howard Gao 34e127cc0c ARTEMIS-208 BrokerInfo issue, also:
enlarged the default max size for tests to avoid send blocking.
2015-08-24 22:54:12 -04:00
jbertram 976174305e ARTEMIS-209 fix keepAlive 2015-08-14 16:20:10 -05:00
Clebert Suconic 27b98a2514 performance tests on openwire 2015-08-14 15:39:27 -04:00
Clebert Suconic 1dae99746b ARTEMIS-204 Improvements on OpenWire
https://issues.apache.org/jira/browse/ARTEMIS-204

by consequence this will also fix any possible issues with AMQP
2015-08-13 20:39:01 -04:00
Clebert Suconic 5ac2c2444b manual checkstyle changes 2015-08-10 10:08:23 -04:00
Clebert Suconic bac96047f5 automatic checkstyle change
this is just calling Idea format on all the files using the new style
I am separating manual changes from automatic changes in case I have to repeat the manual changes again
2015-08-10 09:26:42 -04:00
Andy Taylor 81756739bb ARTEMIS-186, ARTEMIS-188 and some refactoring
refactoring and simplifying some of the connection state code and removing stuff we dont need. Also removed some of maps used and removed the need for lots of lookups

https://issues.apache.org/jira/browse/ARTEMIS-186

Added message pull support for zero prefetch consumers

https://issues.apache.org/jira/browse/ARTEMIS-188

Added consumer flow control
2015-08-06 09:49:46 +01:00
Howard Gao 65e9ec01b8 Fix openwire unit tests
Fix JmsRedeliveredTest and add processing of RemoveSubscriptionInfo command
2015-08-03 08:56:27 -04:00
Clebert Suconic 6fe9e0ebd6 ARTEMIS-163 First pass on the native AIO refactoring
https://issues.apache.org/jira/browse/ARTEMIS-163

On this pass I'm just converting the native layer to a simpler one.
It wasn't very easy to change the alignment at the current framework,
so I did some refactoring simplifying the native layer

The volume of the nubmer of changes here is because:

- The API is changed, we now don't close the libaio queue between files
- The native layer won't use malloc as much as it used to, saving some CPU and memory defragmentation
- I organized the code around nio and libaio
2015-07-29 22:12:03 -04:00
Andy Taylor abcde1c1f3 added Openwire XA end call 2015-07-28 09:50:29 -04:00
Clebert Suconic d002da8506 mqtt improvement over retained queue 2015-07-27 10:32:20 -04:00
Ville Skyttä 2a647c176f Declare ConcurrentMaps instead of ConcurrentHashMaps
See PR #88 for discussion.
2015-07-22 16:16:57 +03:00
Ville Skyttä 45d1601334 Make some STOMP fields final 2015-07-22 11:48:42 +01:00
Clebert Suconic 5c4511b59f Using ConcurrentMap instead on MQTTSessionState" 2015-07-22 11:44:03 +01:00
Ville Skyttä 0dcad8fc59 Fix MQTT build
putIfAbsent() is a ConcurrentHashMap method.
2015-07-21 22:18:49 +01:00
Ville Skyttä 214a1dc1eb Use StringBuilder instead of StringBuffer on STOMP encode 2015-07-21 19:11:07 +03:00
Ville Skyttä 615a9881b5 Use base implementation for STOMP 1.1+ toActiveMQBuffer 2015-07-21 19:06:40 +03:00
Ville Skyttä 0b3a64c5e8 Auto-set content-length to STOMP 1.0 frames
As recommended by the 1.0 spec.
2015-07-21 19:04:08 +03:00
Clebert Suconic 8353bd1f77 reapplying Don't auto-send STOMP content-length header if one was explicitly set
I reverted this change by accident
2015-07-21 13:59:38 +01:00
Clebert Suconic dcd6033e02 fixing Stomp::testSendWithHeartBeats 2015-07-21 02:46:45 +01:00
Ville Skyttä 642838c712 Don't auto-send STOMP content-length header if one was explicitly set 2015-07-20 15:09:07 +01:00
Ville Skyttä 8a90de6fbc Avoid some array copies on STOMP decode 2015-07-20 14:57:17 +01:00
Ville Skyttä b38236df82 Set content-type to STOMP ERROR frames
Not setting it to directly instantiated 1.0 frames though, as
content-type is not in the 1.0 spec. However the 1.0 spec does not
actually forbid headers outside of the spec so it shouldn't hurt if we
end up setting it for some frames sent over a 1.0 connection.
2015-07-14 09:54:40 -04:00
Ville Skyttä 6ee22e7c5e Set frame handlers to ActiveMQStompExceptions 2015-07-14 09:53:36 -04:00
Ville Skyttä 3deb20f049 Create versioned instead of generic frames from STOMP decoder 2015-07-14 09:53:35 -04:00
Ville Skyttä 9e41d961be Send supported versions back in STOMP ERROR version
https://stomp.github.io/stomp-specification-1.2.html#Protocol_Negotiation
2015-07-13 16:50:36 -04:00
Ville Skyttä 6199d4ee11 Don't hardcode supported STOMP versions but loop through StompVersions 2015-07-13 16:50:36 -04:00
Ville Skyttä 78cb156ef9 Spelling fixes 2015-07-13 09:38:00 -04:00
Ville Skyttä 851ac30f32 Auto-add content-length to STOMP 1.1 frames too, inherit 1.2 from 1.1 2015-07-10 14:43:00 +03:00
Ville Skyttä 2f6d3dc064 Use END_OF_FRAME from base StompFrame 2015-07-10 12:19:18 +03:00
Ville Skyttä ebcf0c0080 Use more versioned STOMP frames rather than generic 2015-07-10 12:06:48 +03:00
Ville Skyttä b0a80ce1be Spelling fixes 2015-07-09 10:41:03 -04:00
Ville Skyttä 7c41bac6b6 Use Stomp constants more rather than magic strings 2015-07-09 10:33:43 -04:00
Ville Skyttä e0e405f879 Remove incorrect comment about Stomp.Headers.Error.MESSAGE 2015-07-09 10:30:04 -04:00
Ville Skyttä 54bbcb3663 Remove StompCommands
It is used in only two places and duplicates constants with
Stomp.Commands and Stomp.Responses.
2015-07-09 10:29:14 -04:00
Howard Gao 7cf58b1e88 ARTEMIS-149 Advisory Message Support
Adding functions to send advisory messages.
2015-07-09 10:23:24 -04:00
Martyn Taylor 0f82ca754b Added Initial MQTT Protocol Support 2015-07-09 11:08:04 +01:00
jbertram bf9f6d213b ARTEMIS-104 missing i18n warns 2015-06-24 14:05:40 -05:00
Otavio Rodolfo Piske f47d1bd15a ARTEMIS-129 removes empty package-info.java files
As describes in ARTEMIS-129, performs a small cleanup on the codebase by removing empty package-info.java files.
2015-06-23 10:50:13 -04:00
jbertram 944f409c4a ARTEMIS-142 Fix for STOMP tests 2015-06-22 13:40:49 -05:00
Andy Taylor 0e2779ceee ARTEMIS-143 - expose idle-timeout
https://issues.apache.org/jira/browse/ARTEMIS-143

Set the idle-timeout on the proton Transport object and also call tick so we send our own heartbeats.
2015-06-22 10:10:44 +01:00
Clebert Suconic 51c34c87d2 ARTEMIS-136 - XA Error fix with proper exception error
https://issues.apache.org/jira/browse/ARTEMIS-136

From what I researched from implementers of XA TM if you throw ERR over communication errors the transaction manager will create
an heuristic transaction to be manually dealt with.

Other XA Implementations (such as Oracle JDBC) are return FAIL over communication failures during any XA operation.
2015-06-15 16:34:55 -04:00
Clebert Suconic 309ce4324c Fixing javadoc and removing the -Xdoclint option from the pom.xml
Also, since JDK 1.8 is no longer required I'm downgrading the JDK to 1.7 minimal.
We can review that back to 1.8 when we really need 1.8 features.
2015-06-09 22:13:11 -04:00
Howard Gao afe5b5cefe ARTEMIS-128 ClassCastException in openwire message conversion 2015-06-09 12:35:55 -04:00
Thiago Kronig d48b4f4770 ARTEMIS-129 License header should be a normal comment
To reproduce this commit, apply a replace regex rule using:

    search regex: /\*\*\n \* Licensed
    replace: /\*\n \* Licensed

These files had to be changed manually:

    artemis-selector/src/main/javacc/HyphenatedParser.jj
    artemis-selector/src/main/javacc/StrictParser.jj
    artemis-website/src/main/resources/styles/impact/css/pygmentize.css
    artemis-website/src/main/resources/styles/impact/css/site.css
2015-06-03 10:19:45 -04:00
jbertram 328611fdc9 More test-suite refactoring
Lots of work on the test-suite in this commit including:
- Rename ServiceTestBase to ActiveMQTestBase
- Make AddressSettings fluent
- Remove unnecessary tearDown() implementations
- Use ActiveMQTestBase.create*Locator() instead of
  ActiveMQClient.createServerLocator*(..)
- Use fluent ServerLocator methods
- Make sure all ActiveMQServers.newActiveMQServer invocations
  are surrounded with addServer() where appropriate
- Create a few example tests to be references from hacking-guide
- Update hacking-guide with more info on writing tests
- Refactor config creation methods in ActiveMQTestBase
2015-05-28 08:49:02 -05:00
Martyn Taylor 22d54c5830 [maven-release-plugin] prepare for next development iteration 2015-05-21 13:47:45 +01:00
Martyn Taylor 3435d5948f [maven-release-plugin] prepare release 1.0.0 2015-05-21 13:43:56 +01:00
Martyn Taylor 97210427df [maven-release-plugin] prepare for next development iteration 2015-05-20 11:26:38 +01:00
Martyn Taylor 3fb3799f91 [maven-release-plugin] prepare release 1.0.0 2015-05-20 11:17:31 +01:00
Martyn Taylor f14b3353f4 Support reconnect on OpenWire failover transport 2015-05-20 10:40:50 +01:00
Martyn Taylor 2de3bfa9f1 ACTIVEMQ-106 Drop ConnectionControl Packet 2015-05-20 10:40:50 +01:00
Martyn Taylor 73c5f2e342 [maven-release-plugin] prepare for next development iteration 2015-05-13 15:24:55 +01:00
Martyn Taylor bfc9d8f72d [maven-release-plugin] prepare release 1.0.0 2015-05-13 15:24:16 +01:00
Martyn Taylor a17c828b85 Ensure all references to the project use ActiveMQ Artemis 2015-05-13 11:51:26 +01:00
Martyn Taylor 1013e7f1dd [maven-release-plugin] prepare for next development iteration 2015-05-12 13:51:35 +01:00
Martyn Taylor d6466b7a1b [maven-release-plugin] prepare release 1.0.0 2015-05-12 13:50:56 +01:00
Martyn Taylor 3e34044d2b [maven-release-plugin] prepare for next development iteration 2015-05-11 21:50:41 +01:00
Martyn Taylor d2de238a30 [maven-release-plugin] prepare release 1.0.0 2015-05-11 21:48:17 +01:00
jbertram 2cbeedab89 Clean up 'ActiveMQ' refs in literals 2015-05-11 11:23:35 -05:00
Martyn Taylor a176a542aa Log the protocol module name on boot 2015-05-07 14:59:46 -04:00
Martyn Taylor 77efc950af ACTIVEMQ6-100 Add support for HornetQ clients 2015-05-07 14:59:46 -04:00
jbertram f509ce7519 ACTIVEMQ6-70 broker resource limits
Implements basic limits on the number of connections and number of
queues a particular user can create to/on the broker.
2015-05-04 20:37:20 -05:00
jbertram 028529b8a9 Avoid potential NPEs seen on tests 2015-04-30 09:26:03 -05:00
Andy Taylor ac5bb8fd6c renamed config to broker.xml 2015-04-29 10:30:32 +01:00
Justin Bertram 8f52a622d0 ACTIVEMQ6-1 Artemis rename
Based on the Apache ActiveMQ community vote this project is being
renamed "Artemis."
2015-04-27 17:48:02 -04:00
Clebert Suconic f509c075c6 ACTIVEMQ6-1 Artemis rename
This commit is a simple mv of the files.. We required two commits to preserve history,
one to git mv, one for the actual changes...

otherwise history would be lost

Based on the Apache ActiveMQ community vote this project is being
renamed "Artemis."
2015-04-27 17:44:45 -04:00