You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bv...@apache.org on 2012/05/26 17:17:47 UTC

svn commit: r1342908 - in /camel/trunk/components/camel-jms/src: main/java/org/apache/camel/component/jms/ test/java/org/apache/camel/component/jms/

Author: bvahdat
Date: Sat May 26 15:17:46 2012
New Revision: 1342908

URL: http://svn.apache.org/viewvc?rev=1342908&view=rev
Log:
CAMEL-5055: Offer a way to not set a transaction manager in camel-jms.

Modified:
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.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=1342908&r1=1342907&r2=1342908&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 May 26 15:17:46 2012
@@ -304,6 +304,10 @@ public class JmsComponent extends Defaul
         getConfiguration().setTransacted(consumerTransacted);
     }
 
+    public void setLazyCreateTransactionManager(boolean lazyCreating) {
+        getConfiguration().setLazyCreateTransactionManager(lazyCreating);
+    }
+
     public void setTransactionManager(PlatformTransactionManager transactionManager) {
         getConfiguration().setTransactionManager(transactionManager);
     }

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java?rev=1342908&r1=1342907&r2=1342908&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java Sat May 26 15:17:46 2012
@@ -126,7 +126,7 @@ public class JmsConfiguration implements
     private boolean asyncStartListener;
     private boolean asyncStopListener;
     // if the message is a JmsMessage and mapJmsMessage=false, force the
-    // producer to send the javax.jms.Message body to the next JMS destination    
+    // producer to send the javax.jms.Message body to the next JMS destination
     private boolean forceSendOriginalMessage;
     // to force disabling time to live (works in both in-only or in-out mode)
     private boolean disableTimeToLive;
@@ -153,7 +153,6 @@ public class JmsConfiguration implements
         }
     }
 
-
     public static class CamelJmsTemplate extends JmsTemplate {
         private JmsConfiguration config;
 
@@ -281,7 +280,6 @@ public class JmsConfiguration implements
         }
     }
 
-
     /**
      * Creates a {@link JmsOperations} object used for request/response using a request timeout value
      */
@@ -650,7 +648,7 @@ public class JmsConfiguration implements
     public void setIdleConsumerLimit(int idleConsumerLimit) {
         this.idleConsumerLimit = idleConsumerLimit;
     }
-    
+
     public int getMaxConcurrentConsumers() {
         return maxConcurrentConsumers;
     }
@@ -873,7 +871,6 @@ public class JmsConfiguration implements
         };
     }
 
-
     protected void configureMessageListenerContainer(AbstractMessageListenerContainer container,
                                                      JmsEndpoint endpoint) throws Exception {
         container.setConnectionFactory(getListenerConnectionFactory());
@@ -905,7 +902,6 @@ public class JmsConfiguration implements
 
         container.setAcceptMessagesWhileStopping(acceptMessagesWhileStopping);
         container.setExposeListenerSession(exposeListenerSession);
-        container.setSessionTransacted(transacted);
         if (transacted) {
             container.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
         } else {
@@ -964,7 +960,7 @@ public class JmsConfiguration implements
         }
         if (idleConsumerLimit >= 0) {
             container.setIdleConsumerLimit(idleConsumerLimit);
-        }        
+        }
         if (maxConcurrentConsumers > 0) {
             if (maxConcurrentConsumers < concurrentConsumers) {
                 throw new IllegalArgumentException("Property maxConcurrentConsumers: " + maxConcurrentConsumers
@@ -988,8 +984,12 @@ public class JmsConfiguration implements
         PlatformTransactionManager tm = getTransactionManager();
         if (tm != null) {
             container.setTransactionManager(tm);
-        } else if (transacted) {
-            throw new IllegalArgumentException("Property transacted is enabled but a transactionManager was not injected!");
+        } else if (transacted && transactionManager == null) {
+            if (!lazyCreateTransactionManager) {
+                container.setSessionTransacted(true);
+            } else {
+                throw new IllegalArgumentException("Property transacted is enabled but neither a transactionManager is available nor lazyCreateTransactionManager is disabled!");
+            }
         }
         if (transactionName != null) {
             container.setTransactionName(transactionName);
@@ -1085,7 +1085,6 @@ public class JmsConfiguration implements
         }
     }
 
-
     public boolean isAlwaysCopyMessage() {
         return alwaysCopyMessage;
     }
@@ -1261,11 +1260,11 @@ public class JmsConfiguration implements
     public void setAsyncConsumer(boolean asyncConsumer) {
         this.asyncConsumer = asyncConsumer;
     }
-    
+
     public void setReplyToCacheLevelName(String name) {
         this.replyToCacheLevelName = name;
     }
-    
+
     public String getReplyToCacheLevelName() {
         return replyToCacheLevelName;
     }

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=1342908&r1=1342907&r2=1342908&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Sat May 26 15:17:46 2012
@@ -759,6 +759,11 @@ public class JmsEndpoint extends Default
     }
 
     @ManagedAttribute
+    public boolean isLazyCreateTransactionManager() {
+        return getConfiguration().isLazyCreateTransactionManager();
+    }
+
+    @ManagedAttribute
     @Deprecated
     public boolean isTransactedInOut() {
         return getConfiguration().isTransactedInOut();
@@ -990,6 +995,11 @@ public class JmsEndpoint extends Default
         getConfiguration().setTransactedInOut(transactedInOut);
     }
 
+    @ManagedAttribute
+    public void setLazyCreateTransactionManager(boolean lazyCreating) {
+        getConfiguration().setLazyCreateTransactionManager(lazyCreating);
+    }
+
     public void setTransactionManager(PlatformTransactionManager transactionManager) {
         getConfiguration().setTransactionManager(transactionManager);
     }

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=1342908&r1=1342907&r2=1342908&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 May 26 15:17:46 2012
@@ -22,6 +22,7 @@ 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;
@@ -29,7 +30,9 @@ import org.apache.camel.Producer;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.test.junit4.CamelTestSupport;
+
 import org.junit.Test;
+
 import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter;
 import org.springframework.jms.core.JmsOperations;
 import org.springframework.jms.core.JmsTemplate;
@@ -44,16 +47,13 @@ import org.springframework.util.ErrorHan
  */
 public class JmsEndpointConfigurationTest extends CamelTestSupport {
 
-    private final class FailProcessor implements Processor {
-        @Override
+    private final Processor failProcessor = new Processor() {
         public void process(Exchange exchange) throws Exception {
             fail("Should not be reached");
         }
-    }
-
-    private ConnectionFactory cf = new ActiveMQConnectionFactory("vm:myBroker");
+    };
 
-    private Processor dummyProcessor = new Processor() {
+    private final Processor dummyProcessor = new Processor() {
         public void process(Exchange exchange) throws Exception {
             log.info("Received: " + exchange);
         }
@@ -61,32 +61,30 @@ public class JmsEndpointConfigurationTes
 
     @Test
     public void testDurableSubscriberConfiguredWithDoubleSlash() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms://topic:Foo.Bar?durableSubscriptionName=James&clientId=ABC");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms://topic:Foo.Bar?durableSubscriptionName=James&clientId=ABC", JmsEndpoint.class);
         assertDurableSubscriberEndpointIsValid(endpoint);
     }
 
     @Test
     public void testDurableSubscriberConfiguredWithNoSlashes() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:topic:Foo.Bar?durableSubscriptionName=James&clientId=ABC");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?durableSubscriptionName=James&clientId=ABC", JmsEndpoint.class);
         assertDurableSubscriberEndpointIsValid(endpoint);
     }
- 
+
     @Test
     public void testSetUsernameAndPassword() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:topic:Foo.Bar?username=James&password=ABC");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?username=James&password=ABC", JmsEndpoint.class);
         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);        
+        assertTrue("The connectionFactory should be the instance of UserCredentialsConnectionFactoryAdapter", cf instanceof UserCredentialsConnectionFactoryAdapter);
     }
- 
+
     @Test
     public void testSetConnectionFactoryAndUsernameAndPassword() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:topic:Foo.Bar?connectionFactory=#myConnectionFactory&username=James&password=ABC");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar?connectionFactory=#myConnectionFactory&username=James&password=ABC", JmsEndpoint.class);
         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);
+        assertTrue("The connectionFactory should be the instance of UserCredentialsConnectionFactoryAdapter", cf instanceof UserCredentialsConnectionFactoryAdapter);
     }
 
     @Test
@@ -94,22 +92,21 @@ public class JmsEndpointConfigurationTes
         try {
             resolveMandatoryEndpoint("jms:topic:Foo.Bar?username=James");
             fail("Expect the exception here");
-        } catch (ResolveEndpointFailedException exception) {
-            // Expect the exception here
+        } catch (ResolveEndpointFailedException refe) {
+            assertEquals("Failed to resolve endpoint: jms://topic:Foo.Bar?username=James due to: The JmsComponent's username or password is null", refe.getMessage());
         }
-        
+
         try {
             resolveMandatoryEndpoint("jms:topic:Foo.Bar?password=ABC");
             fail("Expect the exception here");
-        } catch (ResolveEndpointFailedException exception) {
-            // Expect the exception here
+        } catch (ResolveEndpointFailedException refe) {
+            assertEquals("Failed to resolve endpoint: jms://topic:Foo.Bar?password=ABC due to: The JmsComponent's username or password is null", refe.getMessage());
         }
-        
     }
 
     @Test
     public void testSelector() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:Foo.Bar?selector=foo%3D'ABC'");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:Foo.Bar?selector=foo%3D'ABC'", JmsEndpoint.class);
         JmsConsumer consumer = endpoint.createConsumer(dummyProcessor);
 
         AbstractMessageListenerContainer container = consumer.getListenerContainer();
@@ -123,7 +120,7 @@ public class JmsEndpointConfigurationTes
 
     @Test
     public void testConfigureMessageListener() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:Foo.Bar?disableReplyTo=true&eagerLoadingOfProperties=true");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:Foo.Bar?disableReplyTo=true&eagerLoadingOfProperties=true", JmsEndpoint.class);
         JmsConsumer consumer = endpoint.createConsumer(dummyProcessor);
 
         AbstractMessageListenerContainer container = consumer.getListenerContainer();
@@ -135,7 +132,7 @@ public class JmsEndpointConfigurationTes
 
     @Test
     public void testCreateSimpleMessageListener() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:Foo.Bar?consumerType=Simple");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:Foo.Bar?consumerType=Simple", JmsEndpoint.class);
         JmsConsumer consumer = endpoint.createConsumer(dummyProcessor);
 
         AbstractMessageListenerContainer container = consumer.getListenerContainer();
@@ -144,19 +141,19 @@ public class JmsEndpointConfigurationTes
 
     @Test
     public void testCacheConsumerEnabledForQueue() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:Foo.Bar");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:Foo.Bar", JmsEndpoint.class);
         assertCacheLevel(endpoint, DefaultMessageListenerContainer.CACHE_AUTO);
     }
 
     @Test
     public void testCacheConsumerEnabledForTopic() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:topic:Foo.Bar");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:topic:Foo.Bar", JmsEndpoint.class);
         assertCacheLevel(endpoint, DefaultMessageListenerContainer.CACHE_AUTO);
     }
 
     @Test
     public void testReplyToPesistentDelivery() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo", JmsEndpoint.class);
         endpoint.getConfiguration().setDeliveryPersistent(true);
         endpoint.getConfiguration().setReplyToDeliveryPersistent(false);
         Producer producer = endpoint.createProducer();
@@ -164,41 +161,40 @@ public class JmsEndpointConfigurationTes
         JmsConsumer consumer = endpoint.createConsumer(dummyProcessor);
         JmsOperations operations = consumer.getEndpointMessageListener().getTemplate();
         assertTrue(operations instanceof JmsTemplate);
-        JmsTemplate template = (JmsTemplate)operations;
-        assertTrue("Wrong delivery mode on reply template; expected  " 
-                     + " DeliveryMode.NON_PERSISTENT but was DeliveryMode.PERSISTENT", 
-                     template.getDeliveryMode() == DeliveryMode.NON_PERSISTENT);
+        JmsTemplate template = (JmsTemplate) operations;
+        assertTrue("Wrong delivery mode on reply template; expected  " + " DeliveryMode.NON_PERSISTENT but was DeliveryMode.PERSISTENT",
+                   template.getDeliveryMode() == DeliveryMode.NON_PERSISTENT);
     }
 
     @Test
     public void testMaxConcurrentConsumers() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?maxConcurrentConsumers=5");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?maxConcurrentConsumers=5", JmsEndpoint.class);
         assertEquals(5, endpoint.getMaxConcurrentConsumers());
     }
-    
+
     @Test
     public void testMaxConcurrentConsumersForSimpleConsumer() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?maxConcurrentConsumers=5&consumerType=Simple");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?maxConcurrentConsumers=5&consumerType=Simple", JmsEndpoint.class);
         assertEquals(5, endpoint.getMaxConcurrentConsumers());
     }
 
     @Test
     public void testInvalidMaxConcurrentConsumers() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2", JmsEndpoint.class);
         try {
-            endpoint.createConsumer(new FailProcessor());
+            endpoint.createConsumer(failProcessor);
             fail("Should have thrown exception");
         } catch (IllegalArgumentException e) {
             assertEquals("Property maxConcurrentConsumers: 2 must be higher than concurrentConsumers: 5", e.getMessage());
         }
     }
-    
+
     @Test
     public void testInvalidMaxConcurrentConsumersForSimpleConsumer() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2&consumerType=Simple");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=5&maxConcurrentConsumers=2&consumerType=Simple", JmsEndpoint.class);
 
         try {
-            endpoint.createConsumer(new FailProcessor());
+            endpoint.createConsumer(failProcessor);
             fail("Should have thrown exception");
         } catch (IllegalArgumentException e) {
             assertEquals("Property maxConcurrentConsumers: 2 must be higher than concurrentConsumers: 5", e.getMessage());
@@ -206,35 +202,46 @@ public class JmsEndpointConfigurationTes
     }
 
     @Test
+    public void testSessionTransacted() throws Exception {
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?transacted=true&lazyCreateTransactionManager=false", JmsEndpoint.class);
+        AbstractMessageListenerContainer container = endpoint.createConsumer(dummyProcessor).getListenerContainer();
+        assertTrue(container.isSessionTransacted());
+        assertFalse(endpoint.isLazyCreateTransactionManager());
+
+        endpoint = resolveMandatoryEndpoint("jms:queue:Foo?transacted=true", JmsEndpoint.class);
+        container = endpoint.createConsumer(dummyProcessor).getListenerContainer();
+        assertFalse(container.isSessionTransacted());
+        assertTrue(endpoint.isLazyCreateTransactionManager());
+    }
+
+    @Test
     public void testConcurrentConsumers() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=4");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=4", JmsEndpoint.class);
         assertEquals(4, endpoint.getConcurrentConsumers());
     }
 
     @Test
     public void testConcurrentConsumersForSimpleConsumer() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=4&consumerType=Simple");
-
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?concurrentConsumers=4&consumerType=Simple", JmsEndpoint.class);
         assertEquals(4, endpoint.getConcurrentConsumers());
     }
 
     @Test
     public void testPubSubNoLocalForSimpleConsumer() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?pubSubNoLocal=true&consumerType=Simple");
-
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?pubSubNoLocal=true&consumerType=Simple", JmsEndpoint.class);
         assertTrue("PubSubNoLocal should be true", endpoint.isPubSubNoLocal());
     }
 
     @Test
     public void testIdleTaskExecutionLimit() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?idleTaskExecutionLimit=50");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?idleTaskExecutionLimit=50", JmsEndpoint.class);
         assertEquals(50, endpoint.getIdleTaskExecutionLimit());
         assertEquals(true, endpoint.isAutoStartup());
     }
 
     @Test
     public void testIdleConsumerLimit() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?idleConsumerLimit=51");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?idleConsumerLimit=51", JmsEndpoint.class);
         assertEquals(51, endpoint.getIdleConsumerLimit());
         assertEquals(true, endpoint.isAutoStartup());
         assertEquals("Foo", endpoint.getEndpointConfiguredDestinationName());
@@ -242,14 +249,14 @@ public class JmsEndpointConfigurationTes
 
     @Test
     public void testLazyCreateTransactionManager() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo?lazyCreateTransactionManager=true");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo?lazyCreateTransactionManager=true", JmsEndpoint.class);
         assertEquals(true, endpoint.getConfiguration().isLazyCreateTransactionManager());
     }
 
     @SuppressWarnings("deprecation")
     @Test
     public void testDefaultEndpointOptions() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo", JmsEndpoint.class);
 
         assertNotNull(endpoint.getBinding());
         assertNotNull(endpoint.getCamelContext());
@@ -323,7 +330,7 @@ public class JmsEndpointConfigurationTes
     @SuppressWarnings("deprecation")
     @Test
     public void testSettingEndpointOptions() throws Exception {
-        JmsEndpoint endpoint = (JmsEndpoint) resolveMandatoryEndpoint("jms:queue:Foo");
+        JmsEndpoint endpoint = resolveMandatoryEndpoint("jms:queue:Foo", JmsEndpoint.class);
 
         endpoint.setAcceptMessagesWhileStopping(true);
         assertEquals(true, endpoint.isAcceptMessagesWhileStopping());
@@ -372,7 +379,7 @@ public class JmsEndpointConfigurationTes
             }
         });
         assertNotNull(endpoint.getErrorHandler());
-        
+
         endpoint.setExplicitQosEnabled(true);
         assertEquals(true, endpoint.isExplicitQosEnabled());
 
@@ -384,7 +391,7 @@ public class JmsEndpointConfigurationTes
 
         endpoint.setIdleConsumerLimit(5);
         assertEquals(5, endpoint.getIdleConsumerLimit());
-        
+
         endpoint.setMaxConcurrentConsumers(4);
         assertEquals(4, endpoint.getMaxConcurrentConsumers());
 
@@ -492,9 +499,8 @@ public class JmsEndpointConfigurationTes
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry jndi = super.createRegistry();
-        jndi.bind("myConnectionFactory", cf);
+        jndi.bind("myConnectionFactory", new ActiveMQConnectionFactory("vm:myBroker"));
         return jndi;
     }
 
-
 }