Hi Claus,
I am -1 for your commit , since it broke the test of BamRouteTest.
Please take a look at the ProcessBuilder which override populateRoutes
by adding the service into the route.
I revert some of your change and all the test is passed.
Here is the patch for RouteBuilder
Index: camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
===================================================================
--- camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
(revisio
n 697643)
+++ camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
(working
copy)
@@ -16,6 +16,7 @@
*/
package org.apache.camel.builder;
+import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -43,6 +44,7 @@
public abstract class RouteBuilder extends BuilderSupport implements
Routes {
private AtomicBoolean initialized = new AtomicBoolean(false);
private RoutesType routeCollection = new RoutesType();
+ private List<Route> routes = new ArrayList<Route>();
public RouteBuilder() {
this(null);
@@ -151,7 +153,7 @@
*/
public List<Route> getRouteList() throws Exception {
checkInitialized();
- return null;
+ return routes;
}
@Override
@@ -177,11 +179,11 @@
setErrorHandlerBuilder(camelContext.getErrorHandlerBuilder());
}
configure();
- populateRoutes();
+ populateRoutes(routes);
}
}
- protected void populateRoutes() throws Exception {
+ protected void populateRoutes(List<Route> routes) throws Exception {
CamelContext camelContext = getContext();
if (camelContext == null) {
throw new IllegalArgumentException("No CamelContext has
been inject
ed!");
Willem
[EMAIL PROTECTED] wrote:
Author: davsclaus
Date: Sun Sep 21 05:43:54 2008
New Revision: 697494
URL: http://svn.apache.org/viewvc?rev=697494&view=rev
Log:
CAMEL-919: Removed unused routes. setRoutes not supported on CamelContext yet.
Polished javadoc.
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Routes.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/CamelChoiceWithManagementTest.java
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListener.java
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/ProduceTest.java
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Routes.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Routes.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Routes.java
(original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Routes.java
Sun Sep 21 05:43:54 2008
@@ -19,11 +19,23 @@
import java.util.List;
+/**
+ * Routes defined in the camel context.
+ */
public interface Routes {
+ /**
+ * Gets the Camel context used.
+ */
CamelContext getContext();
+ /**
+ * Sets the Camel context to use.
+ */
void setContext(CamelContext context);
+ /**
+ * Gets the list of routes currently in the camel context.
+ */
List<Route> getRouteList() throws Exception;
}
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
Sun Sep 21 05:43:54 2008
@@ -16,7 +16,6 @@
*/
package org.apache.camel.builder;
-import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -44,7 +43,6 @@
public abstract class RouteBuilder extends BuilderSupport implements Routes {
private AtomicBoolean initialized = new AtomicBoolean(false);
private RoutesType routeCollection = new RoutesType();
- private List<Route> routes = new ArrayList<Route>();
public RouteBuilder() {
this(null);
@@ -149,11 +147,11 @@
}
/**
- * Returns the routing map from inbound endpoints to processors
+ * Uses [EMAIL PROTECTED] org.apache.camel.CamelContext#getRoutes()} to
return the routes in the context.
*/
public List<Route> getRouteList() throws Exception {
checkInitialized();
- return routes;
+ return null;
}
@Override
@@ -179,11 +177,11 @@
setErrorHandlerBuilder(camelContext.getErrorHandlerBuilder());
}
configure();
- populateRoutes(routes);
+ populateRoutes();
}
}
- protected void populateRoutes(List<Route> routes) throws Exception {
+ protected void populateRoutes() throws Exception {
CamelContext camelContext = getContext();
if (camelContext == null) {
throw new IllegalArgumentException("No CamelContext has been
injected!");
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?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
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
Sun Sep 21 05:43:54 2008
@@ -328,25 +328,31 @@
public void setRoutes(List<Route> routes) {
this.routes = routes;
+ throw new UnsupportedOperationException("overriding existing routes is not
supported yet, use addRoutes instead");
}
public void addRoutes(Collection<Route> routes) throws Exception {
if (this.routes == null) {
- this.routes = new ArrayList<Route>(routes);
- } else {
- this.routes.addAll(routes);
+ this.routes = new ArrayList<Route>();
}
- lifecycleStrategy.onRoutesAdd(routes);
- if (shouldStartRoutes()) {
- startRoutes(routes);
+
+ if (routes != null) {
+ this.routes.addAll(routes);
+
+ lifecycleStrategy.onRoutesAdd(routes);
+ if (shouldStartRoutes()) {
+ startRoutes(routes);
+ }
}
}
public void addRoutes(Routes builder) throws Exception {
// lets now add the routes from the builder
- builder.setContext(this);
+ builder.setContext(this);
List<Route> routeList = builder.getRouteList();
- LOG.debug("Adding routes from: " + builder + " routes: " + routeList);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Adding routes from: " + builder + " routes: " +
routeList);
+ }
addRoutes(routeList);
}
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
Sun Sep 21 05:43:54 2008
@@ -25,6 +25,7 @@
import org.apache.camel.Producer;
import org.apache.camel.Route;
import org.apache.camel.TestSupport;
+import org.apache.camel.model.RoutesType;
import org.apache.camel.impl.EventDrivenConsumerRoute;
import org.apache.camel.management.InstrumentationProcessor;
import org.apache.camel.management.JmxSystemPropertyKeys;
@@ -268,11 +269,6 @@
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from("seda:a").intercept(interceptor1).intercept(interceptor2).to("seda:d");
- /*
- *
- * TODO keep old DSL? .intercept() .add(interceptor1)
- * .add(interceptor2) .target().to("seda:d");
- */
}
};
// END SNIPPET: e7
@@ -499,4 +495,18 @@
return processor;
}
}
+
+ public void testCorrectNumberOfRoutes() throws Exception {
+ RouteBuilder builder = new RouteBuilder() {
+ public void configure() throws Exception {
+ from("direct:start").to("seda:in");
+
+ from("seda:in").to("mock:result");
+ }
+ };
+
+ List<Route> routes = getRouteList(builder);
+
+ assertEquals(2, routes.size());
+ }
}
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/CamelChoiceWithManagementTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/CamelChoiceWithManagementTest.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/CamelChoiceWithManagementTest.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/management/CamelChoiceWithManagementTest.java
Sun Sep 21 05:43:54 2008
@@ -34,6 +34,7 @@
private MockEndpoint d;
private MockEndpoint e;
+
protected void setUp() throws Exception {
context = createCamelContext();
assertValidContext(context);
@@ -73,7 +74,6 @@
});
assertMockEndpointsSatisfied();
-
}
public void testOtherwise() throws Exception {
Modified:
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListener.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListener.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListener.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListener.java
Sun Sep 21 05:43:54 2008
@@ -20,5 +20,7 @@
* @version $Revision$
*/
public interface MyListener {
+
String sayHello(String name);
+
}
Modified:
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java
Sun Sep 21 05:43:54 2008
@@ -17,6 +17,8 @@
package org.apache.camel.spring.produce;
import org.apache.camel.Consume;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
/**
@@ -25,13 +27,15 @@
@Service
public class MyListenerService implements MyListener {
+ private static final Log LOG = LogFactory.getLog(MyListenerService.class);
+
public MyListenerService() {
- System.out.println("Instantiated service: " + this);
+ LOG.debug("Instantiated service: " + this);
}
@Consume(uri = "direct:myService")
public String sayHello(String name) {
- System.out.println("Invoked sayHello with: " + name);
+ LOG.debug("Invoked sayHello with: " + name);
return "Hello " + name;
}
}
Modified:
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/ProduceTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/ProduceTest.java?rev=697494&r1=697493&r2=697494&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/ProduceTest.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/ProduceTest.java
Sun Sep 21 05:43:54 2008
@@ -36,6 +36,5 @@
// lets send a message
String actual = producer.sayHello("James");
assertEquals("response", "Hello James", actual);
-
}
}
\ No newline at end of file