Commit Graph

179 Commits

Author SHA1 Message Date
Francesco Nigro bdf1061058 ARTEMIS-1357 TypedProperties encode/decode improvement 2017-08-22 22:17:39 -04:00
Clebert Suconic 012fe58b2c ARTEMIS-1333 fixing test, cannot flush itself from Runnable 2017-08-09 16:02:10 -04:00
Michael Andre Pearce 0bc5510059 ARTEMIS-1342: Support Netty Native KQueue on macOS
Add support for KQueue for when server or client runs on macOS. This is inline with the epoll support for linux.
2017-08-09 15:23:16 -04:00
Clebert Suconic 8bc15b1199 ARTEMIS-1334 Scheduled component shouldn't be synchronized 2017-08-09 15:18:54 -04:00
Clebert Suconic 1ace306121 ARTEMIS-1328 Improving direct delivery check
Instead of wait to flush an executor,
I have added a method isFlushed() which will just translate to the
state on the OrderedExecutor.

In the case another executor is provided (for tests) there's a delegate
into normal executors.
2017-08-08 14:00:58 -04:00
Clebert Suconic f16af75354 ARTEMIS-1324 Deadlock detection and health check of critical components 2017-08-07 18:40:03 -04:00
Clebert Suconic fdad83be22 [maven-release-plugin] prepare for next development iteration 2017-07-24 21:21:18 -04:00
Clebert Suconic 71b1cc2a20 [maven-release-plugin] prepare release 2.2.0 2017-07-24 21:21:06 -04:00
Dmitrii Tikhomirov 28087ad4af [ARTEMIS-1293] Log messages without prefixed id code in artemis-commons 2017-07-17 10:34:06 -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 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
Armand Roelens 1ecbd97cd4 ARTEMIS-1252 Add service loading of password codec to obtain its implementation from the app's root context 2017-06-29 16:00:00 -04:00
Clebert Suconic f407d86f0f ARTEMIS-1253 Fixing NetworkHealthCheck being shutdown after failures 2017-06-26 16:15:39 -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
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
Clebert Suconic f1f4d4dec3 ARTEMIS-1156 Adding deprecated TypedProperties extending new location
We recently moved TypedProperties under ./util/collections
This is exposed through Messages so we added this as a deprecated option.

We also had to add this class on a separate commit from dc26ac96b4
to preserve git history on the new one.
2017-05-12 10:06:20 -04:00
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
Justin Bertram 5cb5c8a6dc ARTEMIS-1154 isolated backup fails over
Even if there is no address/url configured for the NetworkHealthCheck
an isolated backup will still fail-over potentially causing split-brain.
2017-05-09 14:43:17 -05: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
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
dOkI 18bc7e1a2e ARTEMIS-874: ThreadGroup memory leak 2017-05-05 14:49:47 -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
Clebert Suconic 31d78eddf1 ARTEMIS-1118 IO callbacks on AMQP 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 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
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 dbe1976b47 NO-JIRA: Using Env as the source of isTestEnv 2017-04-07 10:31:03 -04:00
Francesco Nigro a0f369af05 ARTEMIS-1099 Force Netty EPOLL to be available only on Linux 64bit platforms 2017-04-07 10:28:22 -04:00
Bernd Gutjahr 5a31e70353 ARTEMIS-1078 Improving ActiveMQThreadPoolExecutor
This is now considering only threads waiting for the queue to get new tasks as idle.

The thread pool maintained a counter of active threads, but that counter was increased
too late in the beforeExecute method. Submitting a task created a new thread.
If now a second task was submitter before the new thread had started to execute it's task,
the second task was queued without creating a 2nd thread. So the second task was only
executed after the first task had been completed - even if the thread pool's
maximum number of thread had not been reached.

This fix now maintains the delta between the number those threads that are currently waiting
in the queue's poll or take methods as idle threads, and the number of queued tasks.
It creates new threads unless there are enough idle threads to pick up all queued tasks.

This closes #1144
2017-03-31 19:01:54 -04:00
Martyn Taylor 8760b3ddfd ARTEMIS-1087 Make InVM buffer pooling configurable 2017-03-31 18:56:07 +01:00
Armand Roelens 3ceb332866 ARTEMIS-1074 Acceptors/Connectors now start up when configured to use SSL and a password codec 2017-03-28 15:10:33 -05:00
Martyn Taylor c40823e5ec [maven-release-plugin] prepare for next development iteration 2017-03-10 14:54:33 +00:00
Martyn Taylor 70e319d6e3 [maven-release-plugin] prepare release 2.0.0 2017-03-10 14:52:26 +00:00
Martyn Taylor f1a5f1caf9 Revert "[maven-release-plugin] prepare release 2.0.0"
This reverts commit 057047499b.
2017-03-10 14:45:29 +00:00
Martyn Taylor 1964abe567 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 9a52f51c9f.
2017-03-10 14:44:58 +00:00
Martyn Taylor 9a52f51c9f [maven-release-plugin] prepare for next development iteration 2017-03-10 11:36:36 +00:00
Martyn Taylor 057047499b [maven-release-plugin] prepare release 2.0.0 2017-03-10 11:25:47 +00:00
Clebert Suconic fe0ca4d84f ARTEMIS-1009 Pure Message Encoding.
with this we could send and receive message in their raw format,
without requiring conversions to Core.

- MessageImpl and ServerMessage are removed as part of this
- AMQPMessage and CoreMessage will have the specialized message format for each protocol
- The protocol manager is now responsible to send the message
- The message will provide an encoder for journal and paging
2017-03-05 23:08:53 -05:00
Martyn Taylor dc40f60e6b ARTEMIS-1002 Use default PooledBufferAllocator in ActiveMQBuffers 2017-02-27 14:23:29 -05:00
Erich Duda 0c64cbfa4e ARTEMIS-995 Bulk of test fixes
This commit fixes tests:
 ActiveMQScheduledComponentTest.testAccumulationOwnPool
 PendingDeliveriesTest.testWithtReconnect
 ReceiveTest.testReceiveImmediate
 ActiveMQProducerResourceTest.testSendString
 EmbeddedActiveMQResourceTest.testSendString
 MultipleEmbeddedActiveMQResourcesTest.testMultipleServers
 MultipleEmbeddedJMSResourcesTest.testMultipleServers
 ActiveMQDynamicProducerResourceWithoutAddressTest.testSendString
 ActiveMQDynamicProducerResourceWithoutAddressExceptionTest.testSendBytesToDefaultAddress
 ActiveMQDynamicProducerResourceTest.testSendString
 ActiveMQServerControlTest.testTotalMessageCount
 EmbeddedActiveMQResourceCustomConfigurationTest.testCustomConfiguration
 EmbeddedJMSResourceMultipleFileConfigurationTest.testConfiguration
 EmbeddedJMSResourceQueueTest.testPushObjectMessage
 EmbeddedJMSResourceSingleFileConfigurationTest.testConfiguration
 EmbeddedActiveMQResourceFileConfigurationTest.testConfiguredQueue
 EmbeddedJMSResourceTopicTest.testPushObjectMessage
 LargeMessageFailoverTest.testTimeoutOnFailoverTransactionCommit
2017-02-24 15:17:00 +01:00
Howard Gao e09be4864a ARTEMIS-988 Regression: web tmp dir not cleaned up
Due to recent changes, the web component is shutdown by the
server, but the shutdown flag is lost so the web component's
cleanup check method is not get called and the web's tmp
dir is left there after user stopped the broker (control-c).

The fix is add a suitable API to allow passing of the
flag so the web component can make sure its tmp dir gets
cleaned up properly before exiting the VM.
2017-02-23 12:39:50 +08:00
Jiri Danek a7a0535afa NO-JIRA Fixing typos in log messages, test names and comments
Related to ARTEMIS-387 (fowardingAddress)
2017-02-20 20:54:45 -05:00
Dejan Bosanac 21b64b3e4f https://issues.apache.org/jira/browse/ARTEMIS-815 - support wildcard address configuration in mqtt layer
https://issues.apache.org/jira/browse/ARTEMIS-815 - support wildcard address configuration in mqtt layer - remove old swap method

https://issues.apache.org/jira/browse/ARTEMIS-815 - added tests for mqtt-openwire integration and fixed openwire layer

https://issues.apache.org/jira/browse/ARTEMIS-815 - remove unused imports
2017-02-16 17:37:50 +00:00
Justin Bertram ff3e75d148 NO-JIRA move RoutingType to different package 2017-02-13 09:50:41 -06:00