<div class="wiki-content maincontent"><p>TLP Description:</p><p>Apache ActiveMQ is a popular and powerful open source messaging server. Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4.</p><p>Community:</p><ul><li>The development and user lists continue to stay active.</li><li>Christian Posta was voted in to be an ActiveMQ committer</li></ul><p>Development:</p><ul><li>It was a busy quarter in which we released ActiveMQ 5.7.0 along with a native client releas and an Apollo releases.</li><li>ActiveMQ 5.8 has just started development and is working towards implmenting AMQP 1.0 using the proton library from the Apache Qpid project.</li><li>ActiveMQ-CPP 3.5.0 is in testing now and should be completed before years end.</li></ul><p>Trademark / Branding Status:</p><ul><li>The activemq.org and activemq.com TLD's are owned by other entities</li><li>Need to investiate if we should be using (R) instead of (TM) for the ActiveMQ mark</li><li>Sub-projects need to be reviewed to make sure they are also compliant</li><li>Documentation and readme files will also be reviewed for compliance</li></ul><p>Releases:</p><ul><li>Apache ActiveMQ 5.7.0</li><li>Apache.NMS.Stomp 1.5.3</li><li>Apache Apollo 1.4</li><li>Apache ActiveMQ 3.4.5 in progress.</li></ul></div>

