You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2010/03/06 23:30:08 UTC
svn commit: r919862 - in /activemq/activemq-cpp/trunk/activemq-cpp/src:
main/activemq/commands/ main/activemq/core/
main/activemq/wireformat/openwire/marshal/ test/
Author: tabish
Date: Sat Mar 6 22:30:07 2010
New Revision: 919862
URL: http://svn.apache.org/viewvc?rev=919862&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQCPP-287
Implement compression support in ActiveMQMessage classes.
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMapMessage.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQTextMessage.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.h
activemq/activemq-cpp/trunk/activemq-cpp/src/test/testRegistry.cpp
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp Sat Mar 6 22:30:07 2010
@@ -18,10 +18,14 @@
#include <activemq/util/CMSExceptionSupport.h>
+#include <decaf/io/FilterOutputStream.h>
#include <decaf/io/ByteArrayInputStream.h>
#include <decaf/io/EOFException.h>
#include <decaf/io/IOException.h>
+#include <decaf/util/zip/DeflaterOutputStream.h>
+#include <decaf/util/zip/InflaterInputStream.h>
+
using namespace std;
using namespace activemq;
using namespace activemq::util;
@@ -29,6 +33,51 @@
using namespace activemq::exceptions;
using namespace decaf::io;
using namespace decaf::lang;
+using namespace decaf::util;
+using namespace decaf::util::zip;
+
+////////////////////////////////////////////////////////////////////////////////
+namespace{
+
+ class ByteCounterOutputStream : public FilterOutputStream {
+ private:
+
+ std::size_t* length;
+
+ public:
+
+ ByteCounterOutputStream( std::size_t* length, OutputStream* stream, bool own = false )
+ : FilterOutputStream( stream, own ), length( length ) {
+ }
+
+ virtual ~ByteCounterOutputStream() {}
+
+ protected:
+
+ virtual void doWriteByte( unsigned char value ) throw ( decaf::io::IOException ) {
+ (*length)++;
+ FilterOutputStream::doWriteByte( value );
+ }
+
+ virtual void doWriteArray( const unsigned char* buffer, std::size_t size )
+ throw( decaf::io::IOException ) {
+
+ (*length) += size;
+ FilterOutputStream::doWriteArray( buffer, size );
+ }
+
+ virtual void doWriteArrayBounded( const unsigned char* buffer, std::size_t size,
+ std::size_t offset, std::size_t length )
+ throw ( decaf::io::IOException,
+ decaf::lang::exceptions::NullPointerException,
+ decaf::lang::exceptions::IndexOutOfBoundsException ) {
+
+ (*this->length) += length;
+ FilterOutputStream::doWriteArrayBounded( buffer, size, offset, length );
+ }
+
+ };
+}
////////////////////////////////////////////////////////////////////////////////
ActiveMQBytesMessage::ActiveMQBytesMessage() :
@@ -137,6 +186,7 @@
ActiveMQMessageTemplate<cms::BytesMessage>::clearBody();
this->dataOut.reset( NULL );
+ this->bytesOut = NULL;
this->dataIn.reset( NULL );
this->length = 0;
}
@@ -154,7 +204,7 @@
try{
storeContent();
- this->bytesOut.reset( NULL );
+ this->bytesOut = NULL;
this->dataIn.reset( NULL );
this->dataOut.reset( NULL );
this->length = 0;
@@ -569,10 +619,25 @@
this->dataOut->close();
- this->setContent( this->bytesOut->toByteArrayRef() );
+ if( !this->compressed ) {
+ this->setContent( this->bytesOut->toByteArrayRef() );
+ } else {
+
+ ByteArrayOutputStream buffer;
+ DataOutputStream doBuffer( &buffer );
+
+ // Start by writing the length of the written data before compression.
+ doBuffer.writeInt( this->length );
+
+ // Now write the Compressed bytes.
+ this->bytesOut->writeTo( &doBuffer );
+
+ // Now store the annotated content.
+ this->setContent( buffer.toByteArrayRef() );
+ }
this->dataOut.reset( NULL );
- this->bytesOut.reset( NULL );
+ this->bytesOut = NULL;
}
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
@@ -583,10 +648,24 @@
this->failIfWriteOnlyBody();
try {
- if( this->dataIn.get() == NULL) {
- ByteArrayInputStream* is = new ByteArrayInputStream( this->getContent() );
+ if( this->dataIn.get() == NULL ) {
+ InputStream* is = new ByteArrayInputStream( this->getContent() );
+
+ if( this->isCompressed() ) {
+
+ try{
+ DataInputStream dis( is );
+ this->length = dis.readInt();
+ } catch( IOException& ex ) {
+ CMSExceptionSupport::create( ex );
+ }
+
+ is = new InflaterInputStream( is, true );
+
+ } else {
+ this->length = this->getContent().size();
+ }
this->dataIn.reset( new DataInputStream( is, true ) );
- this->length = this->getContent().size();
}
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
@@ -599,8 +678,18 @@
try{
if( this->dataOut.get() == NULL ) {
this->length = 0;
- this->bytesOut.reset( new ByteArrayOutputStream() );
- this->dataOut.reset( new DataOutputStream( this->bytesOut.get() ) );
+ this->bytesOut = new ByteArrayOutputStream();
+
+ OutputStream* os = this->bytesOut;
+
+ if( this->connection != NULL && this->connection->isUseCompression() ) {
+ this->compressed = true;
+
+ os = new DeflaterOutputStream( os, true );
+ os = new ByteCounterOutputStream( &length, os, true );
+ }
+
+ this->dataOut.reset( new DataOutputStream( os, true ) );
}
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.h?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.h Sat Mar 6 22:30:07 2010
@@ -44,7 +44,7 @@
* OutputStream that wraps around the command's content when in
* write-only mode.
*/
- std::auto_ptr<decaf::io::ByteArrayOutputStream> bytesOut;
+ decaf::io::ByteArrayOutputStream* bytesOut;
/**
* DataInputStream wrapper around the input stream.
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMapMessage.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMapMessage.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMapMessage.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMapMessage.cpp Sat Mar 6 22:30:07 2010
@@ -20,10 +20,21 @@
#include <decaf/lang/exceptions/UnsupportedOperationException.h>
+#include <decaf/io/ByteArrayInputStream.h>
+#include <decaf/io/ByteArrayOutputStream.h>
+#include <decaf/io/BufferedInputStream.h>
+#include <decaf/io/DataInputStream.h>
+#include <decaf/io/DataOutputStream.h>
+#include <decaf/util/zip/DeflaterOutputStream.h>
+#include <decaf/util/zip/InflaterInputStream.h>
+
using namespace std;
using namespace decaf;
+using namespace decaf::io;
using namespace decaf::lang;
using namespace decaf::lang::exceptions;
+using namespace decaf::util;
+using namespace decaf::util::zip;
using namespace activemq;
using namespace activemq::util;
using namespace activemq::exceptions;
@@ -92,8 +103,20 @@
ActiveMQMessageTemplate<cms::MapMessage>::beforeMarshal( wireFormat );
if( map.get() != NULL && !map->isEmpty() ) {
- // Marshal as Content.
- PrimitiveTypesMarshaller::marshal( map.get(), getContent() );
+
+ ByteArrayOutputStream* bytesOut = new ByteArrayOutputStream();
+
+ OutputStream* os = bytesOut;
+
+ if( this->connection != NULL && this->connection->isUseCompression() ) {
+ os = new DeflaterOutputStream( os, true );
+ }
+
+ DataOutputStream dataOut( os, true );
+ PrimitiveTypesMarshaller::marshalMap( map.get(), dataOut );
+ dataOut.close();
+ setContent( bytesOut->toByteArrayRef() );
+
} else {
clearBody();
}
@@ -136,20 +159,27 @@
try {
- if( map.get() == NULL ) {
+ if( map.get() == NULL && !getContent().empty() ) {
- map.reset( new PrimitiveMap() );
+ InputStream* is = new ByteArrayInputStream( getContent() );
- if( getContent().size() != 0 ){
- PrimitiveTypesMarshaller::unmarshal( map.get(), getContent() );
+ if( isCompressed() == true ) {
+ is = new InflaterInputStream( is, true );
+ is = new BufferedInputStream( is, true );
}
+ DataInputStream dataIn( is, true );
+
+ map.reset( PrimitiveTypesMarshaller::unmarshalMap( dataIn ) );
+
if( map.get() == NULL ) {
throw NullPointerException(
__FILE__, __LINE__,
"ActiveMQMapMessage::getMap() - All attempts to create a "
"map have failed." );
}
+ } else if( map.get() == NULL ) {
+ map.reset( new PrimitiveMap() );
}
}
AMQ_CATCH_RETHROW( NullPointerException )
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQMessageTemplate.h Sat Mar 6 22:30:07 2010
@@ -22,6 +22,7 @@
#include <activemq/util/Config.h>
#include <activemq/commands/Message.h>
#include <activemq/core/ActiveMQAckHandler.h>
+#include <activemq/core/ActiveMQConnection.h>
#include <activemq/wireformat/openwire/utils/MessagePropertyInterceptor.h>
#include <activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.h>
#include <activemq/util/CMSExceptionSupport.h>
@@ -42,9 +43,13 @@
std::auto_ptr<wireformat::openwire::utils::MessagePropertyInterceptor> propertiesInterceptor;
+ protected:
+
+ activemq::core::ActiveMQConnection* connection;
+
public:
- ActiveMQMessageTemplate() : commands::Message() {
+ ActiveMQMessageTemplate() : commands::Message(), connection( NULL ) {
this->propertiesInterceptor.reset(
new wireformat::openwire::utils::MessagePropertyInterceptor(
this, &this->getMessageProperties() ) );
@@ -52,6 +57,14 @@
virtual ~ActiveMQMessageTemplate() {}
+ activemq::core::ActiveMQConnection* getConnection() const {
+ return this->connection;
+ }
+
+ void setConnection( activemq::core::ActiveMQConnection* connection ) {
+ this->connection = connection;
+ }
+
public: // cms::Message related methods
/**
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.cpp Sat Mar 6 22:30:07 2010
@@ -37,6 +37,9 @@
#include <decaf/lang/Double.h>
#include <decaf/lang/Float.h>
#include <decaf/io/ByteArrayInputStream.h>
+#include <decaf/io/BufferedInputStream.h>
+#include <decaf/util/zip/DeflaterOutputStream.h>
+#include <decaf/util/zip/InflaterInputStream.h>
using namespace std;
using namespace cms;
@@ -51,6 +54,8 @@
using namespace decaf::io;
using namespace decaf::lang;
using namespace decaf::lang::exceptions;
+using namespace decaf::util;
+using namespace decaf::util::zip;
////////////////////////////////////////////////////////////////////////////////
ActiveMQStreamMessage::ActiveMQStreamMessage() :
@@ -116,7 +121,7 @@
this->dataIn.reset( NULL );
this->dataOut.reset( NULL );
- this->bytesOut.reset( NULL );
+ this->bytesOut = NULL;
this->remainingBytes = -1;
}
@@ -132,7 +137,7 @@
try{
storeContent();
- this->bytesOut.reset(NULL);
+ this->bytesOut = NULL;
this->dataIn.reset(NULL);
this->dataOut.reset(NULL);
this->remainingBytes = -1;
@@ -900,8 +905,8 @@
this->dataOut->close();
this->setContent( this->bytesOut->toByteArrayRef() );
- this->dataOut.reset(NULL);
- this->bytesOut.reset(NULL);
+ this->dataOut.reset( NULL );
+ this->bytesOut = NULL;
}
}
@@ -911,7 +916,13 @@
this->failIfWriteOnlyBody();
try {
if( this->dataIn.get() == NULL) {
- ByteArrayInputStream* is = new ByteArrayInputStream( this->getContent() );
+ InputStream* is = new ByteArrayInputStream( this->getContent() );
+
+ if( isCompressed() ) {
+ is = new InflaterInputStream( is, true );
+ is = new BufferedInputStream( is, true );
+ }
+
this->dataIn.reset( new DataInputStream( is, true ) );
}
}
@@ -924,8 +935,16 @@
this->failIfReadOnlyBody();
try{
if( this->dataOut.get() == NULL ) {
- this->bytesOut.reset( new ByteArrayOutputStream() );
- this->dataOut.reset( new DataOutputStream( this->bytesOut.get() ) );
+ this->bytesOut = new ByteArrayOutputStream();
+
+ OutputStream* os = this->bytesOut;
+
+ if( this->connection != NULL && this->connection->isUseCompression() ) {
+ this->compressed = true;
+ os = new DeflaterOutputStream( os, true );
+ }
+
+ this->dataOut.reset( new DataOutputStream( os, true ) );
}
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.h?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQStreamMessage.h Sat Mar 6 22:30:07 2010
@@ -45,7 +45,7 @@
public ActiveMQMessageTemplate< cms::StreamMessage > {
private:
- mutable std::auto_ptr<decaf::io::ByteArrayOutputStream> bytesOut;
+ decaf::io::ByteArrayOutputStream* bytesOut;
mutable std::auto_ptr<decaf::io::DataInputStream> dataIn;
mutable std::auto_ptr<decaf::io::DataOutputStream> dataOut;
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQTextMessage.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQTextMessage.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQTextMessage.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQTextMessage.cpp Sat Mar 6 22:30:07 2010
@@ -20,6 +20,8 @@
#include <decaf/io/ByteArrayOutputStream.h>
#include <decaf/io/DataOutputStream.h>
#include <decaf/io/DataInputStream.h>
+#include <decaf/util/zip/DeflaterOutputStream.h>
+#include <decaf/util/zip/InflaterInputStream.h>
#include <activemq/wireformat/openwire/utils/OpenwireStringSupport.h>
#include <activemq/util/CMSExceptionSupport.h>
@@ -35,6 +37,8 @@
using namespace activemq::wireformat::openwire::utils;
using namespace decaf::io;
using namespace decaf::lang;
+using namespace decaf::util;
+using namespace decaf::util::zip;
////////////////////////////////////////////////////////////////////////////////
ActiveMQTextMessage::ActiveMQTextMessage() :
@@ -117,14 +121,21 @@
if( this->text.get() != NULL ) {
- ByteArrayOutputStream bytesOut;
- DataOutputStream dataOut( &bytesOut );
+ ByteArrayOutputStream* bytesOut = new ByteArrayOutputStream;
+ OutputStream* os = bytesOut;
+
+ if( this->connection != NULL && this->connection->isUseCompression() ) {
+ this->compressed = true;
+ os = new DeflaterOutputStream( os, true );
+ }
+
+ DataOutputStream dataOut( os, true );
OpenwireStringSupport::writeString( dataOut, this->text.get() );
dataOut.close();
- this->setContent( bytesOut.toByteArrayRef() );
+ this->setContent( bytesOut->toByteArrayRef() );
this->text.reset( NULL );
}
}
@@ -159,13 +170,18 @@
try {
- decaf::io::ByteArrayInputStream bais( getContent() );
- decaf::io::DataInputStream dataIn( &bais );
+ InputStream* is = new ByteArrayInputStream( getContent() );
- dataIn.close();
+ if( isCompressed() ) {
+ is = new InflaterInputStream( is, true );
+ }
+
+ DataInputStream dataIn( is, true );
this->text.reset( new std::string( OpenwireStringSupport::readString( dataIn ) ) );
+ dataIn.close();
+
} catch( IOException& ioe ) {
throw CMSExceptionSupport::create( ioe );
}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.cpp Sat Mar 6 22:30:07 2010
@@ -557,7 +557,9 @@
try{
this->checkClosed();
- return new commands::ActiveMQMessage();
+ commands::ActiveMQMessage* message = new commands::ActiveMQMessage();
+ message->setConnection( this->connection );
+ return message;
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
@@ -569,7 +571,9 @@
try{
this->checkClosed();
- return new commands::ActiveMQBytesMessage();
+ commands::ActiveMQBytesMessage* message = new commands::ActiveMQBytesMessage();
+ message->setConnection( this->connection );
+ return message;
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
@@ -597,7 +601,9 @@
try{
this->checkClosed();
- return new commands::ActiveMQStreamMessage();
+ commands::ActiveMQStreamMessage* message = new commands::ActiveMQStreamMessage();
+ message->setConnection( this->connection );
+ return message;
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
@@ -609,7 +615,9 @@
try{
this->checkClosed();
- return new commands::ActiveMQTextMessage();
+ commands::ActiveMQTextMessage* message = new commands::ActiveMQTextMessage();
+ message->setConnection( this->connection );
+ return message;
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
@@ -635,7 +643,9 @@
try{
this->checkClosed();
- return new commands::ActiveMQMapMessage();
+ commands::ActiveMQMapMessage* message = new commands::ActiveMQMapMessage();
+ message->setConnection( this->connection );
+ return message;
}
AMQ_CATCH_ALL_THROW_CMSEXCEPTION()
}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.cpp Sat Mar 6 22:30:07 2010
@@ -25,6 +25,9 @@
#include <activemq/exceptions/ActiveMQException.h>
#include <decaf/lang/Short.h>
+#include <memory>
+
+using namespace std;
using namespace activemq;
using namespace activemq::util;
using namespace activemq::exceptions;
@@ -37,13 +40,12 @@
using namespace decaf::lang;
///////////////////////////////////////////////////////////////////////////////
-void PrimitiveTypesMarshaller::marshal( const activemq::util::PrimitiveMap* map,
- std::vector<unsigned char>& dest )
- throw ( decaf::lang::Exception ) {
+void PrimitiveTypesMarshaller::marshal( const PrimitiveMap* map, std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception ) {
try {
- ByteArrayOutputStream bytesOut( dest );
+ ByteArrayOutputStream bytesOut( buffer );
DataOutputStream dataOut( &bytesOut );
if( map == NULL ) {
@@ -57,20 +59,19 @@
}
///////////////////////////////////////////////////////////////////////////////
-void PrimitiveTypesMarshaller::unmarshal(
- activemq::util::PrimitiveMap* map,
- const std::vector<unsigned char>& src ) throw ( decaf::lang::Exception ) {
+void PrimitiveTypesMarshaller::unmarshal( PrimitiveMap* map, const std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception ) {
try {
- if( map == NULL || src.empty() ) {
+ if( map == NULL || buffer.empty() ) {
return;
}
// Clear old data
map->clear();
- ByteArrayInputStream bytesIn( src );
+ ByteArrayInputStream bytesIn( buffer );
DataInputStream dataIn( &bytesIn );
PrimitiveTypesMarshaller::unmarshalPrimitiveMap( dataIn, *map );
}
@@ -79,12 +80,12 @@
}
///////////////////////////////////////////////////////////////////////////////
-void PrimitiveTypesMarshaller::marshal( const activemq::util::PrimitiveList* list,
- std::vector<unsigned char>& dest )
- throw ( decaf::lang::Exception ) {
+void PrimitiveTypesMarshaller::marshal( const util::PrimitiveList* list, std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception ) {
+
try {
- ByteArrayOutputStream bytesOut( dest );
+ ByteArrayOutputStream bytesOut( buffer );
DataOutputStream dataOut( &bytesOut );
if( list == NULL ) {
@@ -98,20 +99,19 @@
}
///////////////////////////////////////////////////////////////////////////////
-void PrimitiveTypesMarshaller::unmarshal( activemq::util::PrimitiveList* list,
- const std::vector<unsigned char>& src )
- throw ( decaf::lang::Exception ) {
+void PrimitiveTypesMarshaller::unmarshal( util::PrimitiveList* list, const std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception ) {
try {
- if( list == NULL || src.empty() ) {
+ if( list == NULL || buffer.empty() ) {
return;
}
// Clear old data
list->clear();
- ByteArrayInputStream bytesIn( src );
+ ByteArrayInputStream bytesIn( buffer );
DataInputStream dataIn( &bytesIn );
PrimitiveTypesMarshaller::unmarshalPrimitiveList( dataIn, *list );
}
@@ -120,6 +120,66 @@
}
///////////////////////////////////////////////////////////////////////////////
+void PrimitiveTypesMarshaller::marshalMap( const PrimitiveMap* map, DataOutputStream& dataOut )
+ throw ( decaf::lang::Exception ) {
+
+ try {
+
+ if( map == NULL ) {
+ dataOut.writeInt( -1 );
+ } else {
+ PrimitiveTypesMarshaller::marshalPrimitiveMap( dataOut, *map );
+ }
+ }
+ AMQ_CATCH_RETHROW( decaf::lang::Exception )
+ AMQ_CATCHALL_THROW( decaf::lang::Exception )
+}
+
+///////////////////////////////////////////////////////////////////////////////
+PrimitiveMap* PrimitiveTypesMarshaller::unmarshalMap( DataInputStream& dataIn )
+ throw ( decaf::lang::Exception ) {
+
+ try {
+
+ std::auto_ptr<PrimitiveMap> map( new PrimitiveMap() );
+ PrimitiveTypesMarshaller::unmarshalPrimitiveMap( dataIn, *( map.get() ) );
+ return map.release();
+ }
+ AMQ_CATCH_RETHROW( decaf::lang::Exception )
+ AMQ_CATCHALL_THROW( decaf::lang::Exception )
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void PrimitiveTypesMarshaller::marshalList( const PrimitiveList* list, DataOutputStream& dataOut )
+ throw ( decaf::lang::Exception ) {
+
+ try {
+
+ if( list == NULL ) {
+ dataOut.writeInt( -1 );
+ } else {
+ PrimitiveTypesMarshaller::marshalPrimitiveList( dataOut, *list );
+ }
+ }
+ AMQ_CATCH_RETHROW( decaf::lang::Exception )
+ AMQ_CATCHALL_THROW( decaf::lang::Exception )
+}
+
+///////////////////////////////////////////////////////////////////////////////
+PrimitiveList* PrimitiveTypesMarshaller::unmarshalList( DataInputStream& dataIn )
+ throw ( decaf::lang::Exception ) {
+
+ try {
+
+ std::auto_ptr<PrimitiveList> list( new PrimitiveList() );
+ PrimitiveTypesMarshaller::unmarshalPrimitiveList( dataIn, *( list.get() ) );
+ return list.release();
+ }
+ AMQ_CATCH_RETHROW( decaf::lang::Exception )
+ AMQ_CATCHALL_THROW( decaf::lang::Exception )
+}
+
+///////////////////////////////////////////////////////////////////////////////
void PrimitiveTypesMarshaller::marshalPrimitiveMap(
decaf::io::DataOutputStream& dataOut,
const decaf::util::Map<std::string, PrimitiveValueNode>& map )
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.h?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/PrimitiveTypesMarshaller.h Sat Mar 6 22:30:07 2010
@@ -45,62 +45,110 @@
virtual ~PrimitiveTypesMarshaller() {}
/**
- * Static Marshal of a primitive map object.
+ * Marshal a primitive map object to the given byte buffer.
*
* @param map
* Map to Marshal.
- * @param dest
- * Reference to a byte array to house the data.
+ * @param buffer
+ * The byte buffer to write the marshaled data to.
*
- * @throws Exception
+ * @throws Exception if an error occurs during the marshaling process.
*/
- static void marshal( const util::PrimitiveMap* map,
- std::vector<unsigned char>& dest )
- throw ( decaf::lang::Exception );
+ static void marshal( const util::PrimitiveMap* map, std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception );
/**
- * Static Map Unmarshaler, takes an array of bytes and returns a
- * new instance of a PrimitiveMap object. Caller owns the pointer.
+ * Unmarshal a PrimitiveMap from the provided Byte buffer.
*
* @param map
- * Map to Unmarshal into
- * @param src
- * Reference to a byte array to read data from.
+ * The Map to populate with values from the marshaled data.
+ * @param buffer
+ * The byte buffer containing the marshaled Map.
*
- * @throws Exception
+ * @throws Exception if an error occurs during the unmarshal process.
*/
- static void unmarshal( util::PrimitiveMap* map,
- const std::vector<unsigned char>& src )
- throw ( decaf::lang::Exception );
+ static void unmarshal( util::PrimitiveMap* map, const std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception );
/**
- * Static Marshal of a primitive map object.
+ * Marshal a primitive list object to the given byte buffer.
+ *
+ * @param map
+ * The PrimitiveList to Marshal.
+ * @param buffer
+ * The byte buffer to write the marshaled data to.
+ *
+ * @throws Exception if an error occurs during the marshaling process.
+ */
+ static void marshal( const util::PrimitiveList* list, std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception );
+
+ /**
+ * Unmarshal a PrimitiveList from the provided byte buffer.
+ *
+ * @param map
+ * The List to populate with values from the marshaled data.
+ * @param buffer
+ * The byte buffer containing the marshaled Map.
+ *
+ * @throws Exception if an error occurs during the unmarshal process.
+ */
+ static void unmarshal( util::PrimitiveList* list, const std::vector<unsigned char>& buffer )
+ throw ( decaf::lang::Exception );
+
+ public:
+
+ /**
+ * Marshal a primitive map object to the given DataOutputStream.
+ *
+ * @param map
+ * Map to Marshal.
+ * @param dataOut
+ * Reference to a DataOutputStream to write the marshaled data to.
+ *
+ * @throws Exception if an error occurs during the marshaling process.
+ */
+ static void marshalMap( const util::PrimitiveMap* map, decaf::io::DataOutputStream& dataOut )
+ throw ( decaf::lang::Exception );
+
+ /**
+ * Unmarshal a PrimitiveMap from the provided DataInputStream.
+ *
+ * @param dataIn
+ * The DataInputStream instance to read the marshaled PrimitiveMap from.
+ *
+ * @return a pointer to a newly allocated PrimitiveMap instnace.
+ *
+ * @throws Exception if an error occurs during the unmarshal process.
+ */
+ static util::PrimitiveMap* unmarshalMap( decaf::io::DataInputStream& dataIn )
+ throw ( decaf::lang::Exception );
+
+ /**
+ * Marshal a PrimitiveList to the given DataOutputStream.
*
* @param list
* The list object to Marshal
- * @param dest
- * Reference to a byte array to house the data
+ * @param dataOut
+ * Reference to a DataOutputStream to write the marshaled data to.
*
- * @throws Exception
+ * @throws Exception if an error occurs during the marshaling process.
*/
- static void marshal( const util::PrimitiveList* list,
- std::vector<unsigned char>& dest )
- throw ( decaf::lang::Exception );
+ static void marshalList( const util::PrimitiveList* list, decaf::io::DataOutputStream& dataOut )
+ throw ( decaf::lang::Exception );
/**
- * Static Map Unmarshaler, takes an array of bytes and returns a
- * new instance of a PrimitiveMap object. Caller owns the pointer.
+ * Unmarshal a PrimitiveList from the given DataInputStream.
*
- * @param list
- * The list object to Un-marshal
- * @param src
- * Reference to a byte array to read data from.
- *
- * @throws Exception
- */
- static void unmarshal( util::PrimitiveList* list,
- const std::vector<unsigned char>& src )
- throw ( decaf::lang::Exception );
+ * @param dataIn
+ * The DataInputStream instance to read the marshaled PrimitiveList from.
+ *
+ * @return a pointer to a newly allocated PrimitiveList instnace.
+ *
+ * @throws Exception if an error occurs during the unmarshal process.
+ */
+ static util::PrimitiveList* unmarshalList( decaf::io::DataInputStream& dataIn )
+ throw ( decaf::lang::Exception );
protected:
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/testRegistry.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/testRegistry.cpp?rev=919862&r1=919861&r2=919862&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test/testRegistry.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/testRegistry.cpp Sat Mar 6 22:30:07 2010
@@ -18,283 +18,283 @@
// All CPP Unit tests are registered in here so we can disable them and
// enable them easily in one place.
-//#include <activemq/commands/BrokerInfoTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::BrokerInfoTest );
-//#include <activemq/commands/BrokerIdTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::BrokerIdTest );
-//#include <activemq/commands/ActiveMQTopicTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTopicTest );
-//#include <activemq/commands/ActiveMQTextMessageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTextMessageTest );
-//#include <activemq/commands/ActiveMQTempTopicTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTempTopicTest );
-//#include <activemq/commands/ActiveMQTempQueueTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTempQueueTest );
-//#include <activemq/commands/ActiveMQQueueTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQQueueTest );
-//#include <activemq/commands/ActiveMQMessageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQMessageTest );
-//#include <activemq/commands/ActiveMQMapMessageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQMapMessageTest );
-//#include <activemq/commands/ActiveMQDestinationTest2.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQDestinationTest );
-//#include <activemq/commands/ActiveMQBytesMessageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQBytesMessageTest );
-//#include <activemq/commands/ActiveMQStreamMessageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQStreamMessageTest );
-//
-//#include <activemq/wireformat/openwire/marshal/BaseDataStreamMarshallerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::marshal::BaseDataStreamMarshallerTest );
-//#include <activemq/wireformat/openwire/marshal/PrimitiveTypesMarshallerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::marshal::PrimitiveTypesMarshallerTest );
-//
-//#include <activemq/wireformat/openwire/utils/BooleanStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::BooleanStreamTest );
-//#include <activemq/wireformat/openwire/utils/HexTableTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::HexTableTest );
-//#include <activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::OpenwireStringSupportTest );
-//#include <activemq/wireformat/openwire/utils/MessagePropertyInterceptorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::MessagePropertyInterceptorTest );
-//
-//#include <activemq/wireformat/openwire/OpenWireFormatTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::OpenWireFormatTest );
-//
-//#include <activemq/cmsutil/CmsAccessorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsAccessorTest );
-//#include <activemq/cmsutil/CmsDestinationAccessorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsDestinationAccessorTest );
-//#include <activemq/cmsutil/CmsTemplateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsTemplateTest );
-//#include <activemq/cmsutil/DynamicDestinationResolverTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::DynamicDestinationResolverTest );
-//#include <activemq/cmsutil/SessionPoolTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::SessionPoolTest );
-//
-//#include <activemq/core/ActiveMQConnectionFactoryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionFactoryTest );
-//#include <activemq/core/ActiveMQConnectionTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionTest );
-//#include <activemq/core/ActiveMQSessionTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQSessionTest );
-//#include <activemq/core/MessageDispatchChannelTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::MessageDispatchChannelTest );
-//
-//#include <activemq/state/ConnectionStateTrackerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConnectionStateTrackerTest );
-//#include <activemq/state/ConnectionStateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConnectionStateTest );
-//#include <activemq/state/ConsumerStateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConsumerStateTest );
-//#include <activemq/state/ProducerStateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ProducerStateTest );
-//#include <activemq/state/SessionStateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::SessionStateTest );
-//#include <activemq/state/TransactionStateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::TransactionStateTest );
-//
-//#include <activemq/transport/failover/FailoverTransportTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::failover::FailoverTransportTest );
-//
-//#include <activemq/transport/correlator/ResponseCorrelatorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::correlator::ResponseCorrelatorTest );
-//
-//#include <activemq/transport/mock/MockTransportFactoryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::mock::MockTransportFactoryTest );
-//
-//#include <activemq/transport/inactivity/InactivityMonitorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::inactivity::InactivityMonitorTest );
-//
-//#include <activemq/transport/TransportRegistryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::TransportRegistryTest );
-//#include <activemq/transport/IOTransportTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::IOTransportTest );
-//
-//#include <activemq/exceptions/ActiveMQExceptionTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::exceptions::ActiveMQExceptionTest );
-//
-//#include <activemq/util/LongSequenceGeneratorTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::LongSequenceGeneratorTest );
-//#include <activemq/util/PrimitiveValueNodeTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveValueNodeTest );
-//#include <activemq/util/PrimitiveListTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveListTest );
-//#include <activemq/util/PrimitiveMapTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveMapTest );
-//#include <activemq/util/PrimitiveValueConverterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveValueConverterTest );
-//#include <activemq/util/URISupportTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::URISupportTest );
-//#include <activemq/util/MemoryUsageTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::MemoryUsageTest );
-//
-//#include <activemq/threads/DedicatedTaskRunnerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::threads::DedicatedTaskRunnerTest );
-//#include <activemq/threads/CompositeTaskRunnerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::threads::CompositeTaskRunnerTest );
-//
-//#include <activemq/wireformat/WireFormatRegistryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::WireFormatRegistryTest );
-//
-//#include <decaf/internal/util/ByteArrayAdapterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::util::ByteArrayAdapterTest );
-//#include <decaf/internal/util/TimerTaskHeapTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::util::TimerTaskHeapTest );
-//
-//#include <decaf/internal/nio/ByteArrayPerspectiveTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ByteArrayPerspectiveTest );
-//#include <decaf/internal/nio/ByteArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ByteArrayBufferTest );
-//#include <decaf/internal/nio/BufferFactoryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::BufferFactoryTest );
-//#include <decaf/internal/nio/CharArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::CharArrayBufferTest );
-//#include <decaf/internal/nio/DoubleArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::DoubleArrayBufferTest );
-//#include <decaf/internal/nio/FloatArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::FloatArrayBufferTest );
-//#include <decaf/internal/nio/LongArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::LongArrayBufferTest );
-//#include <decaf/internal/nio/IntArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::IntArrayBufferTest );
-//#include <decaf/internal/nio/ShortArrayBufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ShortArrayBufferTest );
-//
-//#include <decaf/internal/net/URIEncoderDecoderTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::net::URIEncoderDecoderTest );
-//#include <decaf/internal/net/URIHelperTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::net::URIHelperTest );
-//
-//#include <decaf/nio/BufferTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::nio::BufferTest );
-//
-//#include <decaf/io/InputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::InputStreamTest );
-//#include <decaf/io/OutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::OutputStreamTest );
-//#include <decaf/io/FilterInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::FilterInputStreamTest );
-//#include <decaf/io/FilterOutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::FilterOutputStreamTest );
-//#include <decaf/io/BufferedInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::BufferedInputStreamTest );
-//#include <decaf/io/BufferedOutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::BufferedOutputStreamTest );
-//#include <decaf/io/ByteArrayInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ByteArrayInputStreamTest );
-//#include <decaf/io/ByteArrayOutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ByteArrayOutputStreamTest );
-//#include <decaf/io/PushbackInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::PushbackInputStreamTest );
-//#include <decaf/io/DataInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::DataInputStreamTest );
-//#include <decaf/io/DataOutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::DataOutputStreamTest );
-//#include <decaf/io/WriterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::WriterTest );
-//#include <decaf/io/ReaderTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ReaderTest );
-//#include <decaf/io/OutputStreamWriterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::OutputStreamWriterTest );
-//#include <decaf/io/InputStreamReaderTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::InputStreamReaderTest );
-//
-//#include <decaf/lang/MathTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::MathTest );
-//#include <decaf/lang/ByteTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ByteTest );
-//#include <decaf/lang/CharacterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::CharacterTest );
-//#include <decaf/lang/BooleanTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::BooleanTest );
-//#include <decaf/lang/ShortTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ShortTest );
-//#include <decaf/lang/IntegerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::IntegerTest );
-//#include <decaf/lang/LongTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::LongTest );
-//#include <decaf/lang/FloatTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::FloatTest );
-//#include <decaf/lang/DoubleTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::DoubleTest );
-//#include <decaf/lang/ExceptionTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ExceptionTest );
-//#include <decaf/lang/ThreadTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ThreadTest );
-//#include <decaf/lang/SystemTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::SystemTest );
-//#include <decaf/lang/PointerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::PointerTest );
-//
-//#include <decaf/net/SocketFactoryTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::SocketFactoryTest );
-//#include <decaf/net/SocketTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::SocketTest );
-//#include <decaf/net/URITest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URITest );
-//#include <decaf/net/URISyntaxExceptionTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URISyntaxExceptionTest );
-//#include <decaf/net/URLEncoderTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URLEncoderTest );
-//#include <decaf/net/URLDecoderTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URLDecoderTest );
-//
-//#include <decaf/util/concurrent/ConcurrentStlMapTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::ConcurrentStlMapTest );
-//#include <decaf/util/concurrent/CountDownLatchTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::CountDownLatchTest );
-//#include <decaf/util/concurrent/MutexTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::MutexTest );
-//#include <decaf/util/concurrent/ThreadPoolTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::ThreadPoolTest );
-//#include <decaf/util/concurrent/TimeUnitTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::TimeUnitTest );
-//
-//#include <decaf/util/concurrent/atomic/AtomicBooleanTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicBooleanTest );
-//#include <decaf/util/concurrent/atomic/AtomicIntegerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicIntegerTest );
-//#include <decaf/util/concurrent/atomic/AtomicReferenceTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicReferenceTest );
-//
-//#include <decaf/util/concurrent/locks/LockSupportTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::locks::LockSupportTest );
-//
-//#include <decaf/util/DateTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::DateTest );
-//#include <decaf/util/UUIDTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::UUIDTest );
-//#include <decaf/util/ListTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::ListTest );
-//#include <decaf/util/StlMapTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::StlMapTest );
-//#include <decaf/util/PropertiesTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::PropertiesTest );
-//#include <decaf/util/QueueTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::QueueTest );
-//#include <decaf/util/RandomTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::RandomTest );
-//#include <decaf/util/SetTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::SetTest );
-//#include <decaf/util/StringTokenizerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::StringTokenizerTest );
-//#include <decaf/util/TimerTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::TimerTest );
-//#include <decaf/util/PriorityQueueTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::PriorityQueueTest );
-//
-//#include <decaf/util/zip/DeflaterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::DeflaterTest );
-//#include <decaf/util/zip/InflaterTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::InflaterTest );
-//#include <decaf/util/zip/Adler32Test.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::Adler32Test );
-//#include <decaf/util/zip/CRC32Test.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CRC32Test );
-//#include <decaf/util/zip/CheckedInputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CheckedInputStreamTest );
-//#include <decaf/util/zip/CheckedOutputStreamTest.h>
-//CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CheckedOutputStreamTest );
+#include <activemq/commands/BrokerInfoTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::BrokerInfoTest );
+#include <activemq/commands/BrokerIdTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::BrokerIdTest );
+#include <activemq/commands/ActiveMQTopicTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTopicTest );
+#include <activemq/commands/ActiveMQTextMessageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTextMessageTest );
+#include <activemq/commands/ActiveMQTempTopicTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTempTopicTest );
+#include <activemq/commands/ActiveMQTempQueueTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQTempQueueTest );
+#include <activemq/commands/ActiveMQQueueTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQQueueTest );
+#include <activemq/commands/ActiveMQMessageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQMessageTest );
+#include <activemq/commands/ActiveMQMapMessageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQMapMessageTest );
+#include <activemq/commands/ActiveMQDestinationTest2.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQDestinationTest );
+#include <activemq/commands/ActiveMQBytesMessageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQBytesMessageTest );
+#include <activemq/commands/ActiveMQStreamMessageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::commands::ActiveMQStreamMessageTest );
+
+#include <activemq/wireformat/openwire/marshal/BaseDataStreamMarshallerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::marshal::BaseDataStreamMarshallerTest );
+#include <activemq/wireformat/openwire/marshal/PrimitiveTypesMarshallerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::marshal::PrimitiveTypesMarshallerTest );
+
+#include <activemq/wireformat/openwire/utils/BooleanStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::BooleanStreamTest );
+#include <activemq/wireformat/openwire/utils/HexTableTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::HexTableTest );
+#include <activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::OpenwireStringSupportTest );
+#include <activemq/wireformat/openwire/utils/MessagePropertyInterceptorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::utils::MessagePropertyInterceptorTest );
+
+#include <activemq/wireformat/openwire/OpenWireFormatTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::openwire::OpenWireFormatTest );
+
+#include <activemq/cmsutil/CmsAccessorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsAccessorTest );
+#include <activemq/cmsutil/CmsDestinationAccessorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsDestinationAccessorTest );
+#include <activemq/cmsutil/CmsTemplateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::CmsTemplateTest );
+#include <activemq/cmsutil/DynamicDestinationResolverTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::DynamicDestinationResolverTest );
+#include <activemq/cmsutil/SessionPoolTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::SessionPoolTest );
+
+#include <activemq/core/ActiveMQConnectionFactoryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionFactoryTest );
+#include <activemq/core/ActiveMQConnectionTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionTest );
+#include <activemq/core/ActiveMQSessionTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQSessionTest );
+#include <activemq/core/MessageDispatchChannelTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::MessageDispatchChannelTest );
+
+#include <activemq/state/ConnectionStateTrackerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConnectionStateTrackerTest );
+#include <activemq/state/ConnectionStateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConnectionStateTest );
+#include <activemq/state/ConsumerStateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ConsumerStateTest );
+#include <activemq/state/ProducerStateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::ProducerStateTest );
+#include <activemq/state/SessionStateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::SessionStateTest );
+#include <activemq/state/TransactionStateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::state::TransactionStateTest );
+
+#include <activemq/transport/failover/FailoverTransportTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::failover::FailoverTransportTest );
+
+#include <activemq/transport/correlator/ResponseCorrelatorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::correlator::ResponseCorrelatorTest );
+
+#include <activemq/transport/mock/MockTransportFactoryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::mock::MockTransportFactoryTest );
+
+#include <activemq/transport/inactivity/InactivityMonitorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::inactivity::InactivityMonitorTest );
+
+#include <activemq/transport/TransportRegistryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::TransportRegistryTest );
+#include <activemq/transport/IOTransportTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::IOTransportTest );
+
+#include <activemq/exceptions/ActiveMQExceptionTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::exceptions::ActiveMQExceptionTest );
+
+#include <activemq/util/LongSequenceGeneratorTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::LongSequenceGeneratorTest );
+#include <activemq/util/PrimitiveValueNodeTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveValueNodeTest );
+#include <activemq/util/PrimitiveListTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveListTest );
+#include <activemq/util/PrimitiveMapTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveMapTest );
+#include <activemq/util/PrimitiveValueConverterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::PrimitiveValueConverterTest );
+#include <activemq/util/URISupportTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::URISupportTest );
+#include <activemq/util/MemoryUsageTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::util::MemoryUsageTest );
+
+#include <activemq/threads/DedicatedTaskRunnerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::threads::DedicatedTaskRunnerTest );
+#include <activemq/threads/CompositeTaskRunnerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::threads::CompositeTaskRunnerTest );
+
+#include <activemq/wireformat/WireFormatRegistryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( activemq::wireformat::WireFormatRegistryTest );
+
+#include <decaf/internal/util/ByteArrayAdapterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::util::ByteArrayAdapterTest );
+#include <decaf/internal/util/TimerTaskHeapTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::util::TimerTaskHeapTest );
+
+#include <decaf/internal/nio/ByteArrayPerspectiveTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ByteArrayPerspectiveTest );
+#include <decaf/internal/nio/ByteArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ByteArrayBufferTest );
+#include <decaf/internal/nio/BufferFactoryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::BufferFactoryTest );
+#include <decaf/internal/nio/CharArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::CharArrayBufferTest );
+#include <decaf/internal/nio/DoubleArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::DoubleArrayBufferTest );
+#include <decaf/internal/nio/FloatArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::FloatArrayBufferTest );
+#include <decaf/internal/nio/LongArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::LongArrayBufferTest );
+#include <decaf/internal/nio/IntArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::IntArrayBufferTest );
+#include <decaf/internal/nio/ShortArrayBufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::nio::ShortArrayBufferTest );
+
+#include <decaf/internal/net/URIEncoderDecoderTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::net::URIEncoderDecoderTest );
+#include <decaf/internal/net/URIHelperTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::internal::net::URIHelperTest );
+
+#include <decaf/nio/BufferTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::nio::BufferTest );
+
+#include <decaf/io/InputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::InputStreamTest );
+#include <decaf/io/OutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::OutputStreamTest );
+#include <decaf/io/FilterInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::FilterInputStreamTest );
+#include <decaf/io/FilterOutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::FilterOutputStreamTest );
+#include <decaf/io/BufferedInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::BufferedInputStreamTest );
+#include <decaf/io/BufferedOutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::BufferedOutputStreamTest );
+#include <decaf/io/ByteArrayInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ByteArrayInputStreamTest );
+#include <decaf/io/ByteArrayOutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ByteArrayOutputStreamTest );
+#include <decaf/io/PushbackInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::PushbackInputStreamTest );
+#include <decaf/io/DataInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::DataInputStreamTest );
+#include <decaf/io/DataOutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::DataOutputStreamTest );
+#include <decaf/io/WriterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::WriterTest );
+#include <decaf/io/ReaderTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::ReaderTest );
+#include <decaf/io/OutputStreamWriterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::OutputStreamWriterTest );
+#include <decaf/io/InputStreamReaderTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::io::InputStreamReaderTest );
+
+#include <decaf/lang/MathTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::MathTest );
+#include <decaf/lang/ByteTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ByteTest );
+#include <decaf/lang/CharacterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::CharacterTest );
+#include <decaf/lang/BooleanTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::BooleanTest );
+#include <decaf/lang/ShortTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ShortTest );
+#include <decaf/lang/IntegerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::IntegerTest );
+#include <decaf/lang/LongTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::LongTest );
+#include <decaf/lang/FloatTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::FloatTest );
+#include <decaf/lang/DoubleTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::DoubleTest );
+#include <decaf/lang/ExceptionTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ExceptionTest );
+#include <decaf/lang/ThreadTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ThreadTest );
+#include <decaf/lang/SystemTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::SystemTest );
+#include <decaf/lang/PointerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::PointerTest );
+
+#include <decaf/net/SocketFactoryTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::SocketFactoryTest );
+#include <decaf/net/SocketTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::SocketTest );
+#include <decaf/net/URITest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URITest );
+#include <decaf/net/URISyntaxExceptionTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URISyntaxExceptionTest );
+#include <decaf/net/URLEncoderTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URLEncoderTest );
+#include <decaf/net/URLDecoderTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::URLDecoderTest );
+
+#include <decaf/util/concurrent/ConcurrentStlMapTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::ConcurrentStlMapTest );
+#include <decaf/util/concurrent/CountDownLatchTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::CountDownLatchTest );
+#include <decaf/util/concurrent/MutexTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::MutexTest );
+#include <decaf/util/concurrent/ThreadPoolTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::ThreadPoolTest );
+#include <decaf/util/concurrent/TimeUnitTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::TimeUnitTest );
+
+#include <decaf/util/concurrent/atomic/AtomicBooleanTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicBooleanTest );
+#include <decaf/util/concurrent/atomic/AtomicIntegerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicIntegerTest );
+#include <decaf/util/concurrent/atomic/AtomicReferenceTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::atomic::AtomicReferenceTest );
+
+#include <decaf/util/concurrent/locks/LockSupportTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::concurrent::locks::LockSupportTest );
+
+#include <decaf/util/DateTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::DateTest );
+#include <decaf/util/UUIDTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::UUIDTest );
+#include <decaf/util/ListTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::ListTest );
+#include <decaf/util/StlMapTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::StlMapTest );
+#include <decaf/util/PropertiesTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::PropertiesTest );
+#include <decaf/util/QueueTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::QueueTest );
+#include <decaf/util/RandomTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::RandomTest );
+#include <decaf/util/SetTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::SetTest );
+#include <decaf/util/StringTokenizerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::StringTokenizerTest );
+#include <decaf/util/TimerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::TimerTest );
+#include <decaf/util/PriorityQueueTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::PriorityQueueTest );
+
+#include <decaf/util/zip/DeflaterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::DeflaterTest );
+#include <decaf/util/zip/InflaterTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::InflaterTest );
+#include <decaf/util/zip/Adler32Test.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::Adler32Test );
+#include <decaf/util/zip/CRC32Test.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CRC32Test );
+#include <decaf/util/zip/CheckedInputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CheckedInputStreamTest );
+#include <decaf/util/zip/CheckedOutputStreamTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::CheckedOutputStreamTest );
#include <decaf/util/zip/DeflaterOutputStreamTest.h>
CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::zip::DeflaterOutputStreamTest );
#include <decaf/util/zip/InflaterInputStreamTest.h>