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