Commit Graph

891 Commits

Author SHA1 Message Date
Clebert Suconic baeca47b44 ARTEMIS-1287 Another fix on CorePluginTest
Trying to fix this test that's only failing on jenkins
2017-07-14 00:48:12 -04:00
Clebert Suconic 593f99df37 ARTEMIS-1287 Fix on CorePluginTest
Sometimes the message is expired before it reaches the client
2017-07-13 18:14:03 -04:00
Clebert Suconic 31d5758885 ARTEMIS-1288 crash during compact control files issues
The system would become irresponsive if crashed right at the
control file writing.
2017-07-13 17:12:58 -04:00
Clebert Suconic ac6420038f ARTEMIS-1287 Simple test fix SimpleOpenWireTest 2017-07-13 16:16:00 -04:00
Clebert Suconic cc6ca36c51 NO-JIRA Cleanup on testsuite 2017-07-13 13:25:50 -04:00
Clebert Suconic 7137743612 NO-JIRA Making a test harder to fail 2017-07-13 12:32:20 -04:00
Clebert Suconic c1dfc202e7 NO-JIRA: Simple fix on a test 2017-07-13 10:54:58 -04:00
Clebert Suconic 0bfdcb764c NO-JIRA: more fixes on plugintests
some asynchronously things on the server were making these to fail.
add some checkpoints to make sure it happens smoothly.
2017-07-13 09:19:15 -04:00
Clebert Suconic 36a948b225 NO-JIRA: Fixing intermittent failures on PluginTests 2017-07-12 21:15:31 -04:00
Jiri Danek 3e1237c1eb NO-JIRA fix few typos and a docstring 2017-07-11 19:34:06 -04:00
Clebert Suconic 36357e4556 ARTEMIS-1282 ClientSession.ceateQueue (String) method is using temporary queues 2017-07-11 19:24:22 -04:00
Clebert Suconic 7fd17f407f ARTEMIS-1269 Simple Actor to replace certain executions
This is replacing an executor on ServerSessionPacketHandler
by a this actor.

This is to avoid creating a new runnable per packet received.

Instead of creating new Runnable, this will use a single static runnable
and the packet will be send by a message, which will be treated by a listener.

Look at ServerSessionPacketHandler on this commit for more information on how it works.
2017-07-11 14:22:36 -04:00
Clebert Suconic eab0cb587c NO-JIRA: Fixing ReceiveTest::testReceiveImmediate 2017-07-11 11:15:11 -04:00
Martyn Taylor 905098bc4e ARTEMIS-1268 Fix LargeMessages over STOMP 2017-07-11 10:58:40 -04:00
Andy Taylor 9ad3ad4657 ARTEMIS-1277 - purgeOnNoConsumer is not working properly
make sure rollback doesn't add messages back

https://issues.apache.org/jira/browse/ARTEMIS-1277
2017-07-11 11:25:48 +01:00
Odyldzhon Toshbekov 34697d58e1 ARTEMIS-1272 fix mqtt acknowledgement issue 2017-07-10 22:37:58 -04:00
Erich Duda ab92306d81 ARTEMIS-1274 MultipleProducersTest.wrongQueue fails 2017-07-10 14:41:32 -04:00
Jiri Danek ad228e202f NO-JIRA: Addressing some deprecated usage on the codebase
- PROTOCOL_PROP_NAME
- ConnectionLifeCycleListener
- GENERIC_IGNORED_FILTER
- HttpHeaders.Names
- HttpHeaders.Names and similar
2017-07-10 14:06:07 -04:00
gtully d4150be0d9 ARTEMIS-1264 allow role mapping via chained login modules
Add krb5sslloginmodule that will populate userPrincipal that can be mapped to roles independently
Generalised callback handlers to take a connection and pull certs or peerprincipal based on
callback. This bubbled up into api change in securitystore and security manager
2017-07-06 23:41:02 -04:00
Clebert Suconic 01a5a60b37 NO-JIRA: fixing test 2017-07-06 23:37:01 -04:00
Clebert Suconic 89e84e1320 ARTEMIS-1269 Fixing blocked replication
If replication blocked anything on the journal
the processing from clients would be blocked
and nothing would work.

As part of this fix I am using an executor on ServerSessionPacketHandler
which will also scale better as the reader from Netty would be feed immediately.
2017-07-06 19:04:48 -04:00
gtully cda1e018e1 ARTEMIS-1264 Foundation work for authentication with Kerberos using KRB_ cypher suites.
Core client with netty connector and acceptor doing kerberos
jaas.doAs around sslengine init such that the SSL handshake can do kerberos ticket
generaton and validation.
The kerberos authenticated user is then validated with the security manager before
being populated into the message userId.
The feature is enabled with the kerb5Config property. When lowercase it is the
principal. With a leading uppercase char it is the login.config entry to use.
2017-07-06 11:30:25 -04:00
Clebert Suconic 387fca584e ARTEMIS-1269 replication won't finish synchronization 2017-07-01 00:48:33 -04:00
Francesco Nigro 7075e2e457 ARTEMIS-1266 Mapped Journal refactoring
The MAPPED journal refactoring include:
 - simplified lifecycle and logic (eg fixed file size with single mmap memory region)
 - supports for the TimedBuffer to coalesce msyncs (via Decorator pattern)
 - TLAB pooling of direct ByteBuffer like the NIO journal
 - remove of old benchmarks and benchmark dependencies
