=========================================================================
==  Release Notes for ActiveMQ CPP 2.1                               ==
=========================================================================

== Overview ==

This version includes several bugfixes, as well as some new features.  Also
a lot of work has been done on performance and memory leaks.  One new feature that
has been highly anticipated is that we now build both shared and static libraries.

NOTE: Compatable with ActiveMQ Broker version >= 4.0.2

== Issues Resolved ==

Bug

    * [AMQCPP-104] - Enabling async send prevents program from terminating properly on Windows
    * [AMQCPP-119] - getClientID segfaults is called after connection has been closed
    * [AMQCPP-120] - Possible memory leak in StompConnector
    * [AMQCPP-121] - Possible memory leak in activemq::transport::IOTransport::run
    * [AMQCPP-122] - Crash on Windows when rapidly creating and destroying connections
    * [AMQCPP-126] - closing ressources after an IOException crashes the app
    * [AMQCPP-128] - Transacted session crashes or loses messages
    * [AMQCPP-131] - StompConnector doesn't rethrow UnsupportedOperationException
    * [AMQCPP-132] - Unsubscribe of durable subscription fails
    * [AMQCPP-133] - Receive of plain Message with Openwire returns null
    * [AMQCPP-134] - Compiler warnings have returned for tests on gcc

Improvement

    * [AMQCPP-65] - Refactor transport creation
    * [AMQCPP-66] - Refactor the Async send to happen in an Async Transport instead of in ActiveMQSession
    * [AMQCPP-108] - Make stomp connector more generic
    * [AMQCPP-110] - Create activemqcpp-openwire-generator build in our pom.xml, move code to src/main/java
    * [AMQCPP-116] - quick improvements to CMS example code
    * [AMQCPP-118] - Provide a way to allocate and free with the same allocator
    * [AMQCPP-123] - Link error when trying to link another shared library against AMQCPP on 64-bit Linux
    * [AMQCPP-127] - ResponseCorrelator doesn't have a way to set max timeot from the properties uri.
    * [AMQCPP-130] - Enhance the DummyTransport and rename it to MockTransport

New Feature

    * [AMQCPP-125] - Decaf: Random

Task

    * [AMQCPP-106] - reorganize subversion
    * [AMQCPP-115] - Change build to create dynamic libraries

=========================================================================
==  Release Notes for ActiveMQ CPP 2.0.1                               ==
=========================================================================

== Overview ==

This version is a bug fix release for issues that were found in the 2.0 release

NOTE: Compatable with ActiveMQ Broker version >= 4.0.2

== Issues Resolved ==

Bug

    * [AMQCPP-105] - Openwire ActiveMQMessage sets Persistant flag incorrectly
    * [AMQCPP-107] - SocketInputStream::read() doesn't check for EINTR error
    * [AMQCPP-109] - Exception when acknowledging null messages, originating from the receipt of an ObjectMessage
    * [AMQCPP-112] - Openwire Experiation Integration tests fail when fixed to actually use Openwire

Improvement

    * [AMQCPP-101] - Add the Ability to set the TcpNoDelay flag of a TCP Socket
    * [AMQCPP-102] - Create a Tag for CMS

=========================================================================
==  Release Notes for ActiveMQ CPP 2.0                                 ==
=========================================================================

== Overview ==

This version is a major release containing new features and bug fixes.

    * Full OpenWire v2 support!
    * You can switch between openwire and stomp via the connection URL
    * Temporary destinations when using OpenWire
    * Added support for asynchronous send
    * Fixed client acknowledge
    * Resolved some memory leaks
    * Sessions are now single threaded

NOTE: Compatable with ActiveMQ Broker version >= 4.0.2

== Issues Resolved ==

Bug

    * [AMQCPP-38] - Async error on broker when running integration tests
    * [AMQCPP-44] - Reason for socket errors not reported correctly on Windows
    * [AMQCPP-46] - ActiveMQConnection doesn't propagate exception listener to underlying connector
    * [AMQCPP-51] - Autoconf is not properly setting CXXFLAGS on Linux
    * [AMQCPP-52] - Valgrind reports memory leaks when running PrimitiveMapTest
    * [AMQCPP-53] - Declaration of extern int errno after including errno.h doesn't compile
    * [AMQCPP-54] - Build broken due to autoconf problem?
    * [AMQCPP-55] - Need close() to propagate to child resources
    * [AMQCPP-56] - GCC warnings and possible SocketFactory bug on 64-bit Linux
    * [AMQCPP-58] - Possible memory leak when reestablishing connection
    * [AMQCPP-59] - Exception is thrown when destroying consumer after connection failure
    * [AMQCPP-60] - message information is lost from stomp message to jms
    * [AMQCPP-61] - CMSException::what returns c_str of temporary std::string
    * [AMQCPP-62] - Broken CLIENT_ACKNOWLEDGE
    * [AMQCPP-64] - Inconsistency in topic names when creating topics
    * [AMQCPP-75] - setCMSReplyTo with null destination segfaults when using Openwire wire format
    * [AMQCPP-76] - Integer property not propagated when using Openwire
    * [AMQCPP-77] - Inconsistency when getting string property between Stomp and Openwire
    * [AMQCPP-78] - session tries to destroy already destroyed temporary queue
    * [AMQCPP-80] - sending with explicit message id hangs
    * [AMQCPP-81] - openwire consumer never receives messages already in queue
    * [AMQCPP-83] - Integration tests fail for openwire
    * [AMQCPP-85] - activemq/util/Character.h not being installed by automake
    * [AMQCPP-86] - Valgrind reports memory leaks in unit tests
    * [AMQCPP-87] - ActiveMQConnectionFactory creates only one unique clientId
    * [AMQCPP-90] - Openwire Session doesn't run its MessageListeners from a single thread
    * [AMQCPP-91] - A few more Openwire memory leaks
    * [AMQCPP-92] - memory leak in openwire session info

Improvement

    * [AMQCPP-40] - A few stray unix and sun defines
    * [AMQCPP-47] - MapMessage getters should be const
    * [AMQCPP-48] - Fix compilation with Visual Studio .NET 2003
    * [AMQCPP-49] - Add -W -Wall compile options
    * [AMQCPP-50] - Derive cms::CMSException from std::exception
    * [AMQCPP-57] - Typo in names of delivery modes
    * [AMQCPP-79] - allow createProducer to accept null destination
    * [AMQCPP-89] - Case of cms::Message getter and setter names are not consistent with case of JMS Message getter and setter names
    * [AMQCPP-94] - StompConnector should use Long::toString instead of Integer::toString

New Feature

    * [AMQCPP-30] - Add support to activemq-cpp to support the openwire protocol
    * [AMQCPP-63] - asynchronous send

Task

    * [AMQCPP-82] - Make openwire the default protocol
    * [AMQCPP-84] - add unit/integration tests
    * [AMQCPP-88] - Remove setCMSMessageId from CMS API
    * [AMQCPP-95] - Perform Memory Leak testing on 2.0 codebase


=========================================================================
==  Release Notes for ActiveMQ CPP 1.1                                 ==
=========================================================================

== Overview ==

This version fixes several bugs and adds a few new features.

    * Updated interface for cms::BytesMessage - more JMS-like.
    * Updated the MessageProducer interface to add multiple versions of the send method
    * Fixed several memory leaks
    * Now run on linux, win32, OS X, and Solaris
    * Persistence is fixed
    * Fixed deadlocks when closing a connection
    * Fixed message expiration

NOTE: Compatable with ActiveMQ Broker version >= 4.0.2

== Issues Resolved ==

Bug

    * [AMQCPP-3] - Receiving a BytesMessage sent from Java using CMS listener causes exception thrown in class BufferedInputStream
    * [AMQCPP-14] - CMSExpiration not handled properly in ActiveMQProducer
    * [AMQCPP-18] - ActiveMQConnection.close() causes app to crash
    * [AMQCPP-20] - Deadlock when in stomp connector close
    * [AMQCPP-22] - Use common name for ActiveMQ C++ library on Windows and Linux
    * [AMQCPP-23] - active-cpp persistent problem
    * [AMQCPP-25] - Bus error on Solaris OS from DataInput and DataOutput streams
    * [AMQCPP-26] - Memory leaks reported by Rational Purify when running unit tests
    * [AMQCPP-27] - Issues reported by Valgrind when running unit tests
    * [AMQCPP-28] - Purify and Valgrind warnings when running integration tests
    * [AMQCPP-29] - Projects in MSVC build building on top of one another
    * [AMQCPP-35] - Stomp content-length header not being set on BytesMessage
    * [AMQCPP-39] - Some AMQCPP includes not installed when doing make install on Linux
    * [AMQCPP-41] - Byte swap on float and double truncates values
    * [AMQCPP-43] - Crash when getting string property that doesn't exist

Improvement

    * [AMQCPP-16] - CMS API needs updates to more closely follow JMS API
    * [AMQCPP-33] - Integration tests crash if broker isn't running
    * [AMQCPP-36] - Cleanup whitespace and member function definitions in header files
    * [AMQCPP-42] - A few more strict aliasing warnings

New Feature

    * [AMQCPP-15] - Add other versions of send method to CMS MessageProducer
    * [AMQCPP-37] - readUTF and writeUTF for BytesMessage

Task

    * [AMQCPP-45] - Update configure.ac with release version

Wish

    * [AMQCPP-31] - Consider giving the unix #define a more unique name
    * [AMQCPP-32] - Stomp messages don't preserve property types: please document this behaviour
