Commit Graph

503 Commits

Author SHA1 Message Date
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
jbertram a6974596a0 ARTEMIS-739 fix large msg file leak on copy 2016-09-28 14:20:07 -04:00
Francesco Nigro b4225832e0 ARTEMIS-759 Improve exception message on queue configuration builder 2016-09-28 13:45:17 +02:00
jbertram e53998bf3b ARTEMIS-755 Fix divert MBean warning 2016-09-27 10:38:43 -05:00
Ville Skyttä 1a4fe92802 Fix WaitNotInLoop issues flagged by new Error Prone 2016-09-27 14:28:29 +03:00
Ville Skyttä f2c2ed32da Fix closing quorums on QuorumManager.stop 2016-09-26 13:38:08 -04:00
Ville Skyttä 056920e6ab Don't generate unnecessary ID's on divert 2016-09-26 13:35:30 -04:00
Ville Skyttä b69af66f47 Expose disk-scan-period, max-disk-usage, and global-max-size in server control 2016-09-26 13:33:23 -04:00
Ville Skyttä 494c85d624 Java 1.7 build fix 2016-09-25 21:13:55 +03:00
Ville Skyttä 775862ee72 Add missing @Override 2016-09-25 21:13:08 +03:00
Clebert Suconic b98c24e749 NO-JIRA: using scheduled component on message counters 2016-09-23 09:09:37 -04:00
Ville Skyttä e98da5f288 Make bunch of private fields final 2016-09-23 09:06:08 -04:00
Francesco Nigro c002cf13b8 ARTEMIS-743 Created QueueConfig that replace and enable additional behaviours on QueueFactory.
Added Filter predicate.
2016-09-22 15:45:14 +01: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
Ville Skyttä 589adbccac ARTEMIS-740 Auto-reload diverts from broker.xml 2016-09-21 17:00:21 -04:00
Ville Skyttä 53b84624f3 Rename misleading divertBindingNotExists to divertBindingAlreadyExists 2016-09-21 16:56:39 -04:00
Ville Skyttä 02a7ac2949 Add missing @Overrides 2016-09-21 16:31:14 -04:00
Andy Taylor 680f84b5a2 ARTEMIS-742 = replication quorum broken
https://issues.apache.org/jira/browse/ARTEMIS-742
2016-09-21 13:52:36 +01:00
Martyn Taylor 74742dcb66 Add Unique ClientID on Server 2016-09-16 16:05:20 +01:00
Jeff Mesnil c33f29631f ARTEMIS-714 Add suport for DataSource and SQLProvider
* add DataSource property to DatabaseStorageConfiguration to be able to
  communicate with the data store using this DataSource instance instead
  of relying on the creation the SQL connnection using the JDBC connection
  URL/driver class name tuple.
* add SQLProvider.Factory property to DatabaseStorageConfiguration to
  externalize the choice of the SQLProvider instead of relying on
  hard-coded choices. If the property is null, the current behaviour will
  be used (determing the SQLProvider based on the driver class name)
* bindingsJournal and messageJournal are already started in the start()
  method. Remove redundant calls that were creating unused JDBC
  connections that are never closed.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-714
2016-09-15 11:15:24 -04:00
Clebert Suconic 9cea1598d6 Improving ScheduledComponent to avoid bursts after long waits 2016-09-15 16:02:49 +01:00
Clebert Suconic 6b5fff40cb ARTEMIS-734 small improvement: use ActiveMQScheduledComponent 2016-09-15 16:02:49 +01:00
Vlado Pakan 2509eeb818 ARTEMIS-734 Message expired while being moved on the cluster bridge does not follow the address setting configuration. 2016-09-15 16:02:49 +01:00
Ville Skyttä 7bff07d5b1 Add missing @Overrides 2016-09-14 13:22:20 +03:00
Clebert Suconic f8278ec99c ARTEMIS-727 Improving Thread usage on JDBC
https://issues.apache.org/jira/browse/ARTEMIS-727
2016-09-12 14:32:40 -04:00
Martyn Taylor 9a4a3647a7 ARTEMIS-726 JDBC storage manager should not use FileMonitors 2016-09-09 09:50:47 -04:00
Clebert Suconic 87d3c1c9bd ARTEMIS-716 max replication = 0 should mean do not make copies at all 2016-09-08 17:17:04 +01: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
Martin Styk 275924e8f4 ARTEMIS-710 Avoid inefficient iteration over Map 2016-08-31 14:48:31 -04:00
Clebert Suconic 03b938468a ARTEMIS-657 Fixing JORAM AMQP Tests 2016-08-31 14:26:10 -04:00
jbertram 68d1e980fc ARTEMIS-699 group ID reaper tx bug 2016-08-30 17:27:47 -04:00
Ville Skyttä 4ef9c5e238 Javadoc error fixes 2016-08-25 14:22:32 -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ä 8c6e044745 Potential resource leak fixes 2016-08-25 14:22:32 -04:00
Ville Skyttä d57378f2af Missing @Override fixes 2016-08-25 14:22:32 -04:00
jbertram 3fd9fbe2d0 ARTEMIS-686 shutdown external components 2016-08-19 14:00:17 -05: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
Clebert Suconic ad21b5b70b ARTEMIS-591 Fixing typos 2016-08-15 22:04:38 -04:00
Clebert Suconic 18563e4539 ARTEMIS-591 Improvement on Timeout check 2016-08-15 14:09:37 -04:00
bayern39 3def84e533 [ARTEMIS-591] Wrong XAException return code when broker timeout is hit 2016-08-15 14:08:50 -04:00
jbertram 6038db8b99 ARTEMIS-577 log SSLHandshakeException root cause 2016-08-15 13:58:25 -04:00
jbertram cfbe06f3bc ARTEMIS-656 support host verification for SSL cert 2016-08-15 13:58:25 -04:00
jbertram b54de460c6 ARTEMIS-592 finer-grained security for queues 2016-08-11 18:32:54 -04:00
Clebert Suconic c568a9774f ARTEMIS-601 Reload manager wasn't working with backups 2016-08-11 17:25:08 -04:00
Clebert Suconic 3099c4bd8c ARTEMIS-601 Highlighting reload events with log.info 2016-08-10 18:37:53 -04:00
jbertram 652f8265c8 ARTEMIS-678 refactor log for expiry optimization 2016-08-10 15:35:53 -04:00
Clebert Suconic 312ef0e53e Deploying instead of Trying to on logs 2016-08-10 15:09:37 -04:00
Martyn Taylor 7afd0fb028 ARTEMIS-677 Support websocket subprotocol handshakes 2016-08-10 11:07:47 -04:00
Clebert Suconic 04d482037c ARTEMIS-601 Implementing reload manager on JMS Destinations and Address Settings 2016-08-10 10:03:40 -04:00
Clebert Suconic 754976f8c1 ARTEMIS-601 Fixing use of spaces on the server and reloading 2016-08-09 11:43:04 -04:00
Ville Skyttä abf948457e Add missing @Override 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
jbertram 1ef9e74f14 ARTEMIS-601 load runtime security cfg file changes 2016-08-07 20:17:56 -05:00
jbertram 85857ab8eb Fix improper IDs in logger 2016-08-05 17:09:33 -05:00
Martyn Taylor 2f721866ab ARTEMIS-636 Add AMQP Hard Soft Limit for BLOCK 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
Clebert Suconic e8e871ccec fixing logger on PostOffice 2016-08-02 14:32:23 -04:00
Clebert Suconic fccf1c8243 ARTEMIS-565 Dealing with ClassLoading issues on managements. Caching provider loaded 2016-07-29 13:58:37 -04:00
Ville Skyttä 7a5d1434fb Avoid NPE on testMultipleSenders null response 2016-07-28 15:25:45 -04:00
Ville Skyttä 68c7c2575d Remove dead code 2016-07-28 12:28:18 -04:00
jbertram c408ece7e7 ARTEMIS-569 correct method spelling 2016-07-28 08:14:09 -05:00
jbertram 3914f1aa8b ARTEMIS-647 track 'killed' msg count on queue
A 'killed' message is one that has been sent to a dead-letter address
or otherwise removed from the queue due to exceeding the max delivery
attempts.
2016-07-27 16:44:59 -04:00
jbertram a80c2bb442 ARTEMIS-565 more JSON fixes 2016-07-27 11:53:21 -05:00
jbertram 32abe61876 ARTEMIS-646 track expired msg count on queue 2016-07-26 16:15:02 -05:00
Clebert Suconic 76938fe44a ARTEMIS-565 more tweaks on the JSON replacement 2016-07-26 16:05:17 -04:00
jbertram 1de4dbbe27 ARTEMIS-565 fix more broken Json stuff 2016-07-26 14:31:50 -04:00
Ville Skyttä 5c7ff4a593 Fix scaledownhandler lookup duplicate handling 2016-07-26 14:26:32 -04:00
Clebert Suconic b7efd5db3b ARTEMIS-565 A few fixes around the JSON change 2016-07-26 14:17:45 -04:00
jbertram 5d71ffc5e6 ARTEMIS-587 add more JSON JMX mgmt methods to core 2016-07-26 11:39:19 -04:00
Ville Skyttä aed49b3894 Spelling fixes 2016-07-26 14:24:45 +03:00
John D. Ament d0ecf0f3a5 ARTEMIS-565 Replace json.org with javax.json
Javax.json is a newer JSR, but has an ASF compliant version, is pretty close to the original JSON.org API and will support a standard annotation based JSON-B solution at some point soon.
Updated integration tests and removed JSON.org from license.
2016-07-25 21:44:57 -04:00
Martyn Taylor bed73f57b3 ARTEMIS-641 Enable filtering on address in server consumer 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 707b51796a ARTEMIS-611 fix logging 2016-07-20 15:54:28 -05:00
Ville Skyttä 39edf958a1 Add missing @Override annotations 2016-07-19 16:09:12 +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
jbertram dc76e2a6a0 ARTEMIS-640 Allow config of cxn TTL check interval
Add connection-ttl-check-interval configuration attribute to allow
control of how frequently connection TTL checks are performed.
2016-07-18 17:06:26 -05:00
jbertram 7a57503e1c ARTEMIS-631 log invalid filter trace at DEBUG 2016-07-15 15:40:25 +01:00
jbertram e9db9c286d ARTEMIS-628 add BROWSE role 2016-07-12 16:21:57 -05:00
jbertram f3a8619d7e ARTEMIS-626 re-use context for LDAP 2016-07-11 13:08:34 -05:00
Clebert Suconic 246d11c6b1 ARTEMIS-616 Use Call timeout on replication flow control 2016-07-06 19:12:25 -04:00
jbertram 4f36033c28 ARTEMIS-584 fix test 2016-07-06 19:11:13 -04: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
Clebert Suconic 8154120027 ARTEMIS-612 Improving Failback's max replication
The server will always restart now, with older files being removed.
The system will now move current data into ./oldreplica.#, and remove old ones.
All the logic for moving these files is encapsulated at FileMoveManager.
2016-07-05 16:51:23 -05:00
Ville Skyttä f1dc94534f Combine identical catch blocks 2016-07-05 14:18:01 -04:00
Dmitrii Tikhomirov 2170acc417 [ARTEMIS-603] Remove e.printStackTrace() from code 2016-06-30 18:58:09 +02:00
Clebert Suconic a2f936c340 NO-JIRA Adding check back in place
This was to avoid one failing test making other tests to fail in cascade around libaio.
2016-06-29 16:13:55 -04:00
Clebert Suconic 5dc5a242bb ARTEMIS-577 & ARTEMIS-596 Fixing API compatibility.
This is also fixing a build issue.
2016-06-27 12:08:11 -04:00
jbertram 0d24e63647 ARTEMIS-577 clarify SSL handshake failure log 2016-06-27 10:15:30 -04:00
jbertram ce9ea1760a ARTEMIS-569 fix bridge producerWindowSize
Something bizarre happened with commit
8f52a622d0 in April 2015. It reverted the
changes from both c1111cc156 and
ada112a6a3. This commit fixes that.
2016-06-24 16:54:48 -05:00
jbertram e1b6393f70 ARTEMIS-579 document reload for JAAS modules 2016-06-20 13:41:09 -05:00
jbertram e02ec69021 ARTEMIS-563 update POODLE message 2016-06-20 15:47:37 +01:00
jbertram eb785b4194 ARTEMIS-409 clarify STOMP login failure response 2016-06-17 17:16:51 -05: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
jbertram 7715b5ee12 ARTEMIS-529 support dual auth
A new feature whereby 2-way SSL connections can be authenticated differently
than non-SSL connections.
2016-06-17 11:07:03 -05: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
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
Clebert Suconic 17ffcd48c2 fixing log.trace 2016-06-08 21:41:57 -04: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
Clebert Suconic f0f431acea Adding more time on checkWeakReferences
This will fix a few intermittent failures
2016-06-07 17:03:41 -04:00
Ingo Weiss 685442861e [ARTEMIS-558] java.util.MissingFormatArgumentException: Format specifier '%s' during backup activation 2016-06-07 17:01:51 -04:00
Clebert Suconic 2e6586548b ARTEMIS-552 Replication target being finished can lead to instability on live
https://issues.apache.org/jira/browse/ARTEMIS-552
2016-06-06 16:28:51 -04: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
Clebert Suconic 8fdd1f6496 Revert "ARTEMIS-539"
This reverts commit a3efafd975.
This reverts commit cf3396a3a6.
This reverts commit 17ea05bce6.
This reverts commit af4aa9fcb6.
2016-06-06 14:12:25 -04:00
Clebert Suconic 17ea05bce6 ARTEMIS-539 fixing default address on client as well 2016-06-03 12:04:20 -04:00
Martyn Taylor 2932a2a711 Ensure ResultSet is closed on table operation 2016-06-03 12:03:00 -04:00
Martyn Taylor 634fc1b482 Added MySQL Support 2016-06-01 19:04:25 +01:00
Martyn Taylor 466d43c63d Refactored JDBC Sequential File Factory 2016-06-01 16:09:42 +01:00
Clebert Suconic af4aa9fcb6 ARTEMIS-539 ServerSession defaultAddress can get out of sync after full queues 2016-05-25 14:10:17 -05: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
Dejan Bosanac 5db163753d https://issues.apache.org/jira/browse/ARTEMIS-537 - allow artemis to work properly with karaf jaas implementation 2016-05-25 09:33:56 -04:00
jbertram d9b721b35b ARTEMIS-405 correct some missing docs 2016-05-23 18:26:21 -04:00
jbertram 76f6c9c3bd Make a few tests more robust 2016-05-20 11:24:55 -05:00
Clebert Suconic 3e2adf123b ARTEMIS-524 Paging could lose data eventually after crashes
https://issues.apache.org/jira/browse/ARTEMIS-524

I am keeping all the debug ad tracing I added during the debug of this issue,
for that reason this commit may look longer than expected

The fix will be highlited by the tests added on org.apache.activemq.artemis.tests.integration.client.PagingTest
2016-05-17 20:28:40 -04:00
jbertram 04c9564d77 ARTEMIS-517 API to check sync with backup 2016-05-16 10:01:18 -05: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
jbertram 19147113cb Fix RaceOnSyncLargeMessageOverReplication2Test 2016-05-05 20:21:18 -05:00
jbertram 5c7aaa760a Auto-delete JMS, not just core 2016-05-05 11:43:39 -05:00
jbertram 500a734d04 Fix AutoDeleteJmsQueueTest 2016-05-04 15:26:59 -05:00
jbertram cbfd819541 ARTEMIS-512 fix variable name conflict 2016-05-04 13:04:10 -05:00
Martyn Taylor 1c3d63516f ARTEMIS-514 Add support for LargeMEssages backed by Database 2016-05-04 13:36:28 -04:00
jbertram 4bab1f0644 ARTEMIS-512 NPEs in LDAP authz 2016-05-03 14:22:32 +01:00
Clebert Suconic f0df9d8c78 Individualizing logger.traces on org.apache.activemq.artemis.core.server (artemis-server project)
This makes it easier to debug through loggers
2016-04-28 14:35:11 -04: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
Bernd Gutjahr 1591d25692 ARTEMIS-507 New thread pool for client threads
- Added a thread pool executor, that combines cached and fixed size thread pooling.
  It behaves like a cached thread pool in that it reuses exising threads and removes
  idle threads after a timeout, limits the maximum number of threads in the pool, but
  queue additional request instead of rejecting them.
- changed existing code to use the new thread pool instead of a fixed-size thread pool in
  all places that are configured with a client thread pool size.
2016-04-27 11:03:32 +01:00
Ingo Weiss 82019cb3be [ARTEMIS-502] AMQ224044, error acknowledging message: java.lang.NullPointerException, can happen sometimes during load 2016-04-25 14:33:17 +01: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
Bernd Gutjahr 1b5396c033 Protected ActiveMQClient API against misuse.
1. Changed public fields in ActiveMQClient to private and added getters.

Exposing fields for thread pool sized allow to modify them in undesired ways.
I made these fields private and added corresponding getter methods.
In addition, I renamed the field 'globalThreadMaxPoolSize'
to 'globalThreadPoolSize' to be more consistent with the
'globalScheduledThreadPoolSize' field name.
I also adapted some tests to always call clearThreadPools after
the thread pool size configuration has been changed.

2. Protect against injecting null as thread pools

ActiveMQClient.injectPools allowed null as injected thread pools.
The effect was that internal threads pools were created,
but not shutdown correctly.
2016-04-20 15:29:25 +01:00
Clebert Suconic b89faae458 ARTEMIS-490 Fixing new largeMessage copy 2016-04-20 10:08:29 -04:00
Clebert Suconic bd3d0492fd ARTEMIS-482 testsuite fixes:
The new Executor operationr needs to be synchronized as a few tests are failing because of this
another fix on the test base class
2016-04-20 14:05:17 +01:00
jbertram 9d7a49b388 ARTEMIS-417 more broker-level JMX attrs 2016-04-19 23:00:32 -04:00
Clebert Suconic 03b2650990 ARTEMIS-482 fixing testsuite. Stopping Executor at the proper place
You have to stop the InVMExecutor after servers were stopped otherwise tests may hang
2016-04-19 17:35:29 -04:00
Clebert Suconic e81fa5c359 ARTEMIS-490 Fixing LargeMessage copy through replication
this will fix cases like DLQ and Diverts
2016-04-19 15:00:09 +01:00
Ingo Weiss e378e4f88f ARTEMIS-480 BridgeReconnectTest.testDeliveringCountOnBridgeConnectionFailure fails due to racing condition 2016-04-18 17:59:44 -04:00
jbertram 30907ffd8c ARTEMIS-400 allow SSL store reload 2016-04-18 17:51:46 -04:00
jbertram 5591bcabcc ARTEMIS-405 JMX attributes doc 2016-04-18 17:50:09 -04:00