Commit Graph

1014 Commits

Author SHA1 Message Date
Clebert Suconic dc26ac96b4 ARTEMIS-1156: moving our collections on its own package 2017-05-12 10:06:05 -04:00
Michael André Pearce c1d55aa84f ARTEMIS-1156: FIX: Long Autoboxing occurring on Hot Path
Building on ARTEMIS-905 JCtools ConcurrentMap replacement  first proposed but currently parked by @franz1981, replace the collections with primitive key concurrent collections to avoid auto boxing.

The goal of this is to reduce/remove autoboxing on the hot path.
We are just adding jctools to the broker (should not be in client dependencies)
Like wise targeting specific use case with specific implementation rather than a blanket replace all.

Using collections from Bookkeeper, reduces outside tlab allocation, on resizing compared to JCTools, which occurs frequently on testing.
2017-05-12 10:05:51 -04:00
Timothy Bish 4ad78c7fd0 ARTEMIS-1159 Fixes and Improvements to the AMQP test client.
Port fixes to the AMQP test client recently made in the 5.x version.
Fixes some thread safety issues in the Transport.  Ensures more 
timely shutdown of the Connection executor.  Uses a dynamic Proxy 
to generate Read-Only Proton wrappers instead of the hand crafted 
versions.  Adds additional logging for test data
2017-05-11 16:46:22 -04:00
Clebert Suconic 02dcfe0468 ARTEMIS-1158 exposing Netty.channelID properly 2017-05-10 21:50:19 -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 890e381371 NO-JIRA: bumping 2.2.0-SNAPSHOT release on extra-tests 2017-05-08 12:06:18 -04:00
Christopher L. Shannon (cshannon) 9fdba8292f ARTEMIS-898 - Adding support for XML configuration of Broker Plugins
Broker plugins can now be added to the broker through XML config.
2017-05-08 11:59:41 -04:00
Francesco Nigro 21c9ed85cf ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
- NIO/ASYNCIO new TimedBuffer with adapting batch window heuristic
- NIO/ASYNCIO improved TimedBuffer write monitoring with
  lightweight concurrent performance counters
- NIO/ASYNCIO journal/paging operations benefit from less buffer copy
- NIO/ASYNCIO any buffer copy is always performed with raw batch copy
  using SIMD instrinsics (System::arrayCopy) or memcpy under the hood
- NIO improved clear buffers using SIMD instrinsics (Arrays::fill) and/or memset
- NIO journal operation perform by default TLABs allocation pooling (off heap)
  retaining only the last max sized buffer
- NIO improved file copy operations using zero-copy FileChannel::transfertTo
- NIO improved zeroing using pooled single OS page buffer to clean the file
  + pwrite (on Linux)
- NIO deterministic release of unpooled direct buffers to avoid OOM errors
  due to slow GC
- Exposed OS PAGE SIZE value using Env class
2017-05-08 11:55:28 -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 0711b35e3c NO-JIRA Fix a test that is not actually testing anything right now
The test is improperly configured and the try / catch logic swallows any
errors making it seem as if the test is passing.
2017-05-05 16:05:04 -04:00
Clebert Suconic 4f22a56066 NO-JIRA Trivial test fix 2017-05-05 14:45:21 -04:00
Clebert Suconic 800976ec76 NO-JIRA: Trivial test fix on StompPluginTest 2017-05-04 15:58:15 -04:00
Bennet Schulz f82623a20c ARTEMIS-904 Remove cyclic dependencies from artemis-cli
move classes and methods to their correct location to avoid cyclic dependencies between packages and classes.

ARTEMIS-904 Remove cyclic dependencies from artemis-cli

move classes and methods to their correct location to avoid cyclic dependencies between packages and classes.

ARTEMIS-904 Remove cyclic dependencies from artemis-cli

move classes and methods to their correct location to avoid cyclic dependencies between packages and classes.
2017-05-04 10:25:06 -05:00
Bernd Gutjahr 7aa50546b3 ARTEMIS-1112: Fixed occasionally failing test
There was a typo in this test that could cause it to fail.
2017-05-04 11:18:56 +02:00
Bernd Gutjahr 6017e305d9 ARTEMIS-1112: Added wait-for-activation option to shared-store-master config
Added a wait-for-activation option to shared-store master HA policies.
This option is enabled by default to ensure unchanged server startup behavior.

If this option is enabled, ActiveMQServer.start() with a shared-store master server will not return
before the server has been activated.
If this options is disabled, start() will return after a background activation thread has been started.
The caller can use waitForActivation() to wait until server is activated, or just check the current activation status.
2017-05-03 16:40:15 -04:00
Timothy Bish cf3e2bf7f0 ARTEMIS-267 Add test for handling of AMQP header and durability
Adds a test that validates that messages that are either lacking a
header or are set to be non-durable are not persisted and are not
recovered on broker restart.
2017-05-03 16:33:12 -04:00
Clebert Suconic 0146109d6a ARTEMIS-1140: Trivial test fix 2017-05-03 16:17:32 -04:00
Christopher L. Shannon (cshannon) 1e1ede84c0 ARTEMIS-898 - Adding Plugin Support
Adding a new ActievMQServerPlugin interface to support adding custom
behavior to the broker at certain events such as connection or session
creation.

https://issues.apache.org/jira/browse/ARTEMIS-898
2017-05-03 11:21:32 -04:00
Clebert Suconic 303d97c76d NO-JIRA: Trivial test fixes 2017-05-03 10:32:22 -04:00
Clebert Suconic 174b238b28 NO-JIRA: Trivial test fix 2017-05-03 09:33:12 -04:00
Timothy Bish ba7b8aff59 ARTEMIS-1139 Add a few tests using Qpid JMS of AMQP over WS
Adds a couple tests using Qpid JMS to validate that AMQP over
WS is working.
2017-05-02 21:18:07 -04:00
Clebert Suconic 757161f3d2 NO-JIRA: Trivial test fix 2017-05-02 21:16:10 -04:00
Justin Bertram 578c0fabb2 ARTEMIS-1137 handle empty routing type on restart 2017-05-02 10:06:42 -05:00
Zoran Regvart 6db0c50272
Removes deprecated use and raw types
This cleans up the Netty implementation by replacing deprecated usage
and adds type parameters to raw types used.
2017-05-02 11:00:56 +02:00
Clebert Suconic 6df8c3a28d Revert " ARTEMIS-1112: don't block live activation if another live server is running"
This reverts commit 2f175b8d4e.
2017-05-01 09:50:45 -04:00
Timothy Bish 90efd86133 ARTEMIS-547 tests for auth on attach 2017-04-28 13:10:10 -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
Justin Bertram 444d7e392e ARTEMIS-1102 fix checkstyle 2017-04-28 10:42:55 -05:00
Timothy Bish bad6acb58f ARTEMIS-1123 Major AMQP Test Suite refactoring
Refactor the AMQP test suite grouping tests into more logical unit
tests and adding additional coverage in many areas.  Adds some negative
validation tests to cover features that were only partially tested.

Brings in tests from ActiveMQ 5.x that were not yet ported to Artemis
to increase coverage amd test scenarios previously seen to have issues
in the 5.x broker.

Improve tests that were failing sporadically due to not waiting for
broker stats to be updated after async calls were made.
2017-04-28 10:16:21 +01:00
Justin Bertram 7e0fedf52e ARTEMIS-590 connector option to use default SSL context 2017-04-28 10:14:09 +01:00
Justin Bertram 004eda42a2 ARTEMIS-1102 cert-based auth impl for OpenWire 2017-04-28 10:11:25 +01:00
Justin Bertram 82b6a9678d ARTEMIS-1113 STOMP + management-address fix 2017-04-28 10:10:13 +01:00
Bernd Gutjahr 2f175b8d4e ARTEMIS-1112: don't block live activation if another live server is running
Instead of going directly into backup mode within the shared-store
live activation, we just change the HA-policy to slave and return
to the caller - ActiveMQServerImpl.internalStart().
The caller will then handle the backup activation as usual
in a separate thread, such that EmbeddedJMS.start() can return.

Also added a related integration test.
2017-04-26 15:23:24 -05:00
Martyn Taylor 1c84bd39c4 ARTEMIS-826 Fix MQTT protocol detection 2017-04-25 13:53:21 +01:00
Howard Gao 694a5092b6 ARTEMIS-1128 QueueControlImpl.sendMessage() fixes
sendMessage() may throw ActiveMQException that causes CNFE
at the management client. Also it should check if headers
in the message is null (to prevent NPE).
2017-04-24 13:52:51 -05:00
Clebert Suconic 7facd28a18 NO-JIRA: Trivial test fix 2017-04-23 22:12:23 -04:00
Clebert Suconic 23b3d2182c ARTEMIS-1093 Moving FQQN methods into CompositeAddress 2017-04-23 16:01:20 -04: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 bfe2bdd7b2 ARTEMIS-1115 Traces and tests on JDBC Persistence 2017-04-19 00:50:58 -04:00
Martyn Taylor 7b68b0a49a ARTEMIS-1115 Call CriticalIOListener on JDBC Error 2017-04-19 00:50:58 -04:00
Timothy Bish 0260a304b4 ARTEMIS-1123 Clean up and add new AMQP tests
Adds some new AMQP protocol handling tests brought forward from
ActiveMQ 5.x as well as cleaning up some of th existing tests
code to make adding some other tests easier.
2017-04-19 00:50:13 -04:00
Clebert Suconic 04535ee762 NO-JIRA Fixing AddressControlTest 2017-04-18 19:09:01 -04:00
Clebert Suconic c82ac631b8 NO-JIRA fixing NettySecurityClientTest 2017-04-18 15:14:21 -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 ddacda5062 ARTEMIS-1114 Missing records after compacting
This is fixing an issue introduced on 4b47461f03 (ARTEMIS-822)
The Transactions were being looked up without the readLock and some of the controls for Read and Write lock
were broken after this.
2017-04-14 01:13:46 -04:00
Clebert Suconic 9c026cac28 NO-JIRA Fixing testReceiveWildcardTopicMatchDoubleWildcard
removing JmsTopicWildcardSendReceiveTest::testReceiveWildcardTopicMatchDoubleWildcard

Accordingly to bisect, this test was broken at 21b64b3e4f

and it contradicts the commit done at 21b64b3e4f

So, this is being removed
2017-04-13 19:18:37 -04:00
Francesco Nigro aa9ac4a914 ARTEMIS-1084 Throw RunTime on bad Oracle table size 2017-04-13 19:17:10 -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
Clebert Suconic 3ff9057ac4 NO-JIRA Trivial test fix on ProtonTest::testAddressControlSendMessageWithText 2017-04-12 11:24:16 -04:00
Bernd Gutjahr 557f02ba4d ARTEMIS-1108: Removed AIOFileLockManager
AIOFileLockManager doesn't work on NFS-mounted share store directories.
Since the GFS2 bug https://bugzilla.redhat.com/show_bug.cgi?id=678585
has been fixed end of 2011, the class AIOFileLockManager is no longer needed and I have removed it.
2017-04-12 10:45:26 -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 5d407a88b3 NO-JIRA: Fixing ProtonTest::testAddressControlSendMessage 2017-04-11 19:08:02 -04:00
Andy Taylor fb3de112e4 ARTEMIS-1107 - fix and Test AddressControl.sendMessage()
https://issues.apache.org/jira/browse/ARTEMIS-1107
2017-04-11 08:29:43 +01:00
Justin Bertram 67a06588f4 ARTEMIS-1107 test AddressControl.sendMessage
Add tests for this management operation with both core and AMQP encoded
messages. Also fix a few problems with the implementation like not
checking the passed-in headers for null and not counting messages
properly.
2017-04-11 07:57:57 +01: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 53a801043b NO-JIRA test fix (PotentialOOMELoggingTest) 2017-04-07 09:11:37 -05:00
Clebert Suconic 01362bbb1d ARTEMIS-1100 Store Header on AMQP message 2017-04-07 09:11:11 -05:00
Clebert Suconic 029132c1f4 NO-JIRA: Cleanup on Smoke test 2017-04-06 19:56:30 -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
Clebert Suconic c767e93bf5 ARTEMIS-1089 Simplifying smoke tests 2017-04-05 15:55:09 -04:00
Clebert Suconic dd27fb587f ARTEMIS-1089 Moving smoke tests under ./tests/smoke-tests
This is moving the smoke tests creates as part of the relication tests.

They are also now based on junit tests.

And to support starting servers I am exposing basedir to unit tests in general.
2017-04-05 13:06:55 +01:00
Justin Bertram 073a280629 ARTEMIS-1092 Validated user + AMQP fix
When populate-validated-user = true AMQP messages can cause exceptions.
This feature isn't particularly applicable to AMQP so this commit
eliminates the exception and leaves the AMQP messages untouched
even if populate-validated-user = true. In other words,
populate-validated-user + AMQP is not supported.
2017-04-04 14:46:22 -05: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
Clebert Suconic afd1835a8f NO-JIRA: Simple Test fix on DeadLetterAdressTest 2017-04-01 15:49:42 -04:00
Clebert Suconic 9c472013e2 NO-JIRA: Removing Flow Control tests
These tests are duplicated on the regular testsuite and they were fixed there
2017-04-01 11:17:08 -04:00
Clebert Suconic 5c6c42b940 NO-JIRA: minor test fix 2017-03-31 22:50:01 -04:00
Clebert Suconic 9956f951a6 NO-JIRA: Avoiding a test failure on slow Jenkins
JmsNettyNioStressTest is using Persistent messages
depending on the hardware used this may eventually fail.
2017-03-31 19:28:13 -04:00
Clebert Suconic 1ca1b4baf9 ARTEMIS-1042 Commenting out test 2017-03-30 22:23:20 -04:00
Clebert Suconic d779afe874 NO-JIRA: Fixing test hunging on OpenWire 2017-03-30 21:56:46 -04:00
Justin Bertram 6cf9a98c49 ARTEMIS-1065 fix broken test 2017-03-30 21:20:37 -04:00
Clebert Suconic aafb2087fa Revert "NO-JIRA upgrade maven-surefire-plugin to 2.19.1"
This reverts commit 63054a0706.
2017-03-29 21:43:06 -04:00
Justin Bertram 6ddcda55db NO-JIRA server control test update 2017-03-29 16:00:26 -04:00
Martyn Taylor 42bf845edb ARTEMIS-1084 Throw RunTime on bad Oracle table size 2017-03-29 14:59:12 +01:00
Jiri Danek 63054a0706 NO-JIRA upgrade maven-surefire-plugin to 2.19.1 2017-03-29 09:27:27 -04:00
Howard Gao 82c720bdfb ARTEMIS-1071 Invalid Type exception handling improvements
If broker fails to decode any packets from buffer, it should
treat it as a critical bug and disconnect immediately.
Currently broker only logs an error message.
2017-03-29 09:19:52 -04:00
Justin Bertram ce3adf6fa8 ARTEMIS-1065 get queue names by routing type 2017-03-29 09:18:16 -04: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
Justin Bertram b7e11f92b6 ARTEMIS-1064 AddressControl routingType fix 2017-03-28 15:30:52 -05:00
Andy Taylor ec7e6d7ea7 ARTEMIS-1075 - Add Routing Type to QueueControl management API
https://issues.apache.org/jira/browse/ARTEMIS-1075
2017-03-28 10:40:52 +01:00
Clebert Suconic 07f7916ed3 NO-JIRA: Cleanup tests 2017-03-24 18:32:38 -04:00
Martyn Taylor a9c3e437d8 ARTEMIS-1068 Add Routing Exclusivity test for JMS AMQP 2017-03-24 17:40:36 -04:00
Justin Bertram 427039ef38 ARTEMIS-1068 routingType + AMQP fixes 2017-03-24 15:15:10 -05:00
Clebert Suconic 2c9b02806d ARTEMIS-1056 Removing PartialPooledByteBufAllocator 2017-03-23 18:16:48 -05:00
Clebert Suconic 1c88c06abb ARTEMIS-1059 option to monitor Paging counters
Adding System.property artemis.debug.paging.interval (in seconds)
to debug paging counters.
2017-03-23 09:35:40 -05:00
Justin Bertram bf4d7767af NO-JIRA fix race in cluster test 2017-03-22 23:32:37 -04:00
Martyn Taylor e33b7af5ac ARTEMIS-1061 Ack MQTT PubRel management messages 2017-03-22 23:26:32 -04:00
Martyn Taylor 10c9d797d1 NO-JIRA Bump extra tests version 2017-03-22 11:45:47 +00:00
Clebert Suconic 65ac7f700b ARTEMIS-1052 Proper Expiry over AMQP 2017-03-20 18:33:31 -04:00
Jiri Danek 7ac27df7a0 ARTEMIS-1052 adding a test for expiry and AMQP
This closes #1106
2017-03-20 18:05:45 -04:00
Clebert Suconic 9385ce4872 NO-JIRA: Adding timeouts on failover tests 2017-03-20 18:04:31 -04:00
Clebert Suconic a40d25c06a ARTEMIS-1042 Fixing AMQPFailoverTest 2017-03-20 18:04:31 -04:00
Timothy Bish a0948928c3 ARTEMIS-60 Validate AMQP sender applied TransactionState
Update the AMQP test client to allow for better inspection of the
delivery updates that happen during normal use.  Use those modification
to check that when the broker's sender accepts and settles a non-settled
disposition it adds a proper TransactionState disposition with the
correct outcome and txn-id in that state.
2017-03-20 16:46:18 -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
Clebert Suconic 4b50d6c431 ARTEMIS-1048 Fixing Unsigned types and Selectors 2017-03-17 18:05:21 -04:00