6f2b70d8d5
This commit fixes conversion of messages that are sent or received using Stomp when the body contains characters that require 4 bytes for encoding using standard UTF-8. ActiveMQ and OpenWire currently use a modified UTF-8 encoding that only uses 3 bytes so the conversion previously was breaking because the body was encoded using standard JDK UTF-8 encoding and set directly on an ActiveMQText message which was leading to decoding errors later when the ActiveMQMessage tried to decode using the modified encoder. The reverse was also was true and was breaking in some cases. The fix now makes sure to correctly decode the Stomp message back to a String first and set that on the ActiveMQ message so it can be re-encoded correctly. The reverse is fixed as well so both conversion from Stomp -> OpenWire and OpenWire -> Stomp work. Tests have been added for Stomp -> OpenWire, OpenWire -> Stomp, and Stomp -> Stomp which is really Stomp -> OpenWire -> Stomp. (cherry picked from commit |
||
---|---|---|
activemq-all | ||
activemq-amqp | ||
activemq-blueprint | ||
activemq-broker | ||
activemq-cf | ||
activemq-client | ||
activemq-client-jakarta | ||
activemq-console | ||
activemq-http | ||
activemq-jaas | ||
activemq-jdbc-store | ||
activemq-jms-pool | ||
activemq-kahadb-store | ||
activemq-karaf | ||
activemq-karaf-itest | ||
activemq-log4j-appender | ||
activemq-mqtt | ||
activemq-openwire-generator | ||
activemq-openwire-legacy | ||
activemq-osgi | ||
activemq-partition | ||
activemq-pool | ||
activemq-ra | ||
activemq-rar | ||
activemq-run | ||
activemq-runtime-config | ||
activemq-shiro | ||
activemq-spring | ||
activemq-stomp | ||
activemq-tooling | ||
activemq-unit-tests | ||
activemq-web | ||
activemq-web-console | ||
activemq-web-demo | ||
assembly | ||
committer-tools | ||
docs/img | ||
etc/css | ||
.gitignore | ||
Jenkinsfile | ||
KEYS | ||
LICENSE | ||
NOTICE | ||
README.md | ||
SECURITY.md | ||
doap.rdf | ||
pom.xml |
README.md
Welcome to Apache ActiveMQ
Apache ActiveMQ is a high performance Apache 2.0 licensed Message Broker. ActiveMQ supports several API and protocols:
- JMS 1.1, 2.0.3, 3.1.0
- AMQP
- MQTT
- HTTP/WS ActiveMQ also provides advanced features like:
- network of brokers
- scheduling
- and much more!
Getting Started
To help you get started, try the following links:
Getting Started
Building
Examples
We welcome contributions of all kinds, for details of how you can help https://activemq.apache.org/contributing.html
Please refer to the website for details of finding the issue tracker, email lists, wiki or IRC channel at https://activemq.apache.org/
Please help us make Apache ActiveMQ better - we appreciate any feedback you may have.
Enjoy!
Licensing
This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See https://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.
The following provides more details on the included cryptographic software:
ActiveMQ supports the use of SSL TCP connections when used with with a JVM supporting the Java Cryptography extensions https://www.oracle.com/java/technologies/javase/javase-tech-security.html. ActiveMQ does not include these libraries itself, but is designed to use them.