activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r1036207 - in /activemq/activemq-cpp/trunk/activemq-cpp/src/main: activemq/core/ActiveMQXAConnectionFactory.cpp cms/XAConnectionFactory.h
Date Wed, 17 Nov 2010 20:35:07 GMT
Author: tabish
Date: Wed Nov 17 20:35:07 2010
New Revision: 1036207

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

Adds a static entry point in cms::XAConnectionFactory to create new instances via the provider
library.  Allows a provider to throw an exception if the XA API is not supported.

Modified:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQXAConnectionFactory.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnectionFactory.h

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQXAConnectionFactory.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQXAConnectionFactory.cpp?rev=1036207&r1=1036206&r2=1036207&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQXAConnectionFactory.cpp
(original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQXAConnectionFactory.cpp
Wed Nov 17 20:35:07 2010
@@ -23,6 +23,11 @@ using namespace activemq;
 using namespace activemq::core;
 
 ////////////////////////////////////////////////////////////////////////////////
+cms::XAConnectionFactory* cms::XAConnectionFactory::createCMSXAConnectionFactory( const std::string&
brokerURI ) {
+    return new ActiveMQXAConnectionFactory( brokerURI );
+}
+
+////////////////////////////////////////////////////////////////////////////////
 ActiveMQXAConnectionFactory::ActiveMQXAConnectionFactory() :
     ActiveMQConnectionFactory() {
 }

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnectionFactory.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnectionFactory.h?rev=1036207&r1=1036206&r2=1036207&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnectionFactory.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnectionFactory.h Wed Nov 17
20:35:07 2010
@@ -75,6 +75,29 @@ namespace cms {
          */
         virtual XAConnection* createXAConnection( const std::string& userName,
                                                   const std::string& password ) = 0;
+    public:
+
+        /**
+         * Static method that is used to create a provider specific XA Connection
+         * factory.  The provider implements this method in their library and
+         * returns an instance of a XAConnectionFactory derived object.  Clients can
+         * use this method to remain abstracted from the specific CMS implementation
+         * being used.
+         *
+         * The XA interfaces are optional in CMS however if a provider chooses to omit
+         * them it should still override this method and throw an UnsupportedOperationException
+         * to indicate that it doesn't provide this functionality.
+         *
+         * @param brokerURI
+         *      The remote address to use to connect to the Provider.
+         *
+         * @return A pointer to a provider specific implementation of the XAConnectionFactory
+         *         interface, the caller is responsible for deleting this resource.
+         *
+         * @throws CMSException if an internal error occurs while creating the XAConnectionFactory.
+         * @throws UnsupportedOperationException if the provider does not support the XA
API.
+         */
+        static XAConnectionFactory* createCMSXAConnectionFactory( const std::string&
brokerURI );
 
     };
 



Mime
View raw message