git-svn-id: https://svn.apache.org/repos/asf/activemq/activemq-cpp/tags/activemq-cpp-2.1.1@589814 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/activemq-cpp.pc.in b/activemq-cpp.pc.in
index 9727f1f..6a269ab 100644
--- a/activemq-cpp.pc.in
+++ b/activemq-cpp.pc.in
@@ -1,3 +1,20 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
diff --git a/activemqcpp-config.in b/activemqcpp-config.in
index 502b32d..3ef1c60 100644
--- a/activemqcpp-config.in
+++ b/activemqcpp-config.in
@@ -1,4 +1,20 @@
 #!/bin/sh
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
 
 prefix=@prefix@
 exec_prefix=@exec_prefix@
diff --git a/doxygen.cfg b/doxygen.cfg
index 5d1db02..c7b526a 100644
--- a/doxygen.cfg
+++ b/doxygen.cfg
@@ -1,4 +1,20 @@
 # Doxyfile 1.3.7
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
 
 #---------------------------------------------------------------------------
 # Project related configuration options
@@ -11,7 +27,7 @@
 USE_WINDOWS_ENCODING   = NO
 BRIEF_MEMBER_DESC      = YES
 REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
+ABBREVIATE_BRIEF       =
 ALWAYS_DETAILED_SEC    = NO
 INLINE_INHERITED_MEMB  = NO
 STRIP_FROM_INC_PATH    = $(SRCDIR)
@@ -24,7 +40,7 @@
 INHERIT_DOCS           = YES
 DISTRIBUTE_GROUP_DOC   = NO
 TAB_SIZE               = 8
-ALIASES                = 
+ALIASES                =
 OPTIMIZE_OUTPUT_FOR_C  = YES
 OPTIMIZE_OUTPUT_JAVA   = NO
 SUBGROUPING            = YES
@@ -52,7 +68,7 @@
 GENERATE_TESTLIST      = YES
 GENERATE_BUGLIST       = YES
 GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 MAX_INITIALIZER_LINES  = 30
 SHOW_USED_FILES        = YES
 #---------------------------------------------------------------------------
@@ -63,21 +79,21 @@
 WARN_IF_UNDOCUMENTED   = YES
 WARN_IF_DOC_ERROR      = YES
 WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
+WARN_LOGFILE           =
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = $(SRCDIR)
 FILE_PATTERNS          = *.c *.h
 RECURSIVE              = YES
-EXCLUDE                = 
+EXCLUDE                =
 EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
+EXCLUDE_PATTERNS       =
 EXAMPLE_PATH           = $(SRCDIR)
-EXAMPLE_PATTERNS       = 
+EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
+IMAGE_PATH             =
+INPUT_FILTER           =
 FILTER_SOURCE_FILES    = NO
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
@@ -93,16 +109,16 @@
 #---------------------------------------------------------------------------
 ALPHABETICAL_INDEX     = NO
 COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
 GENERATE_HTML          = $(GENERATE_HTML)
 HTML_OUTPUT            = html
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
+HTML_HEADER            =
+HTML_FOOTER            =
+HTML_STYLESHEET        =
 HTML_ALIGN_MEMBERS     = YES
 GENERATE_HTMLHELP      = $(GENERATE_CHM)
 CHM_FILE               = ../$(PROJECT).chm
@@ -123,8 +139,8 @@
 MAKEINDEX_CMD_NAME     = makeindex
 COMPACT_LATEX          = NO
 PAPER_TYPE             = $(PAPER_SIZE)
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
+EXTRA_PACKAGES         =
+LATEX_HEADER           =
 PDF_HYPERLINKS         = NO
 USE_PDFLATEX           = NO
 LATEX_BATCHMODE        = YES
@@ -136,8 +152,8 @@
 RTF_OUTPUT             = rtf
 COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
+RTF_STYLESHEET_FILE    =
+RTF_EXTENSIONS_FILE    =
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -150,8 +166,8 @@
 #---------------------------------------------------------------------------
 GENERATE_XML           = $(GENERATE_XML)
 XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
+XML_SCHEMA             =
+XML_DTD                =
 XML_PROGRAMLISTING     = YES
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
@@ -163,29 +179,29 @@
 GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 ENABLE_PREPROCESSING   = YES
 MACRO_EXPANSION        = NO
 EXPAND_ONLY_PREDEF     = NO
 SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
+INCLUDE_PATH           =
+INCLUDE_FILE_PATTERNS  =
+PREDEFINED             =
+EXPAND_AS_DEFINED      =
 SKIP_FUNCTION_MACROS   = YES
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration::additions related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = 
+TAGFILES               =
 GENERATE_TAGFILE       = $(DOCDIR)/$(PROJECT).tag
 ALLEXTERNALS           = NO
 EXTERNAL_GROUPS        = YES
 PERL_PATH              = $(PERL_PATH)
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 CLASS_DIAGRAMS         = YES
 HIDE_UNDOC_RELATIONS   = YES
@@ -200,13 +216,13 @@
 GRAPHICAL_HIERARCHY    = YES
 DOT_IMAGE_FORMAT       = png
 DOT_PATH               = $(DOT_PATH)
-DOTFILE_DIRS           = 
+DOTFILE_DIRS           =
 MAX_DOT_GRAPH_WIDTH    = 1024
 MAX_DOT_GRAPH_HEIGHT   = 1024
 MAX_DOT_GRAPH_DEPTH    = 0
 GENERATE_LEGEND        = YES
 DOT_CLEANUP            = YES
 #---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
+# Configuration::additions related to the search engine
 #---------------------------------------------------------------------------
 SEARCHENGINE           = NO
diff --git a/src/decaf/decaf.pc.in b/src/decaf/decaf.pc.in
index a227fea..2227142 100644
--- a/src/decaf/decaf.pc.in
+++ b/src/decaf/decaf.pc.in
@@ -1,3 +1,20 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
diff --git a/src/decaf/doxygen.cfg b/src/decaf/doxygen.cfg
index 5d1db02..c7b526a 100644
--- a/src/decaf/doxygen.cfg
+++ b/src/decaf/doxygen.cfg
@@ -1,4 +1,20 @@
 # Doxyfile 1.3.7
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
 
 #---------------------------------------------------------------------------
 # Project related configuration options
@@ -11,7 +27,7 @@
 USE_WINDOWS_ENCODING   = NO
 BRIEF_MEMBER_DESC      = YES
 REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
+ABBREVIATE_BRIEF       =
 ALWAYS_DETAILED_SEC    = NO
 INLINE_INHERITED_MEMB  = NO
 STRIP_FROM_INC_PATH    = $(SRCDIR)
@@ -24,7 +40,7 @@
 INHERIT_DOCS           = YES
 DISTRIBUTE_GROUP_DOC   = NO
 TAB_SIZE               = 8
-ALIASES                = 
+ALIASES                =
 OPTIMIZE_OUTPUT_FOR_C  = YES
 OPTIMIZE_OUTPUT_JAVA   = NO
 SUBGROUPING            = YES
@@ -52,7 +68,7 @@
 GENERATE_TESTLIST      = YES
 GENERATE_BUGLIST       = YES
 GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 MAX_INITIALIZER_LINES  = 30
 SHOW_USED_FILES        = YES
 #---------------------------------------------------------------------------
@@ -63,21 +79,21 @@
 WARN_IF_UNDOCUMENTED   = YES
 WARN_IF_DOC_ERROR      = YES
 WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
+WARN_LOGFILE           =
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = $(SRCDIR)
 FILE_PATTERNS          = *.c *.h
 RECURSIVE              = YES
-EXCLUDE                = 
+EXCLUDE                =
 EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
+EXCLUDE_PATTERNS       =
 EXAMPLE_PATH           = $(SRCDIR)
-EXAMPLE_PATTERNS       = 
+EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
+IMAGE_PATH             =
+INPUT_FILTER           =
 FILTER_SOURCE_FILES    = NO
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
@@ -93,16 +109,16 @@
 #---------------------------------------------------------------------------
 ALPHABETICAL_INDEX     = NO
 COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
 GENERATE_HTML          = $(GENERATE_HTML)
 HTML_OUTPUT            = html
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
+HTML_HEADER            =
+HTML_FOOTER            =
+HTML_STYLESHEET        =
 HTML_ALIGN_MEMBERS     = YES
 GENERATE_HTMLHELP      = $(GENERATE_CHM)
 CHM_FILE               = ../$(PROJECT).chm
@@ -123,8 +139,8 @@
 MAKEINDEX_CMD_NAME     = makeindex
 COMPACT_LATEX          = NO
 PAPER_TYPE             = $(PAPER_SIZE)
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
+EXTRA_PACKAGES         =
+LATEX_HEADER           =
 PDF_HYPERLINKS         = NO
 USE_PDFLATEX           = NO
 LATEX_BATCHMODE        = YES
@@ -136,8 +152,8 @@
 RTF_OUTPUT             = rtf
 COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
+RTF_STYLESHEET_FILE    =
+RTF_EXTENSIONS_FILE    =
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -150,8 +166,8 @@
 #---------------------------------------------------------------------------
 GENERATE_XML           = $(GENERATE_XML)
 XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
+XML_SCHEMA             =
+XML_DTD                =
 XML_PROGRAMLISTING     = YES
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
@@ -163,29 +179,29 @@
 GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 ENABLE_PREPROCESSING   = YES
 MACRO_EXPANSION        = NO
 EXPAND_ONLY_PREDEF     = NO
 SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
+INCLUDE_PATH           =
+INCLUDE_FILE_PATTERNS  =
+PREDEFINED             =
+EXPAND_AS_DEFINED      =
 SKIP_FUNCTION_MACROS   = YES
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration::additions related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = 
+TAGFILES               =
 GENERATE_TAGFILE       = $(DOCDIR)/$(PROJECT).tag
 ALLEXTERNALS           = NO
 EXTERNAL_GROUPS        = YES
 PERL_PATH              = $(PERL_PATH)
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 CLASS_DIAGRAMS         = YES
 HIDE_UNDOC_RELATIONS   = YES
@@ -200,13 +216,13 @@
 GRAPHICAL_HIERARCHY    = YES
 DOT_IMAGE_FORMAT       = png
 DOT_PATH               = $(DOT_PATH)
-DOTFILE_DIRS           = 
+DOTFILE_DIRS           =
 MAX_DOT_GRAPH_WIDTH    = 1024
 MAX_DOT_GRAPH_HEIGHT   = 1024
 MAX_DOT_GRAPH_DEPTH    = 0
 GENERATE_LEGEND        = YES
 DOT_CLEANUP            = YES
 #---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
+# Configuration::additions related to the search engine
 #---------------------------------------------------------------------------
 SEARCHENGINE           = NO
diff --git a/src/decaf/src/main/decaf/lang/Comparable.h b/src/decaf/src/main/decaf/lang/Comparable.h
index ac53f1b..3ccfc76 100644
--- a/src/decaf/src/main/decaf/lang/Comparable.h
+++ b/src/decaf/src/main/decaf/lang/Comparable.h
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 #ifndef _DECAF_LANG_COMPARABLE_H_
 #define _DECAF_LANG_COMPARABLE_H_
 
diff --git a/src/examples/main.cpp b/src/examples/main.cpp
index 7486855..4dcea01 100644
--- a/src/examples/main.cpp
+++ b/src/examples/main.cpp
@@ -71,8 +71,8 @@
     virtual void run() {
         try {
             // Create a ConnectionFactory
-            ActiveMQConnectionFactory* connectionFactory =
-                new ActiveMQConnectionFactory( brokerURI );
+            ConnectionFactory* connectionFactory =
+                ConnectionFactory::createCMSConnectionFactory( brokerURI );
 
             // Create a Connection
             connection = connectionFactory->createConnection();
@@ -195,8 +195,8 @@
         try {
 
             // Create a ConnectionFactory
-            ActiveMQConnectionFactory* connectionFactory =
-                new ActiveMQConnectionFactory( brokerURI );
+            ConnectionFactory* connectionFactory =
+                ConnectionFactory::createCMSConnectionFactory( brokerURI );
 
             // Create a Connection
             connection = connectionFactory->createConnection();
diff --git a/src/main/activemq/core/ActiveMQConnectionFactory.cpp b/src/main/activemq/core/ActiveMQConnectionFactory.cpp
index 6454b77..9d8e5d2 100644
--- a/src/main/activemq/core/ActiveMQConnectionFactory.cpp
+++ b/src/main/activemq/core/ActiveMQConnectionFactory.cpp
@@ -34,10 +34,16 @@
 using namespace activemq::transport;
 
 ////////////////////////////////////////////////////////////////////////////////
-ActiveMQConnectionFactory::ActiveMQConnectionFactory()
-{
-    brokerURL = "tcp://localhost:61616";
+cms::ConnectionFactory* cms::ConnectionFactory::createCMSConnectionFactory( const std::string& brokerURI )
+    throw ( cms::CMSException ) {
 
+    return new ActiveMQConnectionFactory( brokerURI );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ActiveMQConnectionFactory::ActiveMQConnectionFactory() {
+
+    brokerURL = "tcp://localhost:61616";
     this->username = "";
     this->password = "";
 }
@@ -46,18 +52,17 @@
 ActiveMQConnectionFactory::ActiveMQConnectionFactory(
     const std::string& url,
     const std::string& username,
-    const std::string& password )
-{
-    brokerURL = url;
+    const std::string& password ) {
 
+    brokerURL = url;
     this->username = username;
     this->password = password;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 cms::Connection* ActiveMQConnectionFactory::createConnection()
-    throw ( cms::CMSException )
-{
+    throw ( cms::CMSException ) {
+
     return createConnection( brokerURL, username, password, Guid::createGUIDString() );
 }
 
@@ -65,8 +70,8 @@
 cms::Connection* ActiveMQConnectionFactory::createConnection(
     const std::string& username,
     const std::string& password )
-        throw ( cms::CMSException )
-{
+        throw ( cms::CMSException ) {
+
     return createConnection( brokerURL, username, password, Guid::createGUIDString() );
 }
 
@@ -75,8 +80,8 @@
     const std::string& username,
     const std::string& password,
     const std::string& clientId )
-        throw ( cms::CMSException )
-{
+        throw ( cms::CMSException ) {
+
     return createConnection( brokerURL, username, password, clientId );
 }
 
@@ -86,8 +91,8 @@
     const std::string& username,
     const std::string& password,
     const std::string& clientId )
-       throw ( cms::CMSException )
-{
+       throw ( cms::CMSException ) {
+
     // Declared here so that they can be deleted in the catch block
     Properties* properties = NULL;
     Transport* transport = NULL;
@@ -97,13 +102,12 @@
     std::string clientIdLocal = clientId;
     TransportBuilder transportBuilder;
 
-    try
-    {
+    try{
+
         properties = new Properties;
 
         // if no Client Id specified, create one
-        if( clientIdLocal == "" )
-        {
+        if( clientIdLocal == "" ) {
             clientIdLocal = Guid::createGUIDString();
         }
 
@@ -136,8 +140,7 @@
         ConnectorFactory* connectorfactory =
             ConnectorFactoryMap::getInstance()->lookup( wireFormat );
 
-        if( connectorfactory == NULL )
-        {
+        if( connectorfactory == NULL ) {
             throw NullPointerException(
                 __FILE__, __LINE__,
                 "ActiveMQConnectionFactory::createConnection - "
@@ -147,8 +150,7 @@
         // Create the Connector.
         connector = connectorfactory->createConnector( *properties, transport );
 
-        if( connector == NULL )
-        {
+        if( connector == NULL ) {
             throw NullPointerException(
                 __FILE__, __LINE__,
                 "ActiveMQConnectionFactory::createConnection - "
@@ -166,9 +168,8 @@
         connection = new ActiveMQConnection( connectionData );
 
         return connection;
-    }
-    catch( exceptions::ActiveMQException& ex )
-    {
+
+    } catch( exceptions::ActiveMQException& ex ) {
         ex.setMark( __FILE__, __LINE__ );
 
         delete connection;
@@ -177,9 +178,8 @@
         delete properties;
 
         throw ex;
-    }
-    catch( ... )
-    {
+
+    } catch( ... ) {
         exceptions::ActiveMQException ex(
             __FILE__, __LINE__,
             "ActiveMQConnectionFactory::create - "
diff --git a/src/main/cms/BytesMessage.h b/src/main/cms/BytesMessage.h
index 74b04f4..e603caa 100644
--- a/src/main/cms/BytesMessage.h
+++ b/src/main/cms/BytesMessage.h
@@ -23,6 +23,9 @@
 
 namespace cms{
 
+    /**
+     * A message used for sending a stream of uninterpreted bytes.
+     */
     class CMS_API BytesMessage : public Message{
     public:
 
@@ -30,8 +33,11 @@
 
         /**
          * sets the bytes given to the message body.
-         * @param Byte Buffer to copy
-         * @param Number of bytes in Buffer to copy
+         * 
+         * @param buffer 
+         *      Byte Buffer to copy
+         * @param numBytes 
+         *      Number of bytes in Buffer to copy
          * @throws CMSException
          */
         virtual void setBodyBytes(
@@ -43,12 +49,14 @@
          * copy this data into a user allocated buffer.  Call
          * <code>getBodyLength</code> to determine the number of bytes
          * to expect.
+         * 
          * @return const pointer to a byte buffer
          */
         virtual const unsigned char* getBodyBytes() const = 0;
 
         /**
          * Returns the number of bytes contained in the body of this message.
+         * 
          * @return number of bytes.
          */
         virtual std::size_t getBodyLength() const = 0;
@@ -56,6 +64,7 @@
         /**
          * Puts the message body in read-only mode and repositions the stream
          * of bytes to the beginning.
+         * 
          * @throws CMSException
          */
         virtual void reset() throw ( cms::CMSException ) = 0;
@@ -63,6 +72,7 @@
         /**
          * Reads a Boolean from the Bytes message stream
          * @returns boolean value from stream
+         * 
          * @throws CMSException
          */
         virtual bool readBoolean() const throw ( cms::CMSException ) = 0;
@@ -71,13 +81,16 @@
          * Writes a boolean to the bytes message stream as a 1-byte value.
          * The value true is written as the value (byte)1; the value false
          * is written as the value (byte)0.
-         * @param value - boolean to write to the stream
+         * 
+         * @param value 
+         *      boolean to write to the stream
          * @throws CMSException
          */
         virtual void writeBoolean( bool value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a Byte from the Bytes message stream
+         * 
          * @returns unsigned char value from stream
          * @throws CMSException
          */
@@ -85,7 +98,9 @@
 
         /**
          * Writes a byte to the bytes message stream as a 1-byte value
-         * @param value - byte to write to the stream
+         * 
+         * @param value 
+         *      byte to write to the stream
          * @throws CMSException
          */
         virtual void writeByte( unsigned char value ) throw ( cms::CMSException ) = 0;
@@ -103,7 +118,8 @@
          * length of the vector, indicating that there are no more bytes left to
          * be read from the stream. The next read of the stream returns -1.
          *
-         * @param value - buffer to place data in
+         * @param value 
+         *      buffer to place data in
          * @returns the total number of bytes read into the buffer, or -1 if
          *          there is no more data because the end of the stream has
          *          been reached
@@ -115,7 +131,9 @@
         /**
          * Writes a byte array to the bytes message stream using the vector
          * size as the number of bytes to write.
-         * @param value - bytes to write to the stream
+         * 
+         * @param value 
+         *      bytes to write to the stream
          * @throws CMSException
          */
         virtual void writeBytes( const std::vector<unsigned char>& value )
@@ -138,9 +156,11 @@
          * array value, then an IndexOutOfBoundsException is thrown. No bytes
          * will be read from the stream for this exception case.
          *
-         * @param value - the buffer into which the data is read
-         * @param length - the number of bytes to read; must be less than or
-         *                 equal to value.length
+         * @param buffer 
+         *      the buffer into which the data is read
+         * @param length 
+         *      the number of bytes to read; must be less than or equal to 
+         *      value.length
          * @returns the total number of bytes read into the buffer, or -1 if
          *          there is no more data because the end of the stream has
          *          been reached
@@ -152,9 +172,13 @@
         /**
          * Writes a portion of a byte array to the bytes message stream.
          * size as the number of bytes to write.
-         * @param value - bytes to write to the stream
-         * @param offset - the initial offset within the byte array
-         * @param length - the number of bytes to use
+         * 
+         * @param value 
+         *      bytes to write to the stream
+         * @param offset 
+         *      the initial offset within the byte array
+         * @param length 
+         *      the number of bytes to use
          * @throws CMSException
          */
         virtual void writeBytes( const unsigned char* value,
@@ -163,6 +187,7 @@
 
         /**
          * Reads a Char from the Bytes message stream
+         * 
          * @returns char value from stream
          * @throws CMSException
          */
@@ -170,13 +195,16 @@
 
         /**
          * Writes a char to the bytes message stream as a 1-byte value
-         * @param value - char to write to the stream
+         * 
+         * @param value
+         *      char to write to the stream
          * @throws CMSException
          */
         virtual void writeChar( char value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 32 bit float from the Bytes message stream
+         * 
          * @returns double value from stream
          * @throws CMSException
          */
@@ -184,13 +212,15 @@
 
         /**
          * Writes a float to the bytes message stream as a 4 byte value
-         * @param value - float to write to the stream
+         * @param value 
+         *      float to write to the stream
          * @throws CMSException
          */
         virtual void writeFloat( float value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 64 bit double from the Bytes message stream
+         * 
          * @returns double value from stream
          * @throws CMSException
          */
@@ -198,13 +228,15 @@
 
         /**
          * Writes a double to the bytes message stream as a 8 byte value
-         * @param value - double to write to the stream
+         * @param value 
+         *      double to write to the stream
          * @throws CMSException
          */
         virtual void writeDouble( double value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 16 bit signed short from the Bytes message stream
+         * 
          * @returns short value from stream
          * @throws CMSException
          */
@@ -212,13 +244,16 @@
 
         /**
          * Writes a signed short to the bytes message stream as a 2 byte value
-         * @param value - signed short to write to the stream
+         * 
+         * @param value 
+         *      signed short to write to the stream
          * @throws CMSException
          */
         virtual void writeShort( short value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 16 bit unsigned short from the Bytes message stream
+         * 
          * @returns unsigned short value from stream
          * @throws CMSException
          */
@@ -226,13 +261,16 @@
 
         /**
          * Writes a unsigned short to the bytes message stream as a 2 byte value
-         * @param value - unsigned short to write to the stream
+         * 
+         * @param value 
+         *      unsigned short to write to the stream
          * @throws CMSException
          */
         virtual void writeUnsignedShort( unsigned short value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 32 bit signed intger from the Bytes message stream
+         * 
          * @returns int value from stream
          * @throws CMSException
          */
@@ -240,13 +278,16 @@
 
         /**
          * Writes a signed int to the bytes message stream as a 4 byte value
-         * @param value - signed int to write to the stream
+         * 
+         * @param value 
+         *      signed int to write to the stream
          * @throws CMSException
          */
         virtual void writeInt( int value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads a 64 bit long from the Bytes message stream
+         * 
          * @returns long long value from stream
          * @throws CMSException
          */
@@ -254,13 +295,16 @@
 
         /**
          * Writes a long long to the bytes message stream as a 8 byte value
-         * @param value - signed long long to write to the stream
+         * 
+         * @param value 
+         *      signed long long to write to the stream
          * @throws CMSException
          */
         virtual void writeLong( long long value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads an ASCII String from the Bytes message stream
+         * 
          * @returns String from stream
          * @throws CMSException
          */
@@ -268,13 +312,16 @@
 
         /**
          * Writes an ASCII String to the Bytes message stream
-         * @param value - String to write to the stream
+         * 
+         * @param value 
+         *      String to write to the stream
          * @throws CMSException
          */
         virtual void writeString( const std::string& value ) throw ( cms::CMSException ) = 0;
 
         /**
          * Reads an UTF String from the BytesMessage stream
+         * 
          * @returns String from stream
          * @throws CMSException
          */
@@ -282,11 +329,17 @@
 
         /**
          * Writes an UTF String to the BytesMessage stream
-         * @param value - String to write to the stream
+         * 
+         * @param value 
+         *      String to write to the stream
          * @throws CMSException
          */
         virtual void writeUTF( const std::string& value ) throw ( cms::CMSException ) = 0;
 
+        /**
+         * Clones this message.
+         * @return a deep copy of this message.
+         */
         virtual BytesMessage* clone() const = 0;
 
    };
diff --git a/src/main/cms/CMSException.h b/src/main/cms/CMSException.h
index 381d67b..09ccf77 100644
--- a/src/main/cms/CMSException.h
+++ b/src/main/cms/CMSException.h
@@ -42,14 +42,18 @@
         
         /**
          * Gets the cause of the error.
+         * 
          * @return string errors message
          */
         virtual std::string getMessage() const = 0;
         
         /**
          * Adds a file/line number to the stack trace.
-         * @param file The name of the file calling this method (use __FILE__).
-         * @param lineNumber The line number in the calling file (use __LINE__).
+         * 
+         * @param file 
+         *      The name of the file calling this method (use __FILE__).
+         * @param lineNumber 
+         *      The line number in the calling file (use __LINE__).
          */
         virtual void setMark( const char* file, const int lineNumber ) = 0;
         
@@ -57,6 +61,7 @@
          * Clones this exception.  This is useful for cases where you need
          * to preserve the type of the original exception as well as the message.
          * All subclasses should override.
+         * 
          * @return Copy of this Exception object
          */
         virtual CMSException* clone() const = 0;
@@ -64,6 +69,7 @@
         /**
          * Provides the stack trace for every point where
          * this exception was caught, marked, and rethrown.
+         * 
          * @return vector containing stack trace strings
          */
         virtual std::vector< std::pair< std::string, int> > getStackTrace() const = 0;
@@ -75,12 +81,14 @@
         
         /**
          * Prints the stack trace to the given output stream.
+         * 
          * @param stream the target output stream.
          */
         virtual void printStackTrace( std::ostream& stream ) const = 0;
         
         /**
          * Gets the stack trace as one contiguous string.
+         * 
          * @return string with formatted stack trace data
          */
         virtual std::string getStackTraceString() const = 0;
diff --git a/src/main/cms/CMSProperties.h b/src/main/cms/CMSProperties.h
index c5c6468..c2c5a5e 100644
--- a/src/main/cms/CMSProperties.h
+++ b/src/main/cms/CMSProperties.h
@@ -36,25 +36,30 @@
 
         /**
          * Returns true if the properties object is empty
+         * 
          * @return true if empty
          */
         virtual bool isEmpty() const = 0;
 
         /**
          * Looks up the value for the given property.
-         * @param name The name of the property to be looked up.
+         * 
+         * @param name 
+         *      The name of the property to be looked up.
          * @return the value of the property with the given name, if it
-         * exists.  If it does not exist, returns NULL.
+         *         exists.  If it does not exist, returns NULL.
          */
         virtual const char* getProperty( const std::string& name ) const = 0;
 
         /**
          * Looks up the value for the given property.
-         * @param name the name of the property to be looked up.
-         * @param defaultValue The value to be returned if the given
-         * property does not exist.
+         * 
+         * @param name 
+         *      the name of the property to be looked up.
+         * @param defaultValue 
+         *      The value to be returned if the given property does not exist.
          * @return The value of the property specified by <code>name</code>, if it
-         * exists, otherwise the <code>defaultValue</code>.
+         *         exists, otherwise the <code>defaultValue</code>.
          */
         virtual std::string getProperty(
             const std::string& name,
@@ -63,8 +68,11 @@
         /**
          * Sets the value for a given property.  If the property already
          * exists, overwrites the value.
-         * @param name The name of the value to be written.
-         * @param value The value to be written.
+         * 
+         * @param name 
+         *      The name of the value to be written.
+         * @param value 
+         *      The value to be written.
          */
         virtual void setProperty(
             const std::string& name,
@@ -72,33 +80,41 @@
 
         /**
          * Check to see if the Property exists in the set
-         * @param name the name of the property to check
+         * 
+         * @param name 
+         *      the name of the property to check
          * @return true if property exists, false otherwise.
          */
         virtual bool hasProperty( const std::string& name ) const = 0;
 
         /**
          * Removes the property with the given name.
-         * @param name the name of the property to be removed.s
+         * 
+         * @param name 
+         *      the name of the property to be removed.s
          */
         virtual void remove( const std::string& name ) = 0;
 
         /**
          * Method that serializes the contents of the property map to
          * an arryay.
+         * 
          * @return list of pairs where the first is the name and the second
-         * is the value.
+         *         is the value.
          */
         virtual std::vector< std::pair< std::string, std::string > > toArray() const = 0;
 
         /**
          * Copies the contents of the given properties object to this one.
-         * @param source The source properties object.
+         * 
+         * @param source 
+         *      The source properties object.
          */
         virtual void copy( const CMSProperties* source ) = 0;
 
         /**
          * Clones this object.
+         * 
          * @returns a replica of this object.
          */
         virtual CMSProperties* clone() const = 0;
@@ -111,6 +127,7 @@
         /**
          * Formats the contents of the Properties Object into a string
          * that can be logged, etc.
+         * 
          * @returns string value of this object.
          */
         virtual std::string toString() const = 0;
diff --git a/src/main/cms/Closeable.h b/src/main/cms/Closeable.h
index 57d3214..f679326 100644
--- a/src/main/cms/Closeable.h
+++ b/src/main/cms/Closeable.h
@@ -35,6 +35,7 @@
         /**
          * Closes this object and deallocates the appropriate resources.
          * The object is generally no longer usable after calling close.
+         * 
          * @throws CMSException
          */
         virtual void close() throw( CMSException ) = 0;
diff --git a/src/main/cms/Connection.h b/src/main/cms/Connection.h
index ea2d127..ade166d 100644
--- a/src/main/cms/Connection.h
+++ b/src/main/cms/Connection.h
@@ -27,7 +27,10 @@
 namespace cms
 {
     class ExceptionListener;
-
+   
+    /**
+     * The client's connection to its provider.
+     */
     class CMS_API Connection :
         public Startable,
         public Stoppable,
@@ -38,43 +41,51 @@
         virtual ~Connection() {}
 
         /**
-         * Closes this connection as well as any Sessions
+         * Closes this connection as well as any Sessions 
          * created from it (and those Sessions' consumers and
          * producers).
+         * 
          * @throws CMSException
          */
         virtual void close() throw( CMSException ) = 0;
 
-        /**
+		/**
          * Creates an AUTO_ACKNOWLEDGE Session.
+         * 
          * @throws CMSException
          */
         virtual Session* createSession() throw ( CMSException ) = 0;
-
+				
         /**
          * Creates a new Session to work for this Connection using the
          * specified acknowledgment mode
-         * @param the Acknowledgement Mode to use.
+         * 
+         * @param ackMode
+         *      the Acknowledgement Mode to use.
          * @throws CMSException
          */
-        virtual Session* createSession( Session::AcknowledgeMode ackMode )
+        virtual Session* createSession( Session::AcknowledgeMode ackMode ) 
             throw ( CMSException ) = 0;
 
         /**
          * Get the Client Id for this session
+         * 
          * @return Client Id String
          */
-        virtual std::string getClientID() const = 0;
+        virtual std::string getClientID() const = 0;      
 
         /**
          * Gets the registered Exception Listener for this connection
+         * 
          * @return pointer to an exception listnener or NULL
          */
         virtual ExceptionListener* getExceptionListener() const = 0;
 
         /**
          * Sets the registed Exception Listener for this connection
-         * @param pointer to and <code>ExceptionListener</code>
+         * 
+         * @param listener
+         *      pointer to and <code>ExceptionListener</code>
          */
         virtual void setExceptionListener( ExceptionListener* listener ) = 0;
 
diff --git a/src/main/cms/ConnectionFactory.h b/src/main/cms/ConnectionFactory.h
index 059a5c2..4e3c789 100644
--- a/src/main/cms/ConnectionFactory.h
+++ b/src/main/cms/ConnectionFactory.h
@@ -40,6 +40,7 @@
          * connection is created in stopped mode. No messages will be
          * delivered until the Connection.start method is explicitly
          * called.
+         *
          * @return Pointer to a connection object, caller owns the pointer
          * @throws CMSException
          */
@@ -53,8 +54,11 @@
          * change the defaults, subsequent calls to the parameterless
          * createConnection will continue to use the default values that
          * were set in the Constructor.
-         * @param username to authenticate with
-         * @param password to authenticate with
+         *
+         * @param username
+         *      to authenticate with
+         * @param password
+         *      to authenticate with
          * @returns a Connection Pointer
          * @throws CMSException
          */
@@ -70,10 +74,14 @@
          * change the defaults, subsequent calls to the parameterless
          * createConnection will continue to use the default values that
          * were set in the Constructor.
-         * @param username to authenticate with
-         * @param password to authenticate with
-         * @param clientId to assign to connection if "" then a random cleint
-         *        Id is created for this connection.
+         *
+         * @param username
+         *      to authenticate with
+         * @param password
+         *      to authenticate with
+         * @param clientId
+         *      to assign to connection if "" then a random client Id is
+         *      created for this connection.
          * @returns a Connection Pointer
          * @throws CMSException
          */
@@ -82,6 +90,19 @@
                                                    const std::string& clientId )
             throw ( cms::CMSException ) = 0;
 
+    public:
+
+        /**
+         * Static method that is used to create a provider specfic connection
+         * factory.  The provider implements this method in their library and
+         * returns an instance of a ConnectionFactory dervied object.
+         * @param brokerURI - the address to use to connect to the broker.
+         * @returns Provider specific ConnectionFactory
+         * @throws CMSException if and error occurs.
+         */
+        static ConnectionFactory* createCMSConnectionFactory( const std::string& brokerURI )
+            throw ( cms::CMSException );
+
     };
 
 }
diff --git a/src/main/cms/Destination.h b/src/main/cms/Destination.h
index 3b2bb2b..6607056 100644
--- a/src/main/cms/Destination.h
+++ b/src/main/cms/Destination.h
@@ -48,6 +48,7 @@
       
         /**
          * Retrieve the Destination Type for this Destination
+         * 
          * @return The Destination Type
          */
         virtual DestinationType getDestinationType() const = 0;
@@ -58,6 +59,7 @@
          * uniquely identify a particular destination.  For example, a topic
          * and a queue both named "FOO" must not have equivalent provider
          * strings.
+         * 
          * @return Provider specific Name
          */
         virtual std::string toProviderString() const = 0;
@@ -65,20 +67,24 @@
         /**
          * Creates a new instance of this destination type that is a
          * copy of this one, and returns it.
+         * 
          * @returns cloned copy of this object
          */
         virtual cms::Destination* clone() const = 0;
       
         /**
          * Copies the contents of the given Destinastion object to this one.
-         * @param source The source Destination object.
+         * 
+         * @param source 
+         *      The source Destination object.
          */
         virtual void copy( const cms::Destination& source ) = 0;
 
         /**
          * Retrieve any properties that might be part of the destination
          * that was specified.  This is a deviation from the JMS spec
-         * but necessary due to C++ restrictions.  
+         * but necessary due to C++ restrictions.
+         * 
          * @return const reference to a properties object.
          */
         virtual const CMSProperties& getCMSProperties() const = 0;
diff --git a/src/main/cms/ExceptionListener.h b/src/main/cms/ExceptionListener.h
index ef112f3..17f9ff7 100644
--- a/src/main/cms/ExceptionListener.h
+++ b/src/main/cms/ExceptionListener.h
@@ -23,6 +23,11 @@
 
 namespace cms{
 
+    /**
+     * If a CMS provider detects a serious problem, it notifies the client
+     * application through an <code>ExceptionListener</code> that is registered
+     * with the <code>Connection</code>.
+     */
     class CMS_API ExceptionListener
     {
     public:
@@ -33,7 +38,9 @@
          * Called when an exception occurs.  Once notified of an exception
          * the caller should no longer use the resource that generated the
          * exception.
-         * @param Exception Object that occurred.
+         * 
+         * @param ex
+         *      Exception Object that occurred.
          */
         virtual void onException( const cms::CMSException& ex ) = 0;
       
diff --git a/src/main/cms/MapMessage.h b/src/main/cms/MapMessage.h
index 29c6e62..2a88348 100644
--- a/src/main/cms/MapMessage.h
+++ b/src/main/cms/MapMessage.h
@@ -46,6 +46,7 @@
         /**
          * Returns an Enumeration of all the names in the MapMessage 
          * object.
+         * 
          * @return STL Vector of String values, each of which is the 
          *         name of an item in the MapMessage
          * @throws CMSException
@@ -54,14 +55,18 @@
 
         /**
          * Indicates whether an item exists in this MapMessage object.
-         * @param name - String name of the Object in question
+         * 
+         * @param name
+         *      String name of the Object in question
          * @return boolean value indicating if the name is in the map
          */
         virtual bool itemExists( const std::string& name ) const = 0;
         
         /**
          * Returns the Boolean value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual bool getBoolean( const std::string& name ) const 
@@ -69,8 +74,11 @@
         
         /** 
          * Sets a boolean value with the specified name into the Map.
-         * @param name - the name of the boolean
-         * @param value - the boolean value to set in the Map
+         * 
+         * @param name
+         *      the name of the boolean
+         * @param value
+         *      the boolean value to set in the Map
          * @throws CMSException
          */
         virtual void setBoolean( const std::string& name,
@@ -78,7 +86,9 @@
 
         /**
          * Returns the Byte value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual unsigned char getByte( const std::string& name ) const 
@@ -86,8 +96,11 @@
         
         /** 
          * Sets a Byte value with the specified name into the Map.
-         * @param name - the name of the Byte
-         * @param value - the Byte value to set in the Map
+         * 
+         * @param name
+         *      the name of the Byte
+         * @param value
+         *      the Byte value to set in the Map
          * @throws CMSException
          */
         virtual void setByte( const std::string& name,
@@ -95,7 +108,9 @@
 
         /**
          * Returns the Bytes value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual std::vector<unsigned char> getBytes( const std::string& name ) const
@@ -103,8 +118,11 @@
         
         /** 
          * Sets a Bytes value with the specified name into the Map.
-         * @param name - the name of the Bytes
-         * @param value - the Bytes value to set in the Map
+         * 
+         * @param name
+         *      The name of the Bytes
+         * @param value
+         *      The Bytes value to set in the Map
          * @throws CMSException
          */
         virtual void setBytes( const std::string& name,
@@ -113,7 +131,9 @@
 
         /**
          * Returns the Char value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name
+         *      name of the value to fetch from the map
          * @throws CMSException
          */
         virtual char getChar( const std::string& name ) const 
@@ -121,8 +141,11 @@
         
         /** 
          * Sets a Char value with the specified name into the Map.
-         * @param name - the name of the Char
-         * @param value - the Char value to set in the Map
+         * 
+         * @param name
+         *      the name of the Char
+         * @param value
+         *      the Char value to set in the Map
          * @throws CMSException
          */
         virtual void setChar( const std::string& name, char value ) 
@@ -130,7 +153,9 @@
 
         /**
          * Returns the Double value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual double getDouble( const std::string& name ) const 
@@ -138,8 +163,11 @@
         
         /** 
          * Sets a Double value with the specified name into the Map.
-         * @param name - the name of the Double
-         * @param value - the Double value to set in the Map
+         * 
+         * @param name
+         *      The name of the Double
+         * @param value
+         *      The Double value to set in the Map
          * @throws CMSException
          */
         virtual void setDouble( const std::string& name,
@@ -147,7 +175,9 @@
 
         /**
          * Returns the Float value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual float getFloat( const std::string& name ) const 
@@ -155,8 +185,11 @@
         
         /** 
          * Sets a Float value with the specified name into the Map.
-         * @param name - the name of the Float
-         * @param value - the Float value to set in the Map
+         * 
+         * @param name
+         *      The name of the Float
+         * @param value
+         *      The Float value to set in the Map
          * @throws CMSException
          */
         virtual void setFloat( const std::string& name, float value ) 
@@ -164,7 +197,9 @@
 
         /**
          * Returns the Int value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual int getInt( const std::string& name ) const
@@ -172,8 +207,11 @@
         
         /** 
          * Sets a Int value with the specified name into the Map.
-         * @param name - the name of the Int
-         * @param value - the Int value to set in the Map
+         * 
+         * @param name
+         *      The name of the Int
+         * @param value
+         *      The Int value to set in the Map
          * @throws CMSException
          */
         virtual void setInt( const std::string& name, int value ) 
@@ -181,7 +219,9 @@
 
         /**
          * Returns the Long value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual long long getLong( const std::string& name ) const 
@@ -189,8 +229,11 @@
         
         /** 
          * Sets a Long value with the specified name into the Map.
-         * @param name - the name of the Long
-         * @param value - the Long value to set in the Map
+         * 
+         * @param name
+         *      The name of the Long
+         * @param value
+         *      The Long value to set in the Map
          * @throws CMSException
          */
         virtual void setLong( const std::string& name, long long value ) 
@@ -198,7 +241,9 @@
 
         /**
          * Returns the Short value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual short getShort( const std::string& name ) const
@@ -206,8 +251,11 @@
         
         /** 
          * Sets a Short value with the specified name into the Map.
-         * @param name - the name of the Short
-         * @param value - the Short value to set in the Map
+         * 
+         * @param name
+         *      The name of the Short
+         * @param value
+         *      The Short value to set in the Map
          * @throws CMSException
          */
         virtual void setShort( const std::string& name, short value ) 
@@ -215,7 +263,9 @@
 
         /**
          * Returns the String value of the Specified name
-         * @param name of the value to fetch from the map
+         * 
+         * @param name 
+         *      Name of the value to fetch from the map
          * @throws CMSException
          */
         virtual std::string getString( const std::string& name ) const 
@@ -223,8 +273,11 @@
         
         /** 
          * Sets a String value with the specified name into the Map.
-         * @param name - the name of the String
-         * @param value - the String value to set in the Map
+         * 
+         * @param name
+         *      The name of the String
+         * @param value
+         *      The String value to set in the Map
          * @throws CMSException
          */
         virtual void setString( const std::string& name, 
diff --git a/src/main/cms/Message.h b/src/main/cms/Message.h
index 076931c..5e41a96 100644
--- a/src/main/cms/Message.h
+++ b/src/main/cms/Message.h
@@ -41,6 +41,7 @@
         /**
          * Clone this message exactly, returns a new instance that the
          * caller is required to delete.
+         * 
          * @return new copy of this message
          */
         virtual Message* clone() const = 0;                
@@ -87,6 +88,7 @@
         
         /**
          * Retrieves the propery names.
+         * 
          * @return The complete set of property names currently in this
          * message.
          */
@@ -94,14 +96,18 @@
         
         /**
          * Indicates whether or not a given property exists.
-         * @param name The name of the property to look up.
+         * 
+         * @param name 
+         *      The name of the property to look up.
          * @return True if the property exists in this message.
          */
         virtual bool propertyExists( const std::string& name ) const = 0;
         
         /**
          * Gets a boolean property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -110,7 +116,9 @@
             
         /**
          * Gets a byte property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -119,7 +127,9 @@
             
         /**
          * Gets a double property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -128,7 +138,9 @@
             
         /**
          * Gets a float property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -137,7 +149,9 @@
             
         /**
          * Gets a int property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -146,7 +160,9 @@
             
         /**
          * Gets a long property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -155,7 +171,9 @@
             
         /**
          * Gets a short property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -164,7 +182,9 @@
             
         /**
          * Gets a string property.
-         * @param name The name of the property to retrieve.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
          * @return The value for the named property.
          * @throws CMSException if the property does not exist.
          */
@@ -173,8 +193,11 @@
         
         /**
          * Sets a boolean property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setBooleanProperty( const std::string& name,
@@ -182,8 +205,11 @@
             
         /**
          * Sets a byte property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setByteProperty( const std::string& name,
@@ -191,8 +217,11 @@
             
         /**
          * Sets a double property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setDoubleProperty( const std::string& name,
@@ -200,8 +229,10 @@
             
         /**
          * Sets a float property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setFloatProperty( const std::string& name,
@@ -209,8 +240,11 @@
             
         /**
          * Sets a int property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setIntProperty( const std::string& name,
@@ -218,8 +252,11 @@
             
         /**
          * Sets a long property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setLongProperty( const std::string& name,
@@ -227,8 +264,11 @@
             
         /**
          * Sets a short property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setShortProperty( const std::string& name,
@@ -236,8 +276,11 @@
             
         /**
          * Sets a string property.
-         * @param name The name of the property to retrieve.
-         * @param value The value for the named property.
+         * 
+         * @param name 
+         *      The name of the property to retrieve.
+         * @param value 
+         *      The value for the named property.
          * @throws CMSException
          */
         virtual void setStringProperty( const std::string& name,
@@ -284,12 +327,14 @@
          * values are not required to support byte[] values. The use of a byte[] 
          * value for CMSCorrelationID is non-portable.
          * 
-         * @param correlationId - the message ID of a message being referred to.
+         * @param correlationId
+         *      The message ID of a message being referred to.
          */
         virtual void setCMSCorrelationID( const std::string& correlationId ) = 0;
 
         /**
          * Gets the DeliveryMode for this message
+         * 
          * @return DeliveryMode enumerated value.
          */
         virtual int getCMSDeliveryMode() const = 0;
@@ -300,7 +345,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the value for a message that has been received.
          * 
-         * @param mode - DeliveryMode enumerated value.
+         * @param mode
+         *      DeliveryMode enumerated value.
          */
         virtual void setCMSDeliveryMode( int mode ) = 0;
       
@@ -327,7 +373,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the value for a message that has been received.
          * 
-         * @param destination - Destination Object
+         * @param destination
+         *      Destination Object
          */
         virtual void setCMSDestination( const Destination* destination ) = 0;
       
@@ -362,7 +409,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the value for a message that has been received.
          * 
-         * @param expireTime the message's expiration time
+         * @param expireTime 
+         *      the message's expiration time
          */
         virtual void setCMSExpiration( long long expireTime ) = 0;
       
@@ -403,7 +451,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the vaue for a message that has been received.
          * 
-         * @param id - the ID of the message
+         * @param id
+         *      the ID of the message
          */
         virtual void setCMSMessageID( const std::string& id ) = 0;
       
@@ -429,7 +478,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the value for a message that has been received.
          * 
-         * @param priority - priority value for this message
+         * @param priority
+         *      priority value for this message
          */
         virtual void setCMSPriority( int priority ) = 0;
 
@@ -450,7 +500,8 @@
          * This field is set at the time the message is delivered. This method 
          * can be used to change the value for a message that has been received.
          * 
-         * @param redelivered - boolean redelivered value
+         * @param redelivered
+         *      boolean redelivered value
          */
         virtual void setCMSRedelivered( bool redelivered ) = 0;
 
@@ -484,8 +535,8 @@
          * with a reply it has just received. The client can use the 
          * CMSCorrelationID header field for this purpose.
          * 
-         * @param destination - Destination to which to send a response to this 
-         * message
+         * @param destination
+         *      Destination to which to send a response to this message
          */
         virtual void setCMSReplyTo( const cms::Destination* destination ) = 0;
 
@@ -522,7 +573,8 @@
          * CMS providers set this field when a message is sent. This method can 
          * be used to change the value for a message that has been received.
          * 
-         * @param timeStamp - integer time stamp value
+         * @param timeStamp
+         *      integer time stamp value
          */
         virtual void setCMSTimestamp( long long timeStamp ) = 0;
 
@@ -559,7 +611,8 @@
          * literals are used, they may not be valid type names for some CMS 
          * providers.
          * 
-         * @param type the message type
+         * @param type 
+         *      the message type
          * @see getCMSType
          */
         virtual void setCMSType( const std::string& type ) = 0;
diff --git a/src/main/cms/MessageConsumer.h b/src/main/cms/MessageConsumer.h
index 5ee6c66..9de115b 100644
--- a/src/main/cms/MessageConsumer.h
+++ b/src/main/cms/MessageConsumer.h
@@ -25,7 +25,25 @@
 
 namespace cms
 {
-
+    /**
+     * A client uses a <code>MessageConsumer</code> to received messages
+     * from a destination.<br>
+     * <br>
+     * A client may either synchronously receive a message consumer's messages 
+     * or have the consumer asynchronously deliver them as they arrive. <br>
+     * <br>
+     * For synchronous receipt, a client can request the next message from a 
+     * message consumer using one of its <code>receive</code> methods. There are 
+     * several variations of <code>receive</code> that allow a client to poll or 
+     * wait for the next message.<br>  
+     * <br>
+     * For asynchronous delivery, a client can register a 
+     * <code>MessageListener</code> object with a message consumer. As messages 
+     * arrive at the message consumer, it delivers them by calling the 
+     * <code>MessageListener</code>'s <code>onMessage</code> method.
+     * 
+     * @see MessageListener
+     */
     class CMS_API MessageConsumer : public Closeable
     {
     public:
@@ -34,6 +52,7 @@
       
         /**
          * Synchronously Receive a Message
+         * 
          * @return new message
          * @throws CMSException
          */
@@ -42,6 +61,7 @@
         /**
          * Synchronously Receive a Message, time out after defined interval.
          * Returns null if nothing read.
+         * 
          * @return new message
          * @throws CMSException
          */
@@ -50,6 +70,7 @@
         /**
          * Receive a Message, does not wait if there isn't a new message
          * to read, returns NULL if nothing read.
+         * 
          * @return new message
          * @throws CMSException
          */
@@ -57,18 +78,22 @@
 
         /**
          * Sets the MessageListener that this class will send notifs on
-         * @param MessageListener interface pointer
+         * 
+         * @param listener 
+         *      The listener of messages received by this consumer.
          */
         virtual void setMessageListener( MessageListener* listener ) = 0;
       
         /**
          * Gets the MessageListener that this class will send notifs on
-         * @param MessageListener interface pointer
+         * 
+         * @return The listener of messages received by this consumer
          */
         virtual MessageListener* getMessageListener() const = 0;
       
         /**
          * Gets this message consumer's message selector expression.
+         * 
          * @return This Consumer's selector expression or "".
          * @throws cms::CMSException
          */
diff --git a/src/main/cms/MessageListener.h b/src/main/cms/MessageListener.h
index b20ea9c..d160a4d 100644
--- a/src/main/cms/MessageListener.h
+++ b/src/main/cms/MessageListener.h
@@ -24,6 +24,10 @@
     
     class Message;
     
+    /**
+     * A <code>MessageListener</code> object is used to receive asynchronously 
+     * delivered messages.
+     */
     class CMS_API MessageListener{
     public:
     
@@ -41,7 +45,8 @@
          * It is considered a programming error for this method to throw an
          * exception.
          * 
-         * @param Message object const pointer recipient does not own.
+         * @param message
+         *      Message object const pointer recipient does not own.
          */
         virtual void onMessage( const Message* message ) = 0;
 
diff --git a/src/main/cms/MessageProducer.h b/src/main/cms/MessageProducer.h
index 7282024..8dc1c5c 100644
--- a/src/main/cms/MessageProducer.h
+++ b/src/main/cms/MessageProducer.h
@@ -28,9 +28,26 @@
 namespace cms
 {
     /** 
-     * defines the <code>MessageProducer</code> interface that is used
-     * by all MessageProducer derivations.  This class defines the JMS
-     * spec'd interface for a MessageProducer.
+     * A client uses a <code>MessageProducer</code> object to send messages to 
+     * a destination. A <code>MessageProducer</code> object is created by 
+     * passing a <code>Destination</code> object to a message-producer creation 
+     * method supplied by a session.<br>
+     * <br>
+     * A client also has the option of creating a message producer without 
+     * supplying a destination. In this case, a destination must be provided 
+     * with every send operation. A typical use for this kind of message 
+     * producer is to send replies to requests using the request's CMSReplyTo 
+     * destination.<br>
+     * <br>
+     * A client can specify a default delivery mode, priority, and time to live 
+     * for messages sent by a message producer. It can also specify the 
+     * delivery mode, priority, and time to live for an individual message.<br>
+     * <br>
+     * A client can specify a time-to-live value in milliseconds for each 
+     * message it sends. This value defines a message expiration time that is 
+     * the sum of the message's time-to-live and the GMT when it is sent (for 
+     * transacted sends, this is the time the client sends the message, not the 
+     * time the transaction is committed). 
      */
     class CMS_API MessageProducer : public Closeable
     {
@@ -42,7 +59,9 @@
          * Sends the message to the default producer destination, but does
          * not take ownership of the message, caller must still destroy it.
          * Uses default values for deliveryMode, priority, and time to live.
-         * @param message - a Message Object Pointer
+         * 
+         * @param message
+         *      The message to be sent.
          * @throws CMSException
          */
         virtual void send( Message* message ) throw ( CMSException ) = 0;             
@@ -50,11 +69,15 @@
         /**
          * Sends the message to the default producer destination, but does
          * not take ownership of the message, caller must still destroy it.
-         * @param message - a Message Object Pointer
-         * @param deliverMode The delivery mode to be used.
-         * @param priority The priority for this message.
-         * @param timeToLive The time to live value for this message in
-         * milliseconds.
+         * 
+         * @param message
+         *      The message to be sent.
+         * @param deliveryMode 
+         *      The delivery mode to be used.
+         * @param priority 
+         *      The priority for this message.
+         * @param timeToLive 
+         *      The time to live value for this message in milliseconds.
          * @throws CMSException
          */
         virtual void send( Message* message, int deliveryMode, int priority, 
@@ -64,8 +87,11 @@
          * Sends the message to the designated destination, but does
          * not take ownership of the message, caller must still destroy it.
          * Uses default values for deliveryMode, priority, and time to live.
-         * @param destination - a Message Object Pointer
-         * @param message - the message to send to the destination
+         * 
+         * @param destination
+         *      The destination on which to send the message
+         * @param message
+         *      the message to be sent.
          * @throws CMSException
          */
         virtual void send( const Destination* destination,
@@ -74,12 +100,17 @@
         /**
          * Sends the message to the designated destination, but does
          * not take ownership of the message, caller must still destroy it.
-         * @param destination - a Message Object Pointer
-         * @param message - a Message Object Pointer
-         * @param deliverMode The delivery mode to be used.
-         * @param priority The priority for this message.
-         * @param timeToLive The time to live value for this message in
-         * milliseconds.
+         * 
+         * @param destination
+         *      The destination on which to send the message
+         * @param message
+         *      The message to be sent.
+         * @param deliveryMode
+         *      The delivery mode to be used.
+         * @param priority 
+         *      The priority for this message.
+         * @param timeToLive 
+         *      The time to live value for this message in milliseconds.
          * @throws CMSException
          */     
         virtual void send( const Destination* destination,
@@ -88,24 +119,30 @@
             
         /** 
          * Sets the delivery mode for this Producer
-         * @param mode - The DeliveryMode
+         * 
+         * @param mode
+         *      The DeliveryMode
          */
         virtual void setDeliveryMode( int mode ) = 0;
       
         /** 
          * Gets the delivery mode for this Producer
+         * 
          * @return The DeliveryMode
          */
         virtual int getDeliveryMode() const = 0;
       
         /**
          * Sets if Message Ids are disbled for this Producer
-         * @param value - boolean indicating enable / disable (true / false)
+         * 
+         * @param value
+         *      boolean indicating enable / disable (true / false)
          */
         virtual void setDisableMessageID( bool value ) = 0;
       
         /**
          * Gets if Message Ids are disbled for this Producer
+         * 
          * @return boolean indicating enable / disable (true / false)
          */
         virtual bool getDisableMessageID() const = 0;
@@ -118,18 +155,22 @@
       
         /**
          * Gets if Message Time Stamps are disbled for this Producer
+         * 
          * @return boolean indicating enable / disable (true / false)
          */
         virtual bool getDisableMessageTimeStamp() const = 0;
       
         /**
          * Sets the Priority that this Producers sends messages at
-         * @param priority - int value for Priority level
+         * 
+         * @param priority
+         *      int value for Priority level
          */
         virtual void setPriority( int priority ) = 0;
       
         /**
          * Gets the Priority level that this producer sends messages at
+         * 
          * @return int based priority level
          */
         virtual int getPriority() const = 0;
@@ -138,12 +179,15 @@
          * Sets the Time to Live that this Producers sends messages with.  This
          * value will be used if the time to live is not specified via the
          * send method.
-         * @param time - default time to live value in milliseconds
+         * 
+         * @param time
+         *      default time to live value in milliseconds
          */
         virtual void setTimeToLive( long long time ) = 0;
       
         /**
          * Gets the Time to Live that this producer sends messages with
+         * 
          * @return Time to live value in milliseconds
          */
         virtual long long getTimeToLive() const = 0;
diff --git a/src/main/cms/ObjectMessage.h b/src/main/cms/ObjectMessage.h
index b0f5e50..2159ce9 100644
--- a/src/main/cms/ObjectMessage.h
+++ b/src/main/cms/ObjectMessage.h
@@ -23,6 +23,10 @@
 
 namespace cms{
 
+    /**
+     * Place holder for interaction with JMS systems that support Java 
+     * serialized <code>ObjectMessage</code>s.
+     */
     class CMS_API ObjectMessage : public Message
     {
     public:
diff --git a/src/main/cms/Queue.h b/src/main/cms/Queue.h
index 604d546..c71e307 100644
--- a/src/main/cms/Queue.h
+++ b/src/main/cms/Queue.h
@@ -35,6 +35,7 @@
         
         /**
          * Gets the name of this queue.
+         * 
          * @return The queue name.
          */
         virtual std::string getQueueName() const 
diff --git a/src/main/cms/QueueBrowser.h b/src/main/cms/QueueBrowser.h
new file mode 100644
index 0000000..fb402f0
--- /dev/null
+++ b/src/main/cms/QueueBrowser.h
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _CMS_QUEUEBROWSER_H_
+#define _CMS_QUEUEBROWSER_H_
+
+#include <vector>
+#include <cms/Config.h>
+#include <cms/Closeable.h>
+#include <cms/Queue.h>
+#include <cms/CMSException.h>
+
+namespace cms{
+
+    /**
+     * This class implements in interface for browsing the messages in a Queue
+     * without removing them.
+     */
+    class CMS_API QueueBrowser : public Closeable {
+    public:
+
+        virtual ~QueueBrowser() {}
+
+        /**
+         * @returns the Queue that this browser is listening on.
+         * @throws CMSException if an internal error occurs.
+         */
+        virtual const Queue* getQueue() const throw ( cms::CMSException ) = 0;
+
+        /**
+         * @returns the MessageSelector that is used on when this browser was
+         * created or empty string if no selector was present.
+         * @throws CMSException if an internal error occurs.
+         */
+        virtual std::string getMessageSelector() const throw ( cms::CMSExceptio ) = 0;
+
+        /**
+         * Gets an enumeration for browsing the current queue messages in the
+         * order they would be received.
+         * @returns an stl vector for browsing the messages.
+         * @throws CMSException if an internal error occurs.
+         */
+        virtual void std::vector<cms::Message*> getEnumeration() const throw ( cms::CMSException ) = 0;
+
+    };
+
+}
+
+#endif /*_CMS_QUEUEBROWSER_H_*/
diff --git a/src/main/cms/Session.h b/src/main/cms/Session.h
index 883c269..c93a6e1 100644
--- a/src/main/cms/Session.h
+++ b/src/main/cms/Session.h
@@ -34,6 +34,26 @@
 namespace cms
 {
 
+    /**
+     * A Session object is a single-threaded context for producing and consuming 
+     * messages.<br>
+     * <br>
+     * A session serves several purposes:<br>
+     * <br>
+     *  - It is a factory for its message producers and consumers.<br>
+     *  - It supplies provider-optimized message factories.<br>
+     *  - It is a factory for TemporaryTopics and TemporaryQueues.<br>
+     *  - It provides a way to create Queue or Topic objects for those clients 
+     *    that need to dynamically manipulate provider-specific destination 
+     *    names.<br>
+     *  - It supports a single series of transactions that combine work spanning 
+     *    its producers and consumers into atomic units.<br>
+     *  - It defines a serial order for the messages it consumes and the messages 
+     *    it produces.<br>
+     *  - It retains messages it consumes until they have been acknowledged.<br>
+     *  - It serializes execution of message listeners registered with its message 
+     *    consumers.<br>
+     */
     class CMS_API Session : public Closeable
     {
     public:
@@ -80,6 +100,7 @@
         /**
          * Closes this session as well as any active child consumers or
          * producers.
+         * 
          * @throws CMSException
          */
         virtual void close() throw( CMSException ) = 0;
@@ -87,6 +108,7 @@
         /**
          * Commits all messages done in this transaction and releases any 
          * locks currently held.
+         * 
          * @throws CMSException
          */
         virtual void commit() throw ( CMSException ) = 0;
@@ -94,13 +116,16 @@
         /**
          * Rollsback all messages done in this transaction and releases any 
          * locks currently held.
+         * 
          * @throws CMSException
          */
         virtual void rollback() throw ( CMSException ) = 0;
 
         /**
          * Creates a MessageConsumer for the specified destination.
-         * @param the Destination that this consumer receiving messages for.
+         * 
+         * @param destination
+         *      the Destination that this consumer receiving messages for.
          * @return pointer to a new MessageConsumer that is owned by the 
          *         caller ( caller deletes )
          * @throws CMSException
@@ -112,8 +137,11 @@
         /**
          * Creates a MessageConsumer for the specified destination, using a 
          * message selector.
-         * @param the Destination that this consumer receiving messages for.
-         * @param the Message Selector to use
+         * 
+         * @param destination
+         *      the Destination that this consumer receiving messages for.
+         * @param selector
+         *      the Message Selector to use
          * @return pointer to a new MessageConsumer that is owned by the 
          *         caller ( caller deletes )
          * @throws CMSException
@@ -126,11 +154,15 @@
         /**
          * Creates a MessageConsumer for the specified destination, using a 
          * message selector.
-         * @param the Destination that this consumer receiving messages for.
-         * @param the Message Selector to use
-         * @param if true, and the destination is a topic, inhibits the 
-         * delivery of messages published by its own connection. The behavior 
-         * for NoLocal is not specified if the destination is a queue. 
+         * 
+         * @param destination
+         *      the Destination that this consumer receiving messages for.
+         * @param selector
+         *      the Message Selector to use
+         * @param noLocal
+         *      if true, and the destination is a topic, inhibits the 
+         *      delivery of messages published by its own connection. The behavior 
+         *      for NoLocal is not specified if the destination is a queue. 
          * @return pointer to a new MessageConsumer that is owned by the 
          *         caller ( caller deletes )
          * @throws CMSException
@@ -144,9 +176,17 @@
         /**
          * Creates a durable subscriber to the specified topic, using a 
          * message selector
-         * @param the topic to subscribe to
-         * @param name used to identify the subscription
-         * @param only messages matching the selector are received
+         * 
+         * @param destination
+         *      the topic to subscribe to
+         * @param name
+         *      The name used to identify the subscription
+         * @param selector
+         *      the Message Selector to use
+         * @param noLocal
+         *      if true, and the destination is a topic, inhibits the 
+         *      delivery of messages published by its own connection. The behavior 
+         *      for NoLocal is not specified if the destination is a queue. 
          * @return pointer to a new durable MessageConsumer that is owned by 
          *         the caller ( caller deletes )
          * @throws CMSException
@@ -161,7 +201,9 @@
         /**
          * Creates a MessageProducer to send messages to the specified 
          * destination.
-         * @param the Destination to publish on
+         * 
+         * @param destination
+         *      the Destination to send on
          * @return New MessageProducer that is owned by the caller.
          * @throws CMSException
          */
@@ -170,7 +212,9 @@
 
         /**
          * Creates a queue identity given a Queue name.
-         * @param the name of the new Queue
+         * 
+         * @param queueName
+         *      the name of the new Queue
          * @return new Queue pointer that is owned by the caller.
          * @throws CMSException
          */
@@ -179,7 +223,9 @@
 
         /**
          * Creates a topic identity given a Queue name.
-         * @param the name of the new Topic
+         * 
+         * @param topicName
+         *      the name of the new Topic
          * @return new Topic pointer that is owned by the caller.
          * @throws CMSException
          */
@@ -188,6 +234,7 @@
 
         /**
          * Creates a TemporaryQueue object.
+         * 
          * @return new TemporaryQueue pointer that is owned by the caller.
          * @throws CMSException
          */
@@ -196,6 +243,7 @@
 
         /**
          * Creates a TemporaryTopic object.
+         * 
          * @throws CMSException
          */
         virtual TemporaryTopic* createTemporaryTopic()
@@ -203,6 +251,7 @@
 
         /**
          * Creates a new Message
+         * 
          * @throws CMSException
          */
         virtual Message* createMessage() 
@@ -210,6 +259,7 @@
 
         /**
          * Creates a BytesMessage
+         * 
          * @throws CMSException
          */
         virtual BytesMessage* createBytesMessage() 
@@ -217,8 +267,11 @@
 
         /**
          * Creates a BytesMessage and sets the paylod to the passed value
-         * @param an array of bytes to set in the message
-         * @param the size of the bytes array, or number of bytes to use
+         * 
+         * @param bytes
+         *      an array of bytes to set in the message
+         * @param bytesSize
+         *      the size of the bytes array, or number of bytes to use
          * @throws CMSException
          */
         virtual BytesMessage* createBytesMessage(
@@ -228,6 +281,7 @@
 
         /**
          * Creates a new TextMessage
+         * 
          * @throws CMSException
          */
         virtual TextMessage* createTextMessage() 
@@ -235,7 +289,9 @@
 
         /**
          * Creates a new TextMessage and set the text to the value given
-         * @param the initial text for the message
+         * 
+         * @param text
+         *      the initial text for the message
          * @throws CMSException
          */
         virtual TextMessage* createTextMessage( const std::string& text ) 
@@ -243,6 +299,7 @@
 
         /**
          * Creates a new MapMessage
+         * 
          * @throws CMSException
          */
         virtual MapMessage* createMapMessage() 
@@ -250,12 +307,14 @@
 
         /**
          * Returns the acknowledgement mode of the session.
+         * 
          * @return the Sessions Acknowledge Mode
          */
         virtual AcknowledgeMode getAcknowledgeMode() const = 0;
 
         /**
          * Gets if the Sessions is a Transacted Session
+         * 
          * @return transacted true - false.
          */
         virtual bool isTransacted() const = 0;
@@ -270,7 +329,9 @@
          * Subscriber for the subscription, or while a consumed message is 
          * part of a pending transaction or has not been acknowledged in the 
          * session.
-         * @param name the name used to identify this subscription
+         * 
+         * @param name 
+         *      The name used to identify this subscription
          * @throws CMSException
          */
         virtual void unsubscribe( const std::string& name ) 
diff --git a/src/main/cms/TemporaryQueue.h b/src/main/cms/TemporaryQueue.h
index 4862b99..487cce1 100644
--- a/src/main/cms/TemporaryQueue.h
+++ b/src/main/cms/TemporaryQueue.h
@@ -35,6 +35,7 @@
 
         /**
          * Gets the name of this queue.
+         * 
          * @return The queue name.
          */
         virtual std::string getQueueName() const
@@ -42,6 +43,7 @@
 
         /**
          * Destroy's the Temp Destination at the Broker
+         * 
          * @throws CMSException
          */
         virtual void destroy() throw ( CMSException ) = 0;
diff --git a/src/main/cms/TemporaryTopic.h b/src/main/cms/TemporaryTopic.h
index b0633cb..540a07b 100644
--- a/src/main/cms/TemporaryTopic.h
+++ b/src/main/cms/TemporaryTopic.h
@@ -35,6 +35,7 @@
 
         /**
          * Gets the name of this topic.
+         * 
          * @return The topic name.
          */
         virtual std::string getTopicName()
@@ -42,6 +43,7 @@
 
         /**
          * Destroy's the Temp Destination at the Broker
+         * 
          * @throws CMSException
          */
         virtual void destroy() throw ( CMSException ) = 0;
diff --git a/src/main/cms/TextMessage.h b/src/main/cms/TextMessage.h
index add07f8..bd4ef9b 100644
--- a/src/main/cms/TextMessage.h
+++ b/src/main/cms/TextMessage.h
@@ -35,20 +35,25 @@
 
         /**
          * Gets the message character buffer.
+         * 
          * @return The message character buffer.
          */
         virtual std::string getText() const throw( CMSException ) = 0;
 
         /**
          * Sets the message contents, does not take ownership of the passed
-         * char*, but copies it instead.  
-         * @param msg The message buffer.
+         * char*, but copies it instead.
+         * 
+         * @param msg 
+         *      The message buffer.
          */
         virtual void setText( const char* msg ) throw( CMSException ) = 0;
 
         /**
          * Sets the message contents
-         * @param msg The message buffer.
+         * 
+         * @param msg 
+         *      The message buffer.
          */
         virtual void setText( const std::string& msg ) throw( CMSException ) = 0;
 
diff --git a/src/main/cms/Topic.h b/src/main/cms/Topic.h
index 451f7da..d12dd64 100644
--- a/src/main/cms/Topic.h
+++ b/src/main/cms/Topic.h
@@ -35,6 +35,7 @@
         
         /**
          * Gets the name of this topic.
+         * 
          * @return The topic name.
          */
         virtual std::string getTopicName()