You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/04/30 16:29:21 UTC
svn commit: r533758 - in /activemq/camel/trunk:
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/component/direct/
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/test/java/org/apache/camel/component/q...
Author: chirino
Date: Mon Apr 30 07:29:20 2007
New Revision: 533758
URL: http://svn.apache.org/viewvc?view=rev&rev=533758
Log:
- Renamed Component.resolveEndpoint to Component.createEndpoint
- DefaultCamelContext only registeres as singtons endpoints that say they are singletons.
- Added some more transaction scenarios for JMS
- JmsConsumer was starting up multiple listeners. Removed the call to listenerContainer.initialize() since listenerContainer.afterPropertiesSet() calls it.
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/queue/QueueRouteTest.java
activemq/camel/trunk/camel-jbi/src/main/java/org/apache/camel/component/jbi/CamelJbiComponent.java
activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java Mon Apr 30 07:29:20 2007
@@ -43,5 +43,5 @@
* @return a newly created endpoint or null if this component cannot create instances of the given
* uri
*/
- Endpoint<E> resolveEndpoint(String uri) throws Exception;
+ Endpoint<E> createEndpoint(String uri) throws Exception;
}
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java Mon Apr 30 07:29:20 2007
@@ -47,7 +47,7 @@
return null;
}
- public Endpoint<E> resolveEndpoint(String uri) throws Exception {
+ public Endpoint<E> createEndpoint(String uri) throws Exception {
ObjectHelper.notNull(getCamelContext(), "camelContext");
URI u = new URI(uri);
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Mon Apr 30 07:29:20 2007
@@ -190,15 +190,19 @@
// Ask the component to resolve the endpoint.
if (component != null) {
- answer = component.resolveEndpoint(uri);
+
+ // Have the component create the endpoint if it can.
+ answer = component.createEndpoint(uri);
+
+ // If it's a singleton then auto register it.
+ if( answer!=null && answer.isSingleton() ) {
+ if (answer != null) {
+ startServices(answer);
+ endpoints.put(uri, answer);
+ }
+ }
}
- // HC: What's the idea behind starting an endpoint?
- // I don't think we have any endpoints that are services do we?
- if (answer != null) {
- startServices(answer);
- endpoints.put(uri, answer);
- }
}
catch (Exception e) {
throw new ResolveEndpointFailedException(uri, e);
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Apr 30 07:29:20 2007
@@ -48,7 +48,7 @@
}
- public Endpoint<E> resolveEndpoint(String uri) throws Exception {
+ public Endpoint<E> createEndpoint(String uri) throws Exception {
ObjectHelper.notNull(getCamelContext(), "camelContext");
URI u = new URI(uri);
String path = u.getHost();
Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/queue/QueueRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/queue/QueueRouteTest.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/queue/QueueRouteTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/queue/QueueRouteTest.java Mon Apr 30 07:29:20 2007
@@ -95,7 +95,7 @@
container.start();
// now lets fire in a message
- Endpoint<Exchange> endpoint = container.getComponent("queue").resolveEndpoint("queue:test.a");
+ Endpoint<Exchange> endpoint = container.getComponent("queue").createEndpoint("queue:test.a");
Exchange exchange = endpoint.createExchange();
exchange.getIn().setHeader("cheese", 123);
Modified: activemq/camel/trunk/camel-jbi/src/main/java/org/apache/camel/component/jbi/CamelJbiComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jbi/src/main/java/org/apache/camel/component/jbi/CamelJbiComponent.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-jbi/src/main/java/org/apache/camel/component/jbi/CamelJbiComponent.java (original)
+++ activemq/camel/trunk/camel-jbi/src/main/java/org/apache/camel/component/jbi/CamelJbiComponent.java Mon Apr 30 07:29:20 2007
@@ -120,7 +120,7 @@
// Resolve Camel Endpoints
//-------------------------------------------------------------------------
- public Endpoint<Exchange> resolveEndpoint(String uri) {
+ public Endpoint<Exchange> createEndpoint(String uri) {
if (uri.startsWith("jbi:")) {
uri = uri.substring("jbi:".length());
Modified: activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java (original)
+++ activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java Mon Apr 30 07:29:20 2007
@@ -50,7 +50,6 @@
protected void doStart() throws Exception {
super.doStart();
listenerContainer.afterPropertiesSet();
- listenerContainer.initialize();
listenerContainer.start();
}
Modified: activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Mon Apr 30 07:29:20 2007
@@ -16,20 +16,15 @@
*/
package org.apache.camel.component.jms;
-import org.apache.camel.CamelContext;
+import javax.jms.Message;
+
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
-import org.apache.camel.util.URISupport;
-import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.impl.DefaultEndpoint;
import org.springframework.jms.core.JmsOperations;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.listener.AbstractMessageListenerContainer;
-
-import javax.jms.Message;
-import java.net.URI;
-import java.util.Map;
/**
* @version $Revision:520964 $
Modified: activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java?view=diff&rev=533758&r1=533757&r2=533758
==============================================================================
--- activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java (original)
+++ activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java Mon Apr 30 07:29:20 2007
@@ -28,7 +28,6 @@
import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Processor;
-import org.apache.camel.Route;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.processor.DelegateProcessor;
@@ -102,6 +101,9 @@
inheritErrorHandler(false);
// Used to validate messages are sent to the target.
from("activemq:queue:mock.a").trace().to("mock:a");
+ from("activemq:queue:mock.b").trace().to("mock:b");
+ from("activemq:queue:mock.c").trace().to("mock:c");
+ from("activemq:queue:mock.d").trace().to("mock:d");
// Receive from a and send to target in 1 tx.
from("activemq:queue:a").to("activemq:queue:mock.a");
@@ -134,15 +136,22 @@
//
// Sets up 2 consumers on single topic, one being transacted the other not. Used to verify
// That each consumer can have independently configured transaction settings.
- // Do a rollback, should cause the transacted consumer to re-deliver but not the un-trasacted one.
+ // Do a rollback, should cause the transacted consumer to re-deliver (since we are using a durable subscription) but not the un-transacted one.
+ // TODO: find out why re-delivery is not working with a non durable transacted topic.
JmsEndpoint endpoint1 = (JmsEndpoint) endpoint("activemq:topic:f");
endpoint1.getConfiguration().setTransacted(true);
+ endpoint1.getConfiguration().setSubscriptionDurable(true);
+ endpoint1.getConfiguration().setClientId("client2");
+ endpoint1.getConfiguration().setDurableSubscriptionName("sub");
from(endpoint1).policy(requried).policy(rollback).to("activemq:queue:mock.a", "mock:b");
JmsEndpoint endpoint2 = (JmsEndpoint) endpoint("activemq:topic:f");
- endpoint1.getConfiguration().setTransacted(false);
+ endpoint2.getConfiguration().setTransacted(false);
+ endpoint2.getConfiguration().setAcknowledgementMode(Session.AUTO_ACKNOWLEDGE);
+ endpoint2.getConfiguration().setSubscriptionDurable(true);
+ endpoint2.getConfiguration().setClientId("client1");
+ endpoint2.getConfiguration().setDurableSubscriptionName("sub");
from(endpoint2).policy(requried).policy(rollback).to("activemq:queue:mock.c", "mock:d");
-
}
};
}
@@ -162,9 +171,9 @@
protected void setUp() throws Exception {
super.setUp();
- for (Route route : this.context.getRoutes()) {
- System.out.println(route);
- }
+// for (Route route : this.context.getRoutes()) {
+// System.out.println(route);
+// }
mockEndpointA = (MockEndpoint) resolveMandatoryEndpoint("mock:a");
mockEndpointB = (MockEndpoint) resolveMandatoryEndpoint("mock:b");
@@ -178,6 +187,27 @@
spring.destroy();
}
+ /**
+ * This test seems to be fail every other run.
+ * @throws Exception
+ */
+ public void disabledtestSenarioF() throws Exception {
+ String expected = getName()+": "+System.currentTimeMillis();
+ mockEndpointA.expectedMessageCount(0);
+ mockEndpointB.expectedMinimumMessageCount(2);
+ mockEndpointC.expectedMessageCount(0);
+ mockEndpointD.expectedMessageCount(1);
+ send("activemq:topic:f", expected);
+
+ // Wait till the endpoints get their messages.
+ assertWait(10, TimeUnit.SECONDS, mockEndpointA,mockEndpointB,mockEndpointC,mockEndpointD);
+
+ // Wait a little more to make sure extra messages are not received.
+ Thread.sleep(1000);
+
+ assertIsSatisfied(mockEndpointA,mockEndpointB,mockEndpointC,mockEndpointD);
+ }
+
public void testSenarioA() throws Exception {
String expected = getName()+": "+System.currentTimeMillis();
mockEndpointA.expectedBodiesReceived(expected);
@@ -237,21 +267,5 @@
assertIsSatisfied(mockEndpointA, mockEndpointB);
}
- public void disabletestSenarioF() throws Exception {
- String expected = getName()+": "+System.currentTimeMillis();
- mockEndpointA.expectedMessageCount(0);
- mockEndpointB.expectedMinimumMessageCount(2);
- mockEndpointC.expectedMessageCount(0);
- mockEndpointD.expectedMessageCount(1);
- send("activemq:queue:e", expected);
-
- // Wait till the endpoints get their messages.
- assertWait(5, TimeUnit.SECONDS, mockEndpointA,mockEndpointB);
-
- // Wait a little more to make sure extra messages are not received.
- Thread.sleep(1000);
-
- assertIsSatisfied(mockEndpointA, mockEndpointB);
- }
}