You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/08/13 10:44:07 UTC
svn commit: r1157348 - in /camel/trunk/components/camel-jms/src:
main/java/org/apache/camel/component/jms/JmsComponent.java
test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
Author: davsclaus
Date: Sat Aug 13 08:44:06 2011
New Revision: 1157348
URL: http://svn.apache.org/viewvc?rev=1157348&view=rev
Log:
CAMEL-4329: Fixed issue with custom connection factory and also username password in endpoint uri.
Modified:
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=1157348&r1=1157347&r2=1157348&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Sat Aug 13 08:44:06 2011
@@ -406,6 +406,12 @@ public class JmsComponent extends Defaul
}
}
+ // resolve any custom connection factory first
+ ConnectionFactory cf = resolveAndRemoveReferenceParameter(parameters, "connectionFactory", ConnectionFactory.class);
+ if (cf != null) {
+ endpoint.getConfiguration().setConnectionFactory(cf);
+ }
+
String selector = getAndRemoveParameter(parameters, "selector", String.class);
if (selector != null) {
endpoint.setSelector(selector);
@@ -413,7 +419,7 @@ public class JmsComponent extends Defaul
String username = getAndRemoveParameter(parameters, "username", String.class);
String password = getAndRemoveParameter(parameters, "password", String.class);
if (username != null && password != null) {
- ConnectionFactory cf = endpoint.getConfiguration().getConnectionFactory();
+ cf = endpoint.getConfiguration().getConnectionFactory();
UserCredentialsConnectionFactoryAdapter ucfa = new UserCredentialsConnectionFactoryAdapter();
ucfa.setTargetConnectionFactory(cf);
ucfa.setPassword(password);
Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java?rev=1157348&r1=1157347&r2=1157348&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java (original)
+++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java Sat Aug 13 08:44:06 2011
@@ -21,11 +21,13 @@ import javax.jms.DeliveryMode;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
+import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.ResolveEndpointFailedException;
+import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.processor.CamelLogger;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
@@ -45,6 +47,8 @@ import static org.apache.camel.component
*/
public class JmsEndpointConfigurationTest extends CamelTestSupport {
+ private ConnectionFactory cf = new ActiveMQConnectionFactory("vm:myBroker");
+
private Processor dummyProcessor = new Processor() {
public void process(Exchange exchange) throws Exception {
log.info("Received: " + exchange);
@@ -73,6 +77,15 @@ public class JmsEndpointConfigurationTes
}
@Test
+ public void testSetConnectionFactoryAndUsernameAndPassword() throws Exception {
+ JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:topic:Foo.Bar?connectionFactory=#myConnectionFactory&username=James&password=ABC");
+ ConnectionFactory cf = endpoint.getConfiguration().getConnectionFactory();
+ assertNotNull("The connectionFactory should not be null", cf);
+ assertTrue("The connectionFactory should be the instance of UserCredentialsConnectionFactoryAdapter",
+ cf instanceof UserCredentialsConnectionFactoryAdapter);
+ }
+
+ @Test
public void testNotSetUsernameOrPassword() {
try {
resolveMandatoryEndpoint("jms:topic:Foo.Bar?username=James");
@@ -469,4 +482,13 @@ public class JmsEndpointConfigurationTes
return camelContext;
}
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry jndi = super.createRegistry();
+ jndi.bind("myConnectionFactory", cf);
+ return jndi;
+ }
+
+
}