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 2009/02/12 14:07:21 UTC

svn commit: r743719 - in /camel/trunk/components/camel-jms/src: main/java/org/apache/camel/component/jms/JmsComponent.java main/java/org/apache/camel/component/jms/JmsEndpoint.java test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java

Author: davsclaus
Date: Thu Feb 12 13:07:20 2009
New Revision: 743719

URL: http://svn.apache.org/viewvc?rev=743719&view=rev
Log:
CAMEL-505: jms endpoint can be created using spring bean style.

Added:
    camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java
      - copied, changed from r743689, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
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/JmsEndpoint.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=743719&r1=743718&r2=743719&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 Thu Feb 12 13:07:20 2009
@@ -23,7 +23,6 @@
 import javax.jms.Session;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.CamelException;
 import org.apache.camel.Endpoint;
 import org.apache.camel.HeaderFilterStrategyAware;
 import org.apache.camel.component.jms.requestor.Requestor;
@@ -60,20 +59,17 @@
     private Requestor requestor;
     private QueueBrowseStrategy queueBrowseStrategy;
     private boolean attemptedToCreateQueueBrowserStrategy;
-    private HeaderFilterStrategy headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy = new JmsHeaderFilterStrategy();
 
     public JmsComponent() {
-        setHeaderFilterStrategy(new JmsHeaderFilterStrategy());
-    }
-
-    public JmsComponent(JmsConfiguration configuration) {
-        this.configuration = configuration;
-        setHeaderFilterStrategy(new JmsHeaderFilterStrategy());
     }
 
     public JmsComponent(CamelContext context) {
         super(context);
-        setHeaderFilterStrategy(new JmsHeaderFilterStrategy());
+    }
+
+    public JmsComponent(JmsConfiguration configuration) {
+        this.configuration = configuration;
     }
 
     /**
@@ -347,6 +343,14 @@
         this.queueBrowseStrategy = queueBrowseStrategy;
     }
 
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+        this.headerFilterStrategy = strategy;
+    }
+
     // Implementation methods
     // -------------------------------------------------------------------------
 
@@ -421,6 +425,9 @@
             }
         }
         setProperties(endpoint.getConfiguration(), parameters);
+
+        endpoint.setHeaderFilterStrategy(getHeaderFilterStrategy());
+
         return endpoint;
     }
 
@@ -463,12 +470,4 @@
         }
     }
 
-    public HeaderFilterStrategy getHeaderFilterStrategy() {
-        return headerFilterStrategy;
-    }
-
-    public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
-        this.headerFilterStrategy = strategy;
-    }
-
 }

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=743719&r1=743718&r2=743719&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 Thu Feb 12 13:07:20 2009
@@ -45,8 +45,9 @@
  *
  * @version $Revision:520964 $
  */
-public class JmsEndpoint extends DefaultEndpoint {
-    private final boolean pubSubDomain;
+public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
+    private HeaderFilterStrategy headerFilterStrategy;
+    private boolean pubSubDomain;
     private JmsBinding binding;
     private String destinationName;
     private Destination destination;
@@ -54,6 +55,10 @@
     private JmsConfiguration configuration;
     private Requestor requestor;
 
+    public JmsEndpoint() {
+        this(null, null);
+    }
+
     public JmsEndpoint(String uri, JmsComponent component, String destinationName, boolean pubSubDomain, JmsConfiguration configuration) {
         super(uri, component);
         this.configuration = configuration;
@@ -80,10 +85,6 @@
         this(endpointUri, destinationName, true);
     }
 
-    public JmsEndpoint() {
-        this(null, null);
-    }
-
     public JmsProducer createProducer() throws Exception {
         return new JmsProducer(this);
     }
@@ -179,6 +180,17 @@
 
     // Properties
     // -------------------------------------------------------------------------
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
+        if (headerFilterStrategy == null) {
+            headerFilterStrategy = new JmsHeaderFilterStrategy();
+        }
+        return headerFilterStrategy;
+    }
+
+    public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+        this.headerFilterStrategy = strategy;
+    }
+
     public JmsBinding getBinding() {
         if (binding == null) {
             binding = new JmsBinding(this);
@@ -306,14 +318,6 @@
         }
     }
 
-    public HeaderFilterStrategy getHeaderFilterStrategy() {
-        if (getComponent() instanceof HeaderFilterStrategyAware) {
-            return ((HeaderFilterStrategyAware)getComponent()).getHeaderFilterStrategy();
-        } else {
-            return new JmsHeaderFilterStrategy();
-        }
-    }
-
     // Delegated properties from the configuration
     //-------------------------------------------------------------------------
     public int getAcknowledgementMode() {

Copied: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java (from r743689, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java?p2=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java&p1=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java&r1=743689&r2=743719&rev=743719&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java (original)
+++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteEndpointTest.java Thu Feb 12 13:07:20 2009
@@ -16,62 +16,45 @@
  */
 package org.apache.camel.component.jms;
 
-import java.io.File;
-
-import javax.jms.ConnectionFactory;
+import javax.jms.Session;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.converter.IOConverter;
-
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge;
 
 /**
- * Unit test that we can consume JMS message and store it as file (to avoid regression bug)
+ * Unit test for creting jms endpoint manually
  */
-public class JmsRouteToFileTest extends ContextTestSupport {
+public class JmsRouteEndpointTest extends ContextTestSupport {
 
-    protected String componentName = "activemq";
+    private JmsEndpoint jms;
 
     public void testRouteToFile() throws Exception {
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedMessageCount(1);
-        
-        deleteDirectory("target/routetofile");
 
-        template.sendBody("activemq:queue:hello", "Hello World");
+        template.sendBody(jms, "Hello World");
 
-        // pause to let file producer save the file
         result.assertIsSatisfied();
-        
-        // do file assertions
-        File dir = new File("./target/routetofile");
-        assertTrue("Should be directory", dir.isDirectory());
-        File file = dir.listFiles()[0];
-        assertTrue("File should exists", file.exists());
-        String body = IOConverter.toString(file);
-        assertEquals("Hello World", body);
-    }
-
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
-        camelContext.addComponent(componentName, jmsComponentClientAcknowledge(connectionFactory));
-
-        return camelContext;
     }
 
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                // using mock endpoint here purely for testing. You would normally write this route as
-                // from("activemq:queue:hello").to("file://target/routetofile");
-                from("activemq:queue:hello").to("file://target/routetofile").to("mock:result");
+                ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+
+                jms = new JmsEndpoint();
+                jms.setCamelContext(context);
+                jms.setDestinationName("queue:hello");
+                jms.setConnectionFactory(connectionFactory);
+                JmsConfiguration config = new JmsConfiguration();
+                config.setConnectionFactory(connectionFactory);
+                config.setAcknowledgementMode(Session.CLIENT_ACKNOWLEDGE);
+                jms.setConfiguration(config);
+
+                from(jms).to("mock:result");
             }
         };
     }
-}
+}
\ No newline at end of file