You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/02 15:48:02 UTC

svn commit: r739992 - in /cxf/branches/2.0.x-fixes: ./ rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/ rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/ systests/src/test/java/org/apache/cxf/systest/jms/tx/

Author: dkulp
Date: Mon Feb  2 14:48:01 2009
New Revision: 739992

URL: http://svn.apache.org/viewvc?rev=739992&view=rev
Log:
Merged revisions 739916 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes

................
  r739916 | ningjiang | 2009-02-01 22:44:54 -0500 (Sun, 01 Feb 2009) | 13 lines
  
  Merged revisions 739799-739800 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r739799 | cschneider | 2009-02-02 01:54:15 +0800 (Mon, 02 Feb 2009) | 1 line
    
    CXF-2018 Wrap connectionfactory into a SingleConnectionFactory by default. Added a config element to make this configurable. Moved jndi config stuff to own class so it is more transparent that this should normally not be set when using the new style config.
  ........
    r739800 | cschneider | 2009-02-02 01:54:42 +0800 (Mon, 02 Feb 2009) | 1 line
    
    CXF-2018 Wrap connectionfactory into a SingleConnectionFactory by default. Added a config element to make this configurable. Moved jndi config stuff to own class so it is more transparent that this should normally not be set when using the new style config.
  ........
................

Modified:
    cxf/branches/2.0.x-fixes/   (props changed)
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
    cxf/branches/2.0.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
    cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb  2 14:48:01 2009
@@ -1,3 +1,3 @@
-/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,704587,704738,704998,705153,705280-705449,705455,709357,709641,709644,710177,710184,711736,712199,712225,712275,712600,712896,713083,713410,713413,713594,713599,713808,713901,714169-714171,718622,718929,719211,719221-719223,7192
 96,719300-719301,719303,719308,719332,719356,719363,719369-719383,719650,719695,720124,723545,724403-724404,724421,724448,724451,724486-724487,724714,725367,725371,725763,725774,726045,726048,726106,726123,726745-726746,726749,726754,726756-726758,726995,727794,727797-727798,727800,731676,731684,731686-731688,731690,733587,733873,733876,733884,733891,733893,733915,735132,735136,735789,736451,736453,736456,736761,736765,736771,736827,736853,737126,737706,737714,737716,737726,737729-737730,737732,737734,737737,737861,738167,738181,738202,738206,738208,738243,738245,738588-738594,739379
-/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,704584,704997,705150,705274,705340,705446,708550,708554,709353-709354,709425,710150,712194,712198,712272,712312,712670,712893,713082,713584,713597,713804,713899,714167-714168,718281,718565,718620,718640,718665,719017,719210,719215-719218,719222,719273,719327-719354,719362,719368,719382,719649,719680,720119-720217,723338,723717-723791,724334-724371,724433-724438,724449,724481,724485,724668,724782,724795,725754,725773,725799,725839,726342,726524,726631,726637,726639,726692,726724,726992,727445,727692,727754,727792,730139,731598,731604,731615,73163
 1,731635,732320,732363,732411,732710,732773,732827,732829,733582,734666,734836,735734,736332,736343,736352,736408,736423,736491,736738,736766,736825,736852,737032,737069,737124,737237,737299,737356,737494,737498,737855,738166,738178,738201,738242,738244,739367
+/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,704587,704738,704998,705153,705280-705449,705455,709357,709641,709644,710177,710184,711736,712199,712225,712275,712600,712896,713083,713410,713413,713594,713599,713808,713901,714169-714171,718622,718929,719211,719221-719223,7192
 96,719300-719301,719303,719308,719332,719356,719363,719369-719383,719650,719695,720124,723545,724403-724404,724421,724448,724451,724486-724487,724714,725367,725371,725763,725774,726045,726048,726106,726123,726745-726746,726749,726754,726756-726758,726995,727794,727797-727798,727800,731676,731684,731686-731688,731690,733587,733873,733876,733884,733891,733893,733915,735132,735136,735789,736451,736453,736456,736761,736765,736771,736827,736853,737126,737706,737714,737716,737726,737729-737730,737732,737734,737737,737861,738167,738181,738202,738206,738208,738243,738245,738588-738594,739379,739916
+/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,704584,704997,705150,705274,705340,705446,708550,708554,709353-709354,709425,710150,712194,712198,712272,712312,712670,712893,713082,713584,713597,713804,713899,714167-714168,718281,718565,718620,718640,718665,719017,719210,719215-719218,719222,719273,719327-719354,719362,719368,719382,719649,719680,720119-720217,723338,723717-723791,724334-724371,724433-724438,724449,724481,724485,724668,724782,724795,725754,725773,725799,725839,726342,726524,726631,726637,726639,726692,726724,726992,727445,727692,727754,727792,730139,731598,731604,731615,73163
 1,731635,732320,732363,732411,732710,732773,732827,732829,733582,734666,734836,735734,736332,736343,736352,736408,736423,736491,736738,736766,736825,736852,737032,737069,737124,737237,737299,737356,737494,737498,737855,738166,738178,738201,738242,738244,739367,739799-739800
 /incubator/cxf/trunk:434594-651668

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Mon Feb  2 14:48:01 2009
@@ -35,7 +35,6 @@
 import javax.jms.Session;
 
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.configuration.ConfigurationException;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
@@ -83,11 +82,10 @@
      * JMSOutputStream will then call back the sendExchange method of this class. {@inheritDoc}
      */
     public void prepare(Message message) throws IOException {
-        if (jmsConfig.getTargetDestination() == null || jmsConfig.getConnectionFactory() == null) {
-            String name =  endpointInfo.getName().toString() + ".jms-conduit";
-            throw new ConfigurationException(
-                new org.apache.cxf.common.i18n.Message("INSUFFICIENT_CONFIGURATION_CONDUIT", LOG, name));
-        }
+        String name =  endpointInfo.getName().toString() + ".jms-conduit";
+        org.apache.cxf.common.i18n.Message msg = 
+            new org.apache.cxf.common.i18n.Message("INSUFFICIENT_CONFIGURATION_CONDUIT", LOG, name);
+        jmsConfig.ensureProperlyConfigured(msg);
         boolean isTextPayload = JMSConstants.TEXT_MESSAGE_TYPE.equals(jmsConfig.getMessageType());
         JMSOutputStream out = new JMSOutputStream(this, message.getExchange(), isTextPayload);
         message.setContent(OutputStream.class, out);

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConfiguration.java Mon Feb  2 14:48:01 2009
@@ -20,14 +20,13 @@
 
 import javax.jms.ConnectionFactory;
 import javax.jms.Message;
-import javax.naming.NamingException;
 
+import org.apache.cxf.configuration.ConfigurationException;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Required;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.jms.connection.SingleConnectionFactory;
 import org.springframework.jms.connection.SingleConnectionFactory102;
-import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
 import org.springframework.jms.support.destination.DestinationResolver;
 import org.springframework.jndi.JndiTemplate;
 import org.springframework.transaction.PlatformTransactionManager;
@@ -42,11 +41,19 @@
     static final boolean DEFAULT_USEJMS11 = false;
     
     private boolean usingEndpointInfo = true;
+    
+    /**
+     * Use jndi to resolve destinations
+     */
+    private boolean useJndi;
+    private JndiTemplate jndiTemplate;
     private ConnectionFactory connectionFactory;
     private DestinationResolver destinationResolver;
     private PlatformTransactionManager transactionManager;
+    private boolean wrapInSingleConnectionFactory = true;
     private TaskExecutor taskExecutor;
     private boolean useJms11 = DEFAULT_USEJMS11;
+    private boolean reconnectOnException;
     private boolean messageIdEnabled = true;
     private boolean messageTimestampEnabled = true;
     private boolean pubSubNoLocal;
@@ -57,15 +64,6 @@
     private int priority = Message.DEFAULT_PRIORITY;
     private long timeToLive = Message.DEFAULT_TIME_TO_LIVE;
     private boolean sessionTransacted;
-
-    //Stuff for JNDI based and old configs
-    private boolean useJndi;
-    private JndiTemplate jndiTemplate;
-    private String jndiConnectionFactoryName;
-    private String connectionUserName;
-    private String connectionPassword;
-    private Boolean reconnectOnException;
-    
     
     private int concurrentConsumers = 1;
     private int maxConcurrentConsumers = 1;
@@ -85,6 +83,16 @@
     private int cacheLevel = DEFAULT_VALUE;
     private String cacheLevelName;
     
+    private ConnectionFactory wrappedConnectionFactory;
+    
+    private JNDIConfiguration jndiConfig;
+    
+    public void ensureProperlyConfigured(org.apache.cxf.common.i18n.Message msg) {
+        if (targetDestination == null || getOrCreateWrappedConnectionFactory() == null) {
+            throw new ConfigurationException(msg);
+        }
+    }
+    
     public String getCacheLevelName() {
         return cacheLevelName;
     }
@@ -227,47 +235,6 @@
         }
     }
 
-    
-    public ConnectionFactory getConnectionFactory() {
-        if (connectionFactory == null && jndiTemplate != null  && jndiConnectionFactoryName != null) {
-            connectionFactory = getConnectionFactoryFromJndi();
-        }
-        return connectionFactory;
-    }
-    private ConnectionFactory getConnectionFactoryFromJndi() {
-        
-        String connectionFactoryName = getJndiConnectionFactoryName();
-        String userName = getConnectionUserName();
-        String password = getConnectionPassword();
-            
-            
-        if (connectionFactoryName == null) {
-            return null;
-        }
-        try {
-            ConnectionFactory cf = (ConnectionFactory)jndiTemplate.lookup(connectionFactoryName);
-            UserCredentialsConnectionFactoryAdapter uccf = new UserCredentialsConnectionFactoryAdapter();
-            uccf.setUsername(userName);
-            uccf.setPassword(password);
-            uccf.setTargetConnectionFactory(cf);
-
-            if (this.useJms11) {
-                SingleConnectionFactory scf = new SingleConnectionFactory(uccf);
-                if (isSetReconnectOnException() && isReconnectOnException()) {
-                    scf.setReconnectOnException(true);
-                }
-                return scf;
-            }
-            SingleConnectionFactory102 scf = new SingleConnectionFactory102(uccf, pubSubDomain);
-            if (isSetReconnectOnException() && isReconnectOnException()) {
-                scf.setReconnectOnException(true);
-            }
-            return scf;
-        } catch (NamingException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
     @Required
     public void setConnectionFactory(ConnectionFactory connectionFactory) {
         this.connectionFactory = connectionFactory;
@@ -385,39 +352,58 @@
         return jndiTemplate;
     }
 
-    public String getJndiConnectionFactoryName() {
-        return jndiConnectionFactoryName;
+    public JNDIConfiguration getJndiConfig() {
+        return jndiConfig;
     }
 
-    public void setJndiConnectionFactoryName(String jndiConnectionFactoryName) {
-        this.jndiConnectionFactoryName = jndiConnectionFactoryName;
+    public void setJndiConfig(JNDIConfiguration jndiConfig) {
+        this.jndiConfig = jndiConfig;
     }
 
-    public String getConnectionUserName() {
-        return connectionUserName;
+    public boolean isReconnectOnException() {
+        return reconnectOnException;
     }
 
-    public void setConnectionUserName(String connectionUserName) {
-        this.connectionUserName = connectionUserName;
+    public void setReconnectOnException(boolean reconnectOnException) {
+        this.reconnectOnException = reconnectOnException;
     }
 
-    public String getConnectionPassword() {
-        return connectionPassword;
+    public ConnectionFactory getOrCreateWrappedConnectionFactory() {
+        if (wrappedConnectionFactory == null) {
+            if (connectionFactory == null) {
+                connectionFactory = JMSFactory.getConnectionFactoryFromJndi(this);
+            }
+            if (wrapInSingleConnectionFactory) {
+                if (useJms11) {
+                    wrappedConnectionFactory = new SingleConnectionFactory(connectionFactory);
+                } else {
+                    wrappedConnectionFactory = new SingleConnectionFactory102(connectionFactory, 
+                                                                              pubSubDomain);
+                }
+                if (reconnectOnException) {
+                    ((SingleConnectionFactory)wrappedConnectionFactory).setReconnectOnException(true);
+                }
+            } else {
+                wrappedConnectionFactory = connectionFactory;
+            }
+        }
+        return wrappedConnectionFactory;
     }
 
-    public void setConnectionPassword(String connectionPassword) {
-        this.connectionPassword = connectionPassword;
+    /**
+     * Only for tests
+     * @return
+     */
+    protected ConnectionFactory getConnectionFactory() {
+        return connectionFactory;
     }
 
-    public boolean isSetReconnectOnException() {
-        return reconnectOnException != null;
-    }
-    public boolean isReconnectOnException() {
-        return reconnectOnException;
+    public boolean isWrapInSingleConnectionFactory() {
+        return wrapInSingleConnectionFactory;
     }
 
-    public void setReconnectOnException(boolean reconnectOnException) {
-        this.reconnectOnException = reconnectOnException;
+    public void setWrapInSingleConnectionFactory(boolean wrapInSingleConnectionFactory) {
+        this.wrapInSingleConnectionFactory = wrapInSingleConnectionFactory;
     }
 
 }

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java Mon Feb  2 14:48:01 2009
@@ -45,7 +45,6 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.configuration.ConfigurationException;
 import org.apache.cxf.continuations.ContinuationProvider;
 import org.apache.cxf.continuations.SuspendedInvocationException;
 import org.apache.cxf.helpers.CastUtils;
@@ -100,10 +99,9 @@
     public void activate() {
         getLogger().log(Level.INFO, "JMSDestination activate().... ");
         String name = endpointInfo.getName().toString() + ".jms-destination";
-        if (jmsConfig.getTargetDestination() == null || jmsConfig.getConnectionFactory() == null) {
-            throw new ConfigurationException(
-                new org.apache.cxf.common.i18n.Message("INSUFFICIENT_CONFIGURATION_DESTINATION", LOG, name));
-        }
+        org.apache.cxf.common.i18n.Message msg = 
+            new org.apache.cxf.common.i18n.Message("INSUFFICIENT_CONFIGURATION_DESTINATION", LOG, name);
+        jmsConfig.ensureProperlyConfigured(msg);
         jmsListener = JMSFactory.createJmsListener(jmsConfig, this, jmsConfig.getTargetDestination(), null);
     }
 

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java Mon Feb  2 14:48:01 2009
@@ -18,13 +18,16 @@
  */
 package org.apache.cxf.transport.jms;
 
+import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 import javax.jms.JMSException;
 import javax.jms.MessageListener;
 import javax.jms.QueueSession;
 import javax.jms.Session;
+import javax.naming.NamingException;
 
 import org.springframework.core.task.SimpleAsyncTaskExecutor;
+import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
 import org.springframework.jms.core.JmsTemplate;
 import org.springframework.jms.core.JmsTemplate102;
 import org.springframework.jms.core.SessionCallback;
@@ -36,11 +39,44 @@
  * Factory to create JmsTemplates and JmsListeners from configuration and context information
  */
 public final class JMSFactory {
-    
+
     private JMSFactory() {
     }
 
     /**
+     * Retreive connection factory from jndi, wrap it in a UserCredentialsConnectionFactoryAdapter,
+     * set username and password and return the ConnectionFactory
+     * 
+     * @param jmsConfig
+     * @param jndiConfig
+     * @return
+     */
+    static ConnectionFactory getConnectionFactoryFromJndi(JMSConfiguration jmsConfig) {
+        JNDIConfiguration jndiConfig = jmsConfig.getJndiConfig();
+        if (jndiConfig == null) {
+            return null;
+        }
+        String connectionFactoryName = jndiConfig.getJndiConnectionFactoryName();
+        if (connectionFactoryName == null) {
+            return null;
+        }
+        String userName = jndiConfig.getConnectionUserName();
+        String password = jndiConfig.getConnectionPassword();
+        try {
+            ConnectionFactory cf = (ConnectionFactory)jmsConfig.getJndiTemplate().
+                lookup(connectionFactoryName);
+            UserCredentialsConnectionFactoryAdapter uccf = new UserCredentialsConnectionFactoryAdapter();
+            uccf.setUsername(userName);
+            uccf.setPassword(password);
+            uccf.setTargetConnectionFactory(cf);
+            
+            return uccf;
+        } catch (NamingException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
      * Create JmsTemplate from configuration information. Most settings are taken from jmsConfig. The QoS
      * settings in headers override the settings from jmsConfig
      * 
@@ -50,7 +86,7 @@
      */
     public static JmsTemplate createJmsTemplate(JMSConfiguration jmsConfig, JMSMessageHeadersType headers) {
         JmsTemplate jmsTemplate = jmsConfig.isUseJms11() ? new JmsTemplate() : new JmsTemplate102();
-        jmsTemplate.setConnectionFactory(jmsConfig.getConnectionFactory());
+        jmsTemplate.setConnectionFactory(jmsConfig.getOrCreateWrappedConnectionFactory());
         jmsTemplate.setPubSubDomain(jmsConfig.isPubSubDomain());
         jmsTemplate.setReceiveTimeout(jmsConfig.getReceiveTimeout());
         jmsTemplate.setTimeToLive(jmsConfig.getTimeToLive());
@@ -88,7 +124,7 @@
         jmsListener.setMaxConcurrentConsumers(jmsConfig.getMaxConcurrentConsumers());
         jmsListener.setPubSubDomain(jmsConfig.isPubSubDomain());
         jmsListener.setAutoStartup(true);
-        jmsListener.setConnectionFactory(jmsConfig.getConnectionFactory());
+        jmsListener.setConnectionFactory(jmsConfig.getOrCreateWrappedConnectionFactory());
         jmsListener.setMessageSelector(jmsConfig.getMessageSelector());
         jmsListener.setDurableSubscriptionName(jmsConfig.getDurableSubscriptionName());
         jmsListener.setSessionTransacted(jmsConfig.isSessionTransacted());

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSOldConfigHolder.java Mon Feb  2 14:48:01 2009
@@ -76,14 +76,14 @@
             if (address.isSetDestinationStyle()) {
                 pubSubDomain = DestinationStyleType.TOPIC == address.getDestinationStyle();
             }
-            if (jmsConfig.getConnectionFactory() == null) {
-                jmsConfig.setJndiConnectionFactoryName(address.getJndiConnectionFactoryName());
-                jmsConfig.setJndiTemplate(jt);
-                jmsConfig.setConnectionUserName(address.getConnectionUserName());
-                jmsConfig.setConnectionPassword(address.getConnectionPassword());
-                if (address.isSetReconnectOnException()) {
-                    jmsConfig.setReconnectOnException(address.isReconnectOnException());
-                }
+            JNDIConfiguration jndiConfig = new JNDIConfiguration();
+            jndiConfig.setJndiConnectionFactoryName(address.getJndiConnectionFactoryName());
+            jmsConfig.setJndiTemplate(jt);
+            jndiConfig.setConnectionUserName(address.getConnectionUserName());
+            jndiConfig.setConnectionPassword(address.getConnectionPassword());
+            jmsConfig.setJndiConfig(jndiConfig);
+            if (address.isSetReconnectOnException()) {
+                jmsConfig.setReconnectOnException(address.isReconnectOnException());
             }
             jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
             jmsConfig.setExplicitQosEnabled(true);

Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java (original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java Mon Feb  2 14:48:01 2009
@@ -173,7 +173,7 @@
         final byte[] testBytes = testMsg.getBytes(Charset.defaultCharset().name()); // TODO encoding
         JMSConfiguration jmsConfig = conduit.getJmsConfig();
         JmsTemplate jmsTemplate = new JmsTemplate();
-        jmsTemplate.setConnectionFactory(jmsConfig.getConnectionFactory());
+        jmsTemplate.setConnectionFactory(jmsConfig.getOrCreateWrappedConnectionFactory());
         javax.jms.Message message = (javax.jms.Message)jmsTemplate.execute(new SessionCallback() {
             public Object doInJms(Session session) throws JMSException {
                 return JMSUtils.createAndSetPayload(testBytes, session, JMSConstants.BYTE_MESSAGE_TYPE);

Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml?rev=739992&r1=739991&r2=739992&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml (original)
+++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml Mon Feb  2 14:48:01 2009
@@ -78,6 +78,7 @@
   	p:connectionFactory-ref="singleConnectionFactory"
   	p:sessionTransacted="true"
   	p:transactionManager-ref="jmsTransactionManager"  	
-  	p:usingEndpointInfo="true"/>
+  	p:usingEndpointInfo="true"
+  	p:wrapInSingleConnectionFactory="false"/>
 
 </beans>