Mirror of Apache ActiveMQ Artemis
Go to file
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
.settings ACTIVEMQ6-1 - Initial HornetQ Donation Commit 2014-11-10 10:31:25 -06:00
artemis-boot [maven-release-plugin] prepare for next development iteration 2016-06-09 12:52:56 +01:00
artemis-cli ARTEMIS-529 support dual auth 2016-06-17 11:07:03 -05:00
artemis-commons Remove redundant type arguments 2016-06-14 20:50:21 -04:00
artemis-core-client Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-distribution Modifying script to use tar instead of unzip 2016-06-09 13:22:06 -04:00
artemis-dto ARTEMIS-529 support dual auth 2016-06-17 11:07:03 -05:00
artemis-features [maven-release-plugin] prepare for next development iteration 2016-06-09 12:52:56 +01:00
artemis-jdbc-store Remove redundant type arguments 2016-06-14 20:50:21 -04:00
artemis-jms-client Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-jms-server Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-journal Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-maven-plugin [maven-release-plugin] prepare for next development iteration 2016-06-09 12:52:56 +01:00
artemis-native Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-protocols ARTEMIS-570 Fix buffer size overflow ProtonHandler 2016-06-17 15:04:32 -04:00
artemis-ra Fix checkstyle whitespace violation 2016-06-13 18:22:33 +03:00
artemis-rest Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-selector ARTEMIS-568 Catch broken JMS selector expressions 2016-06-14 19:05:27 -04:00
artemis-server ARTEMIS-571 Fix issues in openwire testsuite 2016-06-17 14:58:54 -04:00
artemis-server-osgi Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-service-extensions [maven-release-plugin] prepare for next development iteration 2016-06-09 12:52:56 +01:00
artemis-web Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
artemis-website Fix/update some links in docs 2016-06-17 11:59:28 +03:00
docs ARTEMIS-529 support dual auth 2016-06-17 11:07:03 -05:00
etc Use sevntu-checkstyle check for required annotation parameters 2016-06-14 20:50:21 -04:00
examples ARTEMIS-529 support dual auth 2016-06-17 11:07:03 -05:00
integration Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
scripts Allow override remote name in mergePR script 2016-04-08 10:03:19 -04:00
tests ARTEMIS-571 Fix issues in openwire testsuite 2016-06-17 14:58:54 -04:00
.gitignore ARTEMIS-27 / ARTEMIS-340 Add JDBC Storage Manager 2016-01-13 09:38:40 -05:00
.project More name changes to activemq 2014-11-19 16:01:54 -05:00
CMakeLists.txt ARTEMIS-163 First pass on the native AIO refactoring 2015-07-29 22:12:03 -04:00
LICENSE License updates including Base64 and JSON. 2015-03-16 14:30:28 +00:00
NOTICE update copyright in src Notice 2016-06-09 12:20:22 +01:00
README.md ARTEMIS-476 example fixes/docs 2016-04-13 10:53:14 -05:00
RELEASING.md extraTests version bump and RELEASING note 2015-12-21 09:48:14 +00:00
artemis_doap.rdf Update vendor to ASF 2015-05-30 08:37:28 +02:00
pom.xml Use sevntu-checkstyle check for required annotation parameters 2016-06-14 20:50:21 -04:00

README.md

ActiveMQ Artemis

This file describes some minimum 'stuff one needs to know' to get started coding in this project.

Source

For details about the modifying the code, building the project, running tests, IDE integration, etc. see our Hacking Guide.

Building the ASYNC IO library

ActiveMQ Artemis provides two journal persistence types, NIO (which uses the Java NIO libraries), and ASYNCIO which interacts with the linux kernel libaio library. The ASYNCIO journal type should be used where possible as it is far superior in terms of performance.

ActiveMQ Artemis does not ship with the Artemis Native ASYNCIO library in the source distribution. These need to be built prior to running "mvn install", to ensure that the ASYNCIO journal type is available in the resulting build. Don't worry if you don't want to use ASYNCIO or your system does not support libaio, ActiveMQ Artemis will check at runtime to see if the required libraries and system dependencies are available, if not it will default to using NIO.

To build the ActiveMQ Artemis ASYNCIO native libraries, please follow the instructions in the artemis-native/README.

Documentation

Our documentation is always in sync with our releases at the Apache ActiveMQ Artemis website.

Or you can also look at the current master version on github.

Examples

To run an example firstly make sure you have run

$ mvn -Prelease install

If the project version has already been released then this is unnecessary.

Each individual example can be run using this command from its corresponding directory:

$ mvn verify

If you wish to run groups of examples then use this command from a parent directory (e.g. examples/features/standard):

$ mvn -Pexamples verify

Recreating the examples

If you are trying to copy the examples somewhere else and modifying them. Consider asking Maven to explicitly list all the dependencies:

# if trying to modify the 'topic' example:
cd examples/jms/topic && mvn dependency:list