Updated Branches: refs/heads/camel-2.11.x 5b599a2cf -> ce51227be refs/heads/master 5d69e4658 -> 546c3fd4a
CAMEL-6642: Allow to configure custom ExpressionResultComparator for resequencer eip in xml Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/546c3fd4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/546c3fd4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/546c3fd4 Branch: refs/heads/master Commit: 546c3fd4a23dcc97e126c9f2a6e0290300b7e0f5 Parents: 5d69e46 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Aug 16 08:15:30 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Aug 16 08:15:30 2013 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/model/ResequenceDefinition.java | 8 +++++++- .../camel/model/config/StreamResequencerConfig.java | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/546c3fd4/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java index adcf2f4..1520905 100644 --- a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java @@ -38,6 +38,7 @@ import org.apache.camel.processor.StreamResequencer; import org.apache.camel.processor.resequencer.ExpressionResultComparator; import org.apache.camel.spi.Required; import org.apache.camel.spi.RouteContext; +import org.apache.camel.util.CamelContextHelper; import org.apache.camel.util.ObjectHelper; /** @@ -385,7 +386,12 @@ public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefiniti ObjectHelper.notNull(config, "config", this); ObjectHelper.notNull(expression, "expression", this); - ExpressionResultComparator comparator = config.getComparator(); + ExpressionResultComparator comparator; + if (config.getComparatorRef() != null) { + comparator = CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), config.getComparatorRef(), ExpressionResultComparator.class); + } else { + comparator = config.getComparator(); + } comparator.setExpression(expression); StreamResequencer resequencer = new StreamResequencer(routeContext.getCamelContext(), internal, comparator); http://git-wip-us.apache.org/repos/asf/camel/blob/546c3fd4/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java b/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java index ac1aae2..7ae8f6c 100644 --- a/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java +++ b/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java @@ -42,6 +42,8 @@ public class StreamResequencerConfig extends ResequencerConfig { @XmlTransient private ExpressionResultComparator comparator; @XmlAttribute + private String comparatorRef; + @XmlAttribute private Boolean rejectOld; /** @@ -156,6 +158,14 @@ public class StreamResequencerConfig extends ResequencerConfig { this.comparator = comparator; } + public String getComparatorRef() { + return comparatorRef; + } + + public void setComparatorRef(String comparatorRef) { + this.comparatorRef = comparatorRef; + } + public void setRejectOld(boolean value) { this.rejectOld = value; }