<div class="wiki-content maincontent"><h1>Status report for the Apache ActiveMQ Project</h1><structured-macro ac:macro-id="e63d73fc-c415-4b30-b192-415e94ab6290" ac:name="code" ac:schema-version="1"><parameter ac:name="">none</parameter><plain-text-body>Community:
 * The ActiveMQ project has had another very busy quarter.  Seven new contributors were voted in and accepted becoming ActiveMQ committers:
   * Gary Tully 
   * Gert Vanthienen 
   * Dejan Bosanac
   * Claus Ibsen
   * Roman Kalukiewicz
   * Willem Jiang
   * Jim Gomes
 * The development and user lists continue to stay vibrant.

Development:
 * Lots of development effort continues around pushing out new versions of ActiveMQ, ActiveMQ-CPP, and Camel.
 
Releases:
 * Camel 1.3.0 
 * ActiveMQ 5.1.0
 * ActiveMQ 4.1.2
 * ActiveIO 3.1.0
 * ActiveIO 3.0.1
 * ActiveMQ-CPP 2.2

</plain-text-body></structured-macro></div>

