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 2010/03/17 20:58:15 UTC
svn commit: r924450 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/impl/
examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/
examples/camel-example-tracer/src/main/resources/META-INF/spring/
Author: davsclaus
Date: Wed Mar 17 19:58:15 2010
New Revision: 924450
URL: http://svn.apache.org/viewvc?rev=924450&view=rev
Log:
Fixed camel-example-tracer after overhaul of Aggregator EIP.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
camel/trunk/examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/QuoteAggregator.java
camel/trunk/examples/camel-example-tracer/src/main/resources/META-INF/spring/camel-context.xml
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java?rev=924450&r1=924449&r2=924450&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java Wed Mar 17 19:58:15 2010
@@ -32,9 +32,8 @@ import org.apache.camel.spi.TracedRouteN
* @version $Revision$
*/
public class DefaultTracedRouteNodes implements TracedRouteNodes {
-
- private Stack<List<RouteNode>> routeNodes = new Stack<List<RouteNode>>();
- private Map<ProcessorDefinition<?>, AtomicInteger> nodeCounter = new HashMap<ProcessorDefinition<?>, AtomicInteger>();
+ private final Stack<List<RouteNode>> routeNodes = new Stack<List<RouteNode>>();
+ private final Map<ProcessorDefinition<?>, AtomicInteger> nodeCounter = new HashMap<ProcessorDefinition<?>, AtomicInteger>();
public DefaultTracedRouteNodes() {
// create an empty list to start with
@@ -42,7 +41,7 @@ public class DefaultTracedRouteNodes imp
}
public void addTraced(RouteNode entry) {
- List<RouteNode> list = routeNodes.peek();
+ List<RouteNode> list = routeNodes.isEmpty() ? null : routeNodes.peek();
if (list == null) {
list = new ArrayList<RouteNode>();
routeNodes.push(list);
@@ -51,7 +50,7 @@ public class DefaultTracedRouteNodes imp
}
public RouteNode getLastNode() {
- List<RouteNode> list = routeNodes.peek();
+ List<RouteNode> list = routeNodes.isEmpty() ? null : routeNodes.peek();
if (list == null || list.isEmpty()) {
return null;
}
@@ -59,7 +58,7 @@ public class DefaultTracedRouteNodes imp
}
public RouteNode getSecondLastNode() {
- List<RouteNode> list = routeNodes.peek();
+ List<RouteNode> list = routeNodes.isEmpty() ? null : routeNodes.peek();
if (list == null || list.isEmpty() || list.size() == 1) {
return null;
}
@@ -99,4 +98,5 @@ public class DefaultTracedRouteNodes imp
}
return count.getAndIncrement();
}
+
}
Modified: camel/trunk/examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/QuoteAggregator.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/QuoteAggregator.java?rev=924450&r1=924449&r2=924450&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/QuoteAggregator.java (original)
+++ camel/trunk/examples/camel-example-tracer/src/main/java/org/apache/camel/example/tracer/QuoteAggregator.java Wed Mar 17 19:58:15 2010
@@ -35,7 +35,7 @@ public class QuoteAggregator implements
public void setCoolWords(List<String> coolWords) {
for (String s : coolWords) {
- // use lower case to be incase sensitive
+ // use lower case to be case insensitive
this.coolWords.add(s.toLowerCase());
}
// reverse order so indexOf returning -1 will be the last instead
@@ -43,16 +43,21 @@ public class QuoteAggregator implements
}
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+ if (oldExchange == null) {
+ // the first time then just return the new exchange
+ return newExchange;
+ }
+
// here we aggregate
// oldExchange is the current "winner"
// newExchange is the new candidate
// we get the quotes of the two exchanges
- String oldQute = oldExchange.getIn().getBody(String.class);
- String newQute = newExchange.getIn().getBody(String.class);
+ String oldQuote = oldExchange.getIn().getBody(String.class);
+ String newQuote = newExchange.getIn().getBody(String.class);
// now we compare the two and get a result indicate the best one
- int result = new QuoteComparator().compare(oldQute, newQute);
+ int result = new QuoteComparator().compare(oldQuote, newQuote);
// we return the winner
return result > 0 ? newExchange : oldExchange;
Modified: camel/trunk/examples/camel-example-tracer/src/main/resources/META-INF/spring/camel-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-tracer/src/main/resources/META-INF/spring/camel-context.xml?rev=924450&r1=924449&r2=924450&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-tracer/src/main/resources/META-INF/spring/camel-context.xml (original)
+++ camel/trunk/examples/camel-example-tracer/src/main/resources/META-INF/spring/camel-context.xml Wed Mar 17 19:58:15 2010
@@ -45,11 +45,15 @@
<!-- now we need to find the best quote, so we aggregate all the splitted words
we use our own strategy how to aggregate -->
<aggregate strategyRef="myAggregateStrategy">
- <!-- coorelate everything using constant true, as they are all from the same source -->
+ <!-- correlate everything using constant true, as they are all from the same source -->
<correlationExpression>
<constant>true</constant>
</correlationExpression>
- <!-- send the result to strem out so we can see the respone in the console -->
+ <!-- complete after 1 sec on inactivity -->
+ <completionTimeout>
+ <constant>1000</constant>
+ </completionTimeout>
+ <!-- send the result to stream out so we can see the response in the console -->
<to uri="stream:out"/>
</aggregate>
</split>