activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r740171 - in /activemq/activemq-cpp/trunk/src: main/decaf/lang/Pointer.h test/Makefile.am test/decaf/lang/PointerTest.cpp test/decaf/lang/PointerTest.h test/testRegistry.cpp
Date Tue, 03 Feb 2009 00:55:09 GMT
Author: tabish
Date: Tue Feb  3 00:55:09 2009
New Revision: 740171

URL: http://svn.apache.org/viewvc?rev=740171&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQCPP-100

Add a smart pointer implementation to allow for sharing of command objects without over copying
them due to lifetime constraints on command elements.

Added:
    activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h   (with props)
    activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp   (with props)
    activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h   (with props)
Modified:
    activemq/activemq-cpp/trunk/src/test/Makefile.am
    activemq/activemq-cpp/trunk/src/test/testRegistry.cpp

Added: activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h?rev=740171&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h (added)
+++ activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h Tue Feb  3 00:55:09 2009
@@ -0,0 +1,228 @@
+/*
+ * 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_POINTER_H_
+#define _DECAF_LANG_POINTER_H_
+
+#include <decaf/util/Config.h>
+#include <decaf/lang/exceptions/NullPointerException.h>
+#include <decaf/util/concurrent/atomic/AtomicInteger.h>
+#include <memory>
+
+namespace decaf {
+namespace lang {
+
+    /**
+     * Decaf's implementation of a Smart Pointer that is a template on a Type
+     * and is Thread Safe.
+     */
+    template< typename T >
+    class DECAF_API Pointer {
+    private:
+
+        T* value;
+        decaf::util::concurrent::atomic::AtomicInteger* refCount;
+
+    public:
+
+        typedef T* StoredType;    // the type of the object we point to
+        typedef T* PointerType;   // type returned by operator->
+        typedef T& ReferenceType; // type returned by operator*
+
+    public:
+
+        /**
+         * Default Constructor
+         *
+         * Initialized the contained pointer to NULL, using the -> operator
+         * results in an exception unless reset to contain a real value.
+         */
+        Pointer() : value( NULL ), refCount( new decaf::util::concurrent::atomic::AtomicInteger(
1 ) ) {}
+
+        /**
+         * Explicit Constructor, creates a Pointer that contains value with a
+         * single reference.  This object now has ownership until a call to release.
+         *
+         * @param value - instance of the type we are containing here.
+         */
+        explicit Pointer( const StoredType& value ) :
+            value( value ), refCount( new decaf::util::concurrent::atomic::AtomicInteger(
1 ) ) {
+        }
+
+        /**
+         * Copy constructor. Copies the value contained in the pointer to the new
+         * instance and increments the reference counter.
+         */
+        Pointer( const Pointer<T>& value ) throw() : value( value.value ), refCount(
value.refCount ) {
+            this->refCount->incrementAndGet();
+        }
+
+        virtual ~Pointer() throw() {
+            if( this->refCount->decrementAndGet() == 0 ) {
+                delete this->value;
+                delete this->refCount;
+            }
+        }
+
+        /**
+         * Resets the Pointer to hold the new value.  Before the new value is stored
+         * reset checks if the old value should be destroyed and if so calls delete.
+         * Call reset with a value of NULL is supported and acts to set this Pointer
+         * to a NULL pointer.
+         *
+         * @param value - The new value to contain.
+         */
+        void reset( T* value ) {
+            Pointer( value ).swap( *this );
+        }
+
+        /**
+         * Gets the real pointer that is contained within this Pointer.  This is
+         * not really safe since the caller could delete or alter the pointer but
+         * it mimics the STL auto_ptr and gives access in cases where the caller
+         * absolutely needs the real Pointer.  Use at your own risk.
+         *
+         * @return the contained pointer.
+         */
+        PointerType get() const {
+            return this->value;
+        }
+
+        /**
+         * Exception Safe Swap Function
+         * @param value - the value to swap with this.
+         */
+        void swap( Pointer<T>& value ) throw() {
+            std::swap( this->value, value.value );
+            std::swap( this->refCount, value.refCount );
+        }
+
+        /**
+         * Assigns the value of right to this Pointer and increments the reference Count.
+         * @param right - Pointer on the right hand side of an operator= call to this.
+         */
+        Pointer& operator= ( const Pointer<T>& right ) throw() {
+            if( this == &right ) {
+                return *this;
+            }
+
+            Pointer temp( right );
+            temp.swap( *this );
+            return *this;
+        }
+
+        /**
+         * Dereference Operator, returns a reference to the Contained value.  This
+         * method throws an NullPointerException if the contained value is NULL.
+         *
+         * @return reference to the contained pointer.
+         * @throws NullPointerException if the contained value is Null
+         */
+        ReferenceType operator*() {
+            if( this->value == NULL ) {
+                throw decaf::lang::exceptions::NullPointerException(
+                    __FILE__, __LINE__, "Pointer operator& - Pointee is NULL." );
+            }
+
+            return *( this->value );
+        }
+        ReferenceType operator*() const {
+            if( this->value == NULL ) {
+                throw decaf::lang::exceptions::NullPointerException(
+                    __FILE__, __LINE__, "Pointer operator& - Pointee is NULL." );
+            }
+
+            return *( this->value );
+        }
+
+        /**
+         * Indirection Operator, returns a pointer to the Contained value.  This
+         * method throws an NullPointerException if the contained value is NULL.
+         *
+         * @return reference to the contained pointer.
+         * @throws NullPointerException if the contained value is Null
+         */
+        PointerType operator->() {
+            if( this->value == NULL ) {
+                throw decaf::lang::exceptions::NullPointerException(
+                    __FILE__, __LINE__, "Pointer operator-> - Pointee is NULL." );
+            }
+            return this->value;
+        }
+        PointerType operator->() const {
+            if( this->value == NULL ) {
+                throw decaf::lang::exceptions::NullPointerException(
+                    __FILE__, __LINE__, "Pointer operator-> - Pointee is NULL." );
+            }
+            return this->value;
+        }
+
+        bool operator!() const {
+            return this->value == NULL;
+        }
+
+        inline friend bool operator==( const Pointer& left, const T* right ) {
+            return left.get() == right;
+        }
+
+        inline friend bool operator==( const T* left, const Pointer& right ) {
+            return left == right.get();
+        }
+
+        inline friend bool operator!=( const Pointer& left, const T* right ) {
+            return left.get() != right;
+        }
+
+        inline friend bool operator!=( const T* left, const Pointer& right ) {
+            return left != right.get();
+        }
+
+        template< typename U >
+        bool operator==( const Pointer<U>& right ) const {
+            return this->value == right.get();
+        }
+
+        template< typename U >
+        bool operator!=( const Pointer<U>& right ) const {
+            return !( this->value == right.get() );
+        }
+
+    };
+
+}}
+
+////////////////////////////////////////////////////////////////////////////////
+namespace std{
+
+    /**
+     * An override of the less function object so that the Pointer objects
+     * can be stored in STL Maps, etc.
+     */
+    template< typename T >
+    struct less< decaf::lang::Pointer<T> > :
+        public binary_function< decaf::lang::Pointer<T>,
+                                decaf::lang::Pointer<T>, bool>
+    {
+        bool operator()( const decaf::lang::Pointer<T>& left,
+                         const decaf::lang::Pointer<T>& right ) const
+        {
+            return less<T*>()( left.get(), right.get() );
+        }
+    };
+}
+
+#endif /*_DECAF_LANG_POINTER_H_*/

Propchange: activemq/activemq-cpp/trunk/src/main/decaf/lang/Pointer.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: activemq/activemq-cpp/trunk/src/test/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/Makefile.am?rev=740171&r1=740170&r2=740171&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/src/test/Makefile.am Tue Feb  3 00:55:09 2009
@@ -75,6 +75,7 @@
   decaf/lang/IntegerTest.cpp \
   decaf/lang/LongTest.cpp \
   decaf/lang/MathTest.cpp \
+  decaf/lang/PointerTest.cpp \
   decaf/lang/ShortTest.cpp \
   decaf/lang/SystemTest.cpp \
   decaf/lang/ThreadTest.cpp \
@@ -164,17 +165,18 @@
   decaf/internal/net/URIEncoderDecoderTest.h \
   decaf/internal/net/URIHelperTest.h \
   decaf/lang/ByteTest.h \
-  decaf/lang/CharacterTest.h \
   decaf/lang/BooleanTest.h \
-  decaf/lang/ShortTest.h \
-  decaf/lang/IntegerTest.h \
-  decaf/lang/LongTest.h \
-  decaf/lang/FloatTest.h \
+  decaf/lang/CharacterTest.h \
   decaf/lang/DoubleTest.h \
-  decaf/lang/ThreadTest.h \
   decaf/lang/ExceptionTest.h \
+  decaf/lang/FloatTest.h \
+  decaf/lang/IntegerTest.h \
+  decaf/lang/LongTest.h \
   decaf/lang/MathTest.h \
+  decaf/lang/PointerTest.h \
+  decaf/lang/ShortTest.h \
   decaf/lang/SystemTest.h \
+  decaf/lang/ThreadTest.h \
   decaf/io/FilterInputStreamTest.h \
   decaf/io/FilterOutputStreamTest.h \
   decaf/io/BufferedInputStreamTest.h \

Added: activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp?rev=740171&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp (added)
+++ activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp Tue Feb  3 00:55:09 2009
@@ -0,0 +1,271 @@
+/*
+ * 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.
+ */
+
+#include "PointerTest.h"
+
+#include <decaf/lang/Pointer.h>
+
+#include <map>
+#include <string>
+
+using namespace std;
+using namespace decaf;
+using namespace decaf::lang;
+
+////////////////////////////////////////////////////////////////////////////////
+class TestClassBase {
+public:
+
+    virtual ~TestClassBase(){}
+
+    virtual std::string returnHello() = 0;
+
+};
+
+////////////////////////////////////////////////////////////////////////////////
+class TestClassA : public TestClassBase {
+public:
+
+    virtual ~TestClassA() {
+        //std::cout << std::endl << "TestClassA - Destructor" << std::endl;
+    }
+
+    std::string returnHello() {
+        return "Hello";
+    }
+
+};
+
+////////////////////////////////////////////////////////////////////////////////
+class TestClassB : public TestClassBase {
+public:
+
+    virtual ~TestClassB() {
+        //std::cout << std::endl << "TestClassB - Destructor" << std::endl;
+    }
+
+    std::string returnHello() {
+        return "GoodBye";
+    }
+
+};
+
+////////////////////////////////////////////////////////////////////////////////
+class SomeOtherClass {
+public:
+
+};
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testBasics() {
+
+    TestClassA* thePointer = new TestClassA();
+
+    // Test Null Initialize
+    Pointer<TestClassA> nullPointer;
+    CPPUNIT_ASSERT( nullPointer.get() == NULL );
+
+    // Test Value Constructor
+    Pointer<TestClassA> pointer( thePointer );
+    CPPUNIT_ASSERT( pointer.get() == thePointer );
+
+    // Test Copy Constructor
+    Pointer<TestClassA> ctorCopy( pointer );
+    CPPUNIT_ASSERT( ctorCopy.get() == thePointer );
+
+    // Test Assignment
+    Pointer<TestClassA> copy = pointer;
+    CPPUNIT_ASSERT( copy.get() == thePointer );
+
+    CPPUNIT_ASSERT( ( *pointer ).returnHello() == "Hello" );
+    CPPUNIT_ASSERT( pointer->returnHello() == "Hello" );
+
+    copy.reset( NULL );
+    CPPUNIT_ASSERT( copy.get() == NULL );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+template<typename T>
+void ConstReferenceMethod( const Pointer<T>& pointer ) {
+
+    Pointer<T> copy = pointer;
+    CPPUNIT_ASSERT( copy.get() != NULL );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+template<typename T>
+void ReferenceMethod( Pointer<T>& pointer ) {
+
+    pointer.reset( NULL );
+    CPPUNIT_ASSERT( pointer.get() == NULL );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<TestClassA> ReturnByValue() {
+
+    Pointer<TestClassA> pointer( new TestClassA );
+    CPPUNIT_ASSERT( pointer.get() != NULL );
+    return pointer;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+const Pointer<TestClassA>& ReturnByConstReference() {
+
+    static Pointer<TestClassA> pointer( new TestClassA );
+    CPPUNIT_ASSERT( pointer.get() != NULL );
+    return pointer;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testAssignment() {
+
+    TestClassA* thePointerA = new TestClassA();
+    TestClassB* thePointerB = new TestClassB();
+
+    Pointer<TestClassBase> pointer;
+    CPPUNIT_ASSERT( pointer.get() == NULL );
+
+    pointer.reset( thePointerA );
+    CPPUNIT_ASSERT( pointer.get() == thePointerA );
+
+    pointer.reset( thePointerB );
+    CPPUNIT_ASSERT( pointer.get() == thePointerB );
+
+    // Doing this however won't compile.
+    //    SomeOtherClass other;
+    //    pointer.reset( &other );
+
+    Pointer<TestClassA> pointer1( new TestClassA() );
+    Pointer<TestClassA> pointer2 = pointer1;
+    Pointer<TestClassA> pointer3 = pointer2;
+
+    CPPUNIT_ASSERT( pointer1.get() == pointer2.get() );
+    CPPUNIT_ASSERT( pointer2.get() == pointer3.get() );
+
+    pointer3.reset( NULL );
+    CPPUNIT_ASSERT( pointer1.get() != NULL );
+    CPPUNIT_ASSERT( pointer2.get() != NULL );
+    CPPUNIT_ASSERT( pointer3.get() == NULL );
+
+    ConstReferenceMethod( pointer1 );
+    ReferenceMethod( pointer2 );
+    CPPUNIT_ASSERT( pointer2.get() == NULL );
+
+    ReturnByValue();
+
+    {
+        Pointer<TestClassA> copy = ReturnByValue();
+    }
+
+    {
+        Pointer<TestClassA> copy = ReturnByConstReference();
+    }
+
+    ReturnByConstReference();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testComparisons() {
+
+    Pointer<TestClassBase> pointer1( new TestClassA );
+    Pointer<TestClassBase> pointer2( new TestClassB );
+
+    TestClassA* raw1 = new TestClassA;
+
+    CPPUNIT_ASSERT( ( pointer1 == pointer2 ) == false );
+    CPPUNIT_ASSERT( ( pointer1 != pointer2 ) == true );
+
+    CPPUNIT_ASSERT( ( pointer1 == raw1 ) == false );
+    CPPUNIT_ASSERT( ( pointer1 != raw1 ) == true );
+    CPPUNIT_ASSERT( ( raw1 == pointer2 ) == false );
+    CPPUNIT_ASSERT( ( raw1 != pointer2 ) == true );
+
+    delete raw1;
+
+    Pointer<TestClassBase> pointer3( new TestClassA );
+    Pointer<TestClassA> pointer4( new TestClassA );
+
+    CPPUNIT_ASSERT( ( pointer3 == pointer4 ) == false );
+    CPPUNIT_ASSERT( ( pointer3 != pointer4 ) == true );
+
+    CPPUNIT_ASSERT( pointer1 != NULL );
+    CPPUNIT_ASSERT( !pointer1 == false );
+    CPPUNIT_ASSERT( !!pointer1 == true );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testThreaded1() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testThreaded2() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testOperators() {
+
+    Pointer<TestClassBase> pointer1( new TestClassA );
+    Pointer<TestClassBase> pointer2( new TestClassB );
+    Pointer<TestClassBase> pointer3;
+
+    CPPUNIT_ASSERT( pointer1->returnHello() == "Hello" );
+    CPPUNIT_ASSERT( pointer2->returnHello() == "GoodBye" );
+
+    CPPUNIT_ASSERT( ( *pointer1 ).returnHello() == "Hello" );
+    CPPUNIT_ASSERT( ( *pointer2 ).returnHello() == "GoodBye" );
+
+    CPPUNIT_ASSERT_THROW_MESSAGE(
+        "operator* on a NULL Should Throw a NullPointerException",
+        ( *pointer3 ).returnHello(),
+        decaf::lang::exceptions::NullPointerException );
+    CPPUNIT_ASSERT_THROW_MESSAGE(
+        "operator-> on a NULL Should Throw a NullPointerException",
+        pointer3->returnHello(),
+        decaf::lang::exceptions::NullPointerException );
+
+    pointer2.reset( NULL );
+
+    CPPUNIT_ASSERT_THROW_MESSAGE(
+        "operator* on a NULL Should Throw a NullPointerException",
+        ( *pointer2 ).returnHello(),
+        decaf::lang::exceptions::NullPointerException );
+    CPPUNIT_ASSERT_THROW_MESSAGE(
+        "operator-> on a NULL Should Throw a NullPointerException",
+        pointer2->returnHello(),
+        decaf::lang::exceptions::NullPointerException );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void PointerTest::testSTLContainers() {
+
+    Pointer<TestClassBase> pointer1( new TestClassA );
+    Pointer<TestClassBase> pointer2( new TestClassB );
+    Pointer<TestClassBase> pointer3( pointer2 );
+
+    CPPUNIT_ASSERT( pointer1.get() != NULL );
+    CPPUNIT_ASSERT( pointer2.get() != NULL );
+
+    std::map< Pointer<TestClassBase>, std::string > testMap;
+
+    testMap.insert( std::make_pair( pointer1, "Bob" ) );
+    testMap.insert( std::make_pair( pointer2, "Steve" ) );
+    testMap.insert( std::make_pair( pointer3, "Steve" ) );
+    testMap.insert( std::make_pair( Pointer<TestClassBase>( new TestClassA ), "Fred"
) );
+
+    CPPUNIT_ASSERT( testMap.find( pointer1 ) != testMap.end() );
+    CPPUNIT_ASSERT( testMap.find( pointer2 ) != testMap.end() );
+}

Propchange: activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h?rev=740171&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h (added)
+++ activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h Tue Feb  3 00:55:09 2009
@@ -0,0 +1,56 @@
+/*
+ * 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_POINTERTEST_H_
+#define _DECAF_LANG_POINTERTEST_H_
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+namespace decaf {
+namespace lang {
+
+    class PointerTest : public CppUnit::TestFixture {
+
+        CPPUNIT_TEST_SUITE( PointerTest );
+        CPPUNIT_TEST( testBasics );
+        CPPUNIT_TEST( testAssignment );
+        CPPUNIT_TEST( testComparisons );
+        CPPUNIT_TEST( testThreaded1 );
+        CPPUNIT_TEST( testThreaded2 );
+        CPPUNIT_TEST( testOperators );
+        CPPUNIT_TEST( testSTLContainers );
+        CPPUNIT_TEST_SUITE_END();
+
+    public:
+
+        PointerTest() {}
+        virtual ~PointerTest() {}
+
+        void testBasics();
+        void testAssignment();
+        void testComparisons();
+        void testThreaded1();
+        void testThreaded2();
+        void testOperators();
+        void testSTLContainers();
+
+    };
+
+}}
+
+#endif /*_DECAF_LANG_POINTERTEST_H_*/

Propchange: activemq/activemq-cpp/trunk/src/test/decaf/lang/PointerTest.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: activemq/activemq-cpp/trunk/src/test/testRegistry.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/testRegistry.cpp?rev=740171&r1=740170&r2=740171&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/testRegistry.cpp (original)
+++ activemq/activemq-cpp/trunk/src/test/testRegistry.cpp Tue Feb  3 00:55:09 2009
@@ -68,14 +68,14 @@
 //CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::DynamicDestinationResolverTest );
 //#include <activemq/cmsutil/SessionPoolTest.h>
 //CPPUNIT_TEST_SUITE_REGISTRATION( activemq::cmsutil::SessionPoolTest );
-
-#include <activemq/core/ActiveMQConnectionFactoryTest.h>
-CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionFactoryTest );
-#include <activemq/core/ActiveMQConnectionTest.h>
-CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionTest );
-#include <activemq/core/ActiveMQSessionTest.h>
-CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQSessionTest );
-
+//
+//#include <activemq/core/ActiveMQConnectionFactoryTest.h>
+//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionFactoryTest );
+//#include <activemq/core/ActiveMQConnectionTest.h>
+//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQConnectionTest );
+//#include <activemq/core/ActiveMQSessionTest.h>
+//CPPUNIT_TEST_SUITE_REGISTRATION( activemq::core::ActiveMQSessionTest );
+//
 //#include <activemq/transport/correlator/ResponseCorrelatorTest.h>
 //CPPUNIT_TEST_SUITE_REGISTRATION( activemq::transport::correlator::ResponseCorrelatorTest
);
 //
@@ -176,6 +176,8 @@
 //CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::ThreadTest );
 //#include <decaf/lang/SystemTest.h>
 //CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::SystemTest );
+#include <decaf/lang/PointerTest.h>
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::lang::PointerTest );
 //
 //#include <decaf/net/SocketFactoryTest.h>
 //CPPUNIT_TEST_SUITE_REGISTRATION( decaf::net::SocketFactoryTest );



Mime
View raw message