2017-06-30 16:17:19 +02:00
Howard Gao d50f577cd5 ARTEMIS-1221 Duplicated ID causes LargeMessage lost at backup
When a large message is replicated to backup, a pendingID is generated
when the large message is finished. This pendingID is generated by a
BatchingIDGenerator at backup.

It is possible that a pendingID generated at backup may be a duplicate
to an ID generated at live server.

This can cause a problem when a large message with a messageID that is
the same as another largemessage's pendingID is replicated and stored
in the backup's journal, and then a deleteRecord for the pendingID
is appended. If backup becomes live and loads the journal, it will
drop the large message add record because there is a deleteRecord of
the same ID (even though it is a pendingID of another message).
As a result the expecting client will never get this large message.

So in summary, the root cause is that the pendingIDs for large
messages are generated at backup while backup is not alive.

The solution to this is that instead of the backup generating
the pendingID, we make them all be generated in advance
at live server and let them replicated to backup whereever needed.
The ID generater at backup only works when backup becomes live
(when it is properly initialized from journal).
2017-06-29 00:03:47 +08:00
Christopher L. Shannon (cshannon) a538b969c0 ARTEMIS-1258 - Add ServerSession as an argument to beforeSend and
afterSend
2017-06-27 12:42:40 -04:00
Clebert Suconic 437232b50e ARTEMIS-1253 Renaming NetworkReplicationTest to NetworkIsolationTest 2017-06-27 12:21:37 -04:00
Clebert Suconic 36110da9c8 ARTEMIS-1253 Refactoring renaming stop(boolean) to fail(boolean)
This method name would clash with ServiceComponent
As the real meaning here on this method is just to failover
So I've renamed the method to avoid the clash with my next commit

(I've done this on a separate commit as you may need to redo this
 commit from scratch again in other branches instead of lots of clashes on cherry-pick)
2017-06-26 16:15:39 -04:00
Clebert Suconic 4bae814908 ARTEMIS-1253 Adding testcase 2017-06-26 16:15:39 -04:00
Erich Duda c5a25d3322 ARTEMIS-1250 ClusteredMessageCounterTest.testNonDurableMessageAddedWithPaging fails
Before sending of messages to server 0 begins, the test
should wait until consumer is registered at RemoteQueueBindingImpl
on server 0. Otherwise some messages may not be rebalanced
to server 1.
2017-06-23 13:39:25 +02:00
Clebert Suconic e709fc366d NO-JIRA: Fixing a test 2017-06-22 17:59:55 -04:00
Guillaume Nodet b6dcff039f [ARTEMIS-1196] Fix missing JSON support 2017-06-22 12:16:25 -04:00
Michael Andre Pearce f63f130407 ARTEMIS-1235 delete queues when broker.xml changes
Add extra configuration to address-settings to be able to
control / enable address/queue deletion by pattern,
rather than a global toggle.

Add support in the reload logic to remove address
and/or queues if the address matches an address setting,
where it is enabled.
2017-06-22 12:12:12 -04:00
Jiri Danek 60fad35cfe ARTEMIS-1244 propagate retain flag of received message 2017-06-22 12:00:40 -04:00
Michal Tóth 2b80426153 ARTEMIS-1244 Retain flag code todo comment
Identified possible bug in MQTT receive of missing retained flag.
2017-06-22 11:51:11 -04:00
Michal Tóth e801df7974 ARTEMIS-607 New tests AMQP,MQTT,Stomp interceptor properties tests
Added tests for AMQP, MQTT and Stomp protocol for interceptors.
Tests are checking intercepted message properties.
Linked issue ARTEMIS-607
2017-06-22 11:51:11 -04:00
Clebert Suconic e78a902881 ARTEMIS-1224 fixing test 2017-06-21 20:00:13 -04:00
Howard Gao e258bdf188 ARTEMIS-1242 OpenWire Transactions never removed
Openwire doesn't remove the finished transactions
(committed or rolledback).
2017-06-21 11:22:59 -04:00
Michael Andre Pearce 44b7e455cb ARTEMIS-1205: AMQP Shared Durable Subscriber incorrect behaviour
Use AcitveMQDestination for subscription naming, fixing and aligning queue naming in the process.

The change is behind a configuration toggle so to avoid causing any breaking changes for uses not expecting.
2017-06-19 12:44:13 +01:00
Andy Taylor d2594a280b ARTEMIS-1211 - Allow local transactions when no jta in Resource Adapter
https://issues.apache.org/jira/browse/ARTEMIS-1211
2017-06-19 10:08:30 +01:00
Martyn Taylor f20703a13e ARTEMIS-1215 Fix address validation on sub # 2017-06-14 11:39:39 -05:00
Andy Taylor 30a6ac703e ARTEMIS-1224 - change the journal file size to nearest multiple
https://issues.apache.org/jira/browse/ARTEMIS-1224
2017-06-14 10:16:23 +01:00
Erich Duda 30e8ca656c ARTEMIS-1208 Do not use reconnect-atempts=-1 in tests 2017-06-08 17:38:11 -04:00
Clebert Suconic 4e173cfa8e [ARTEMIS-1209] Just enhancing the OpenWire test with a Wait.waitFor() 2017-06-07 16:27:16 -04:00
Ingo Weiss 45321c65bd [ARTEMIS-1209] JMS OpenWire client cannot read notifications from activemq.notifications topic
Issue: https://issues.apache.org/jira/browse/ARTEMIS-1209
2017-06-07 16:26:33 -04:00
Clebert Suconic 545414c18b ARTEMIS-1206 SetClientID from Core ConnectionFactory is not unique 2017-06-07 15:03:59 -04:00
Timothy Bish a1fb897b43 ARTEMIS-821 Add support for scheduled message for STOMP
Adds headers AMQ_SCHEDULED_DELAY and AMQ_SCHEDULED_TIME to STOMP
protocol handling to allow for delayed and scheduled time of a
message.  The AMQ_SCHEDULED_DELAY brings forward the same option
from the 5.x broker and the AMQ_SCHEDULED_TIME option adds a fixed
time of delivery alternative to match that of AMQP and others.
2017-06-06 11:20:44 -04:00
Michael Andre Pearce 754e9db5fd ARTEMIS-1207: [Core JMS Client] Align order of when setClientId can be called with AcitveMQ5 and QPID
Update ActiveMQConnection to change behaviour

Add test to avoid regression.
2017-06-06 10:57:44 -04:00
Michael Andre Pearce d9d9699732 ARTEMIS-1205: AMQP Shared Durable Subscriber incorrect behaviour.
Add test case, to prove the issue, and then obviously ensure it works, post fix.
Apply changes in logic of createQueueName to handle global better and fix the behaviour.
Create queues so names are same as behaviour with core client.
2017-06-05 22:40:54 +01:00
Guillaume Nodet 71fc3a8bb5 [ARTEMIS-1197] Add missing role to default OSGi configuration 2017-05-31 11:57:14 -04:00
Michael Andre Pearce c65ea783ea ARTEMIS-1189 - Fix checkstyle violations post checkstyle upgrade
After upgrade of checkstyle, resolve violations

remove checkstyle override added as temp measure at point of upgrade forced by sevntu
2017-05-30 13:40:00 -04:00
Ville Skyttä fe505b37b4 Spelling fixes 2017-05-30 10:32:41 +03:00
Clebert Suconic 28a60bcdf7 NO-JIRA: trivial test fix after sync changes 2017-05-25 17:16:31 -04:00
Justin Bertram 4a6dc4f7ba Fixing failing tests after sync changes 2017-05-25 10:53:42 -04:00
Ulf Lilleengen 4f1308d2f0 ARTEMIS-1173: Don't set routing type if null 2017-05-18 09:31:07 -04:00
Andy Taylor 22f4736c88 ARTEMIS-1169 - Implement Interceptors for the AMQP protocol
Add Outgoing call

https://issues.apache.org/jira/browse/ARTEMIS-1169
2017-05-18 08:40:43 +01:00
Christopher L. Shannon (cshannon) 48a2dd1f45 ARTEMIS-1172 - Update beforeDeliver and afterDeliver method arguments
Adding ServerConsumer as an argument to both the beforeDeliver and
afterDeliver methods inside ActiveMQServerPlugin and deprecated the old
methods
2017-05-17 20:38:47 -04:00
Andy Taylor d17ef14c90 ARTEMIS-1169 - Implement Interceptors for the AMQP protocol
https://issues.apache.org/jira/browse/ARTEMIS-1169
2017-05-17 14:07:23 -05:00
Michael Andre Pearce a4e19b432b ARTEMIS-1164: NameNotFoundException when using java.naming.provider.url to set url via jndi
Support setting PROVIDER_URL on initial context to create default connection factories.
2017-05-17 10:28:18 -05:00
Timothy Bish 1a621092f9 ARTEMIS-1167 Adds new broker AMQP idle timeout test
Test broker side handling of AMQP idle timeout
2017-05-16 14:35:36 -04:00
Michael Andre Pearce c6ac1d943c ARTEMIS-1164: NameNotFoundException when using java.naming.provider.url to set url via jndi
Support setting PROVIDER_URL on initial context to create default connection factories.
2017-05-15 15:20:53 -05:00
Clebert Suconic ac97d6f057 NO-JIRA: trivial test fixes on AMQP 2017-05-12 14:36:01 -04:00
Clebert Suconic dc26ac96b4 ARTEMIS-1156: moving our collections on its own package 2017-05-12 10:06:05 -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
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
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
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
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 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