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/12/10 04:15:10 UTC

svn commit: r889065 - in /cxf/trunk: rt/transports/jms/ rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/ rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/ rt/transports/jms/src/test/resources/ testutils/src/main/resources/wsdl/

Author: dkulp
Date: Thu Dec 10 03:15:09 2009
New Revision: 889065

URL: http://svn.apache.org/viewvc?rev=889065&view=rev
Log:
[CXF-2577] Only set creds if it's not already a SingleConnectionFactory

Added:
    cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml   (with props)
Modified:
    cxf/trunk/rt/transports/jms/pom.xml
    cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java
    cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
    cxf/trunk/testutils/src/main/resources/wsdl/jms_test.wsdl

Modified: cxf/trunk/rt/transports/jms/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/pom.xml?rev=889065&r1=889064&r2=889065&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/pom.xml (original)
+++ cxf/trunk/rt/transports/jms/pom.xml Thu Dec 10 03:15:09 2009
@@ -86,6 +86,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.xbean</groupId>
+            <artifactId>xbean-spring</artifactId>
+            <version>3.5</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>commons-pool</groupId>
             <artifactId>commons-pool</artifactId>
             <version>1.5.2</version>

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java?rev=889065&r1=889064&r2=889065&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java Thu Dec 10 03:15:09 2009
@@ -32,6 +32,7 @@
 
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.service.model.EndpointInfo;
+import org.springframework.jms.connection.SingleConnectionFactory;
 import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
 import org.springframework.jms.core.JmsTemplate;
 import org.springframework.jms.core.JmsTemplate102;
@@ -73,12 +74,15 @@
         try {
             ConnectionFactory cf = (ConnectionFactory)jmsConfig.getJndiTemplate().
                 lookup(connectionFactoryName);
-            UserCredentialsConnectionFactoryAdapter uccf = new UserCredentialsConnectionFactoryAdapter();
-            uccf.setUsername(userName);
-            uccf.setPassword(password);
-            uccf.setTargetConnectionFactory(cf);
+            if (!(cf instanceof SingleConnectionFactory)) {
+                UserCredentialsConnectionFactoryAdapter uccf = new UserCredentialsConnectionFactoryAdapter();
+                uccf.setUsername(userName);
+                uccf.setPassword(password);
+                uccf.setTargetConnectionFactory(cf);
+                cf = uccf;
+            }
             
-            return uccf;
+            return cf;
         } catch (NamingException e) {
             throw new RuntimeException(e);
         }

Modified: cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java?rev=889065&r1=889064&r2=889065&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java (original)
+++ cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSDestinationTest.java Thu Dec 10 03:15:09 2009
@@ -543,4 +543,19 @@
         destination.shutdown();
     }
 
+    @Test
+    public void testGetSpringSingleConnectionFactoryFromWSDL() throws Exception {
+        setupServiceInfo("http://cxf.apache.org/hello_world_jms", "/wsdl/jms_test.wsdl",
+                         "HelloWorldServiceSpringICF", "HelloWorldPortSpringICF");
+        final JMSDestination destination = setupJMSDestination(true);
+        // set up the conduit send to be true
+        JMSConduit conduit = setupJMSConduit(true, false);
+        final Message outMessage = new MessageImpl();
+        setupMessageHeader(outMessage, null);
+        sendoutMessage(conduit, outMessage, true);
+        waitForReceiveDestMessage();
+        conduit.close();
+        destination.shutdown();
+    }
+
 }

Added: cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml?rev=889065&view=auto
==============================================================================
--- cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml (added)
+++ cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml Thu Dec 10 03:15:09 2009
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<beans 
+    xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ct="http://cxf.apache.org/configuration/types"
+    xmlns:jms="http://cxf.apache.org/transports/jms"
+    xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util"
+    xsi:schemaLocation="
+http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    
+    <bean id="jndi" class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" factory-method="makeInitialContext" singleton="true">
+        <property name="entries" ref="jndiEntries" />
+    </bean>
+
+    <util:map id="jndiEntries">
+        <entry key="ConnectionFactory">
+            <bean class="org.springframework.jms.connection.SingleConnectionFactory">
+                <property name="targetConnectionFactory">
+                    <bean class="org.apache.activemq.ActiveMQConnectionFactory">
+                        <property name="brokerURL">
+                            <value>tcp://localhost:61500</value>
+                        </property>
+                    </bean>
+                </property>
+            </bean>
+        </entry>
+    </util:map>
+</beans>
+

Propchange: cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/jms/src/test/resources/jms_test_jndi.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/testutils/src/main/resources/wsdl/jms_test.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/testutils/src/main/resources/wsdl/jms_test.wsdl?rev=889065&r1=889064&r2=889065&view=diff
==============================================================================
--- cxf/trunk/testutils/src/main/resources/wsdl/jms_test.wsdl (original)
+++ cxf/trunk/testutils/src/main/resources/wsdl/jms_test.wsdl Thu Dec 10 03:15:09 2009
@@ -583,6 +583,20 @@
         </port>
     </service>
 
+    <service name="HelloWorldServiceSpringICF">
+           <port binding="tns:HelloWorldPortBinding" name="HelloWorldPortSpringICF">
+               <jms:clientConfig useConduitIdSelector="false"/>
+               <jms:address
+                   jndiConnectionFactoryName="ConnectionFactory" 
+                   jmsDestinationName="dynamicQueues/test.jmstransport.text">
+                   <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.xbean.spring.jndi.SpringInitialContextFactory"/>
+                   <jms:JMSNamingProperty name="java.naming.provider.url" value="classpath:/jms_test_jndi.xml"/>
+               </jms:address>
+            
+               <jms:server durableSubscriberName="CXF_subscriber"/>
+           </port>
+    </service>        
+
 </definitions>