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 2011/02/22 19:18:43 UTC
svn commit: r1073445 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/model/
camel-core/src/main/java/org/apache/camel/model/config/
camel-core/src/test/java/org/apache/camel/processor/
camel-core/src/test/resources/org/apache/camel/model/ ...
Author: davsclaus
Date: Tue Feb 22 18:18:43 2011
New Revision: 1073445
URL: http://svn.apache.org/viewvc?rev=1073445&view=rev
Log:
CAMEL-3703: Resequencer in XML now configures the config in the top of the XML and not in the bottom.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerBatch.xml
camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerStream.xml
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringResequencerTest-context.xml
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringSimpleTXResequencerTest.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerAllowDuplicatesTest.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerJMSPriorityTest.xml
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/streamResequencer.xml
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java Tue Feb 22 18:18:43 2011
@@ -39,9 +39,9 @@ import org.apache.camel.spi.RouteContext
@XmlAccessorType(XmlAccessType.FIELD)
public class ExpressionNode extends ProcessorDefinition<ExpressionNode> {
@XmlElementRef
- private ExpressionDefinition expression;
+ protected ExpressionDefinition expression;
@XmlElementRef
- private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
+ protected List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
public ExpressionNode() {
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Tue Feb 22 18:18:43 2011
@@ -444,7 +444,7 @@ public abstract class ProcessorDefinitio
if (Constants.PLACEHOLDER_QNAME.equals(qname.getNamespaceURI())) {
String local = qname.getLocalPart();
Object value = definition.getOtherAttributes().get(key);
- if (value != null && value instanceof String ) {
+ if (value != null && value instanceof String) {
// value must be enclosed with placeholder tokens
String s = (String) value;
if (!s.startsWith(PropertiesComponent.PREFIX_TOKEN)) {
@@ -464,7 +464,6 @@ public abstract class ProcessorDefinitio
if (log.isTraceEnabled()) {
log.trace("There are " + properties.size() + " properties on: " + definition);
}
-
// lookup and resolve properties for String based properties
for (Map.Entry entry : properties.entrySet()) {
// the name is always a String
@@ -1681,8 +1680,7 @@ public abstract class ProcessorDefinitio
public ExpressionClause<ResequenceDefinition> resequence() {
ResequenceDefinition answer = new ResequenceDefinition();
addOutput(answer);
- ExpressionClause<ResequenceDefinition> clause = new ExpressionClause<ResequenceDefinition>(answer);
- return ExpressionClause.createAndSetExpression(answer);
+ return answer.createAndSetExpression();
}
/**
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java Tue Feb 22 18:18:43 2011
@@ -16,15 +16,20 @@
*/
package org.apache.camel.model;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.Expression;
import org.apache.camel.Processor;
+import org.apache.camel.builder.ExpressionClause;
import org.apache.camel.model.config.BatchResequencerConfig;
import org.apache.camel.model.config.StreamResequencerConfig;
+import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.processor.Resequencer;
import org.apache.camel.processor.StreamResequencer;
import org.apache.camel.processor.resequencer.ExpressionResultComparator;
@@ -38,11 +43,18 @@ import org.apache.camel.util.ObjectHelpe
*/
@XmlRootElement(name = "resequence")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ResequenceDefinition extends ExpressionNode {
+public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefinition> {
+
+ // TODO: extend OutputDefinition, and use propOrder to control the ordering if possible
+
@XmlElement(name = "batch-config", required = false)
private BatchResequencerConfig batchConfig;
@XmlElement(name = "stream-config", required = false)
private StreamResequencerConfig streamConfig;
+ @XmlElementRef
+ private ExpressionDefinition expression;
+ @XmlElementRef
+ private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
public ResequenceDefinition() {
}
@@ -52,6 +64,11 @@ public class ResequenceDefinition extend
return "resequence";
}
+ @Override
+ public List<ProcessorDefinition> getOutputs() {
+ return outputs;
+ }
+
// Fluent API
// -------------------------------------------------------------------------
/**
@@ -196,6 +213,12 @@ public class ResequenceDefinition extend
return this;
}
+ public ExpressionClause<ResequenceDefinition> createAndSetExpression() {
+ ExpressionClause<ResequenceDefinition> clause = new ExpressionClause<ResequenceDefinition>(this);
+ this.setExpression(clause);
+ return clause;
+ }
+
@Override
public String toString() {
return "Resequencer[" + getExpression() + " -> " + getOutputs() + "]";
@@ -203,7 +226,11 @@ public class ResequenceDefinition extend
@Override
public String getLabel() {
- return "Resequencer[" + super.getLabel() + "]";
+ String s = "";
+ if (getExpression() != null) {
+ s = getExpression().getLabel();
+ }
+ return "Resequencer[" + s + "]";
}
public BatchResequencerConfig getBatchConfig() {
@@ -222,6 +249,14 @@ public class ResequenceDefinition extend
this.streamConfig = streamConfig;
}
+ public ExpressionDefinition getExpression() {
+ return expression;
+ }
+
+ public void setExpression(ExpressionDefinition expression) {
+ this.expression = expression;
+ }
+
@Override
public Processor createProcessor(RouteContext routeContext) throws Exception {
if (streamConfig != null) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java Tue Feb 22 18:18:43 2011
@@ -25,7 +25,7 @@ import javax.xml.bind.annotation.XmlRoot
* Defines the configuration parameters for the batch-processing
* {@link org.apache.camel.processor.Resequencer}. Usage example:
*/
-@XmlRootElement(name = "batch-config")
+@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class BatchResequencerConfig {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java Tue Feb 22 18:18:43 2011
@@ -30,7 +30,7 @@ import org.apache.camel.processor.resequ
*
* @version
*/
-@XmlRootElement(name = "stream-config")
+@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class StreamResequencerConfig {
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java Tue Feb 22 18:18:43 2011
@@ -60,7 +60,7 @@ public class ResequencerTest extends Con
public void configure() {
// START SNIPPET: example
from("direct:start")
- .resequence(body())
+ .resequence().body()
.to("mock:result");
// END SNIPPET: example
}
Modified: camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerBatch.xml
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerBatch.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerBatch.xml (original)
+++ camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerBatch.xml Tue Feb 22 18:18:43 2011
@@ -19,12 +19,12 @@
<route>
<from uri="direct:start" />
<resequence>
+ <!--
+ batch-config can be ommitted for default resequence settings
+ -->
+ <batch-config batchTimeout="2000" batchSize="500"/>
<simple>body</simple>
<to uri="mock:result" />
- <!--
- batch-config can be ommitted for default resequence settings
- -->
- <batch-config batchTimeout="2000" batchSize="500"/>
</resequence>
</route>
</routes>
Modified: camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerStream.xml
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerStream.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerStream.xml (original)
+++ camel/trunk/camel-core/src/test/resources/org/apache/camel/model/resequencerStream.xml Tue Feb 22 18:18:43 2011
@@ -19,9 +19,9 @@
<route>
<from uri="direct:start" />
<resequence>
+ <stream-config timeout="2000"/> <!-- Use default capacity -->
<simple>in.header.seqnum</simple>
<to uri="mock:result" />
- <stream-config timeout="2000"/> <!-- Use default capacity -->
</resequence>
</route>
</routes>
Modified: camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringResequencerTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringResequencerTest-context.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringResequencerTest-context.xml (original)
+++ camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringResequencerTest-context.xml Tue Feb 22 18:18:43 2011
@@ -23,22 +23,22 @@ http://camel.apache.org/schema/spring ht
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" disabled="true" />
+
<route>
<from uri="activemq:queue:in1"/>
<resequence>
+ <batch-config batchSize="100" batchTimeout="10000"/>
<simple>body</simple>
<to uri="mock:result"/>
- <batch-config batchSize="100" batchTimeout="10000"/>
</resequence>
-
</route>
<route>
<from uri="activemq:queue:in2"/>
<resequence>
- <simple>header.num</simple>
+ <stream-config timeout="2000"/>
+ <simple>header.num</simple>
<to uri="mock:result"/>
- <stream-config timeout="2000"/>
</resequence>
</route>
Modified: camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringSimpleTXResequencerTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringSimpleTXResequencerTest.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringSimpleTXResequencerTest.xml (original)
+++ camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsSpringSimpleTXResequencerTest.xml Tue Feb 22 18:18:43 2011
@@ -26,9 +26,9 @@ http://camel.apache.org/schema/spring ht
<route>
<from uri="activemq:queue:in"/>
<resequence>
+ <stream-config capacity="100" timeout="5000"/>
<simple>body</simple>
<to uri="activemq:queue:out"/>
- <stream-config capacity="100" timeout="5000"/>
</resequence>
</route>
Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerAllowDuplicatesTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerAllowDuplicatesTest.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerAllowDuplicatesTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerAllowDuplicatesTest.xml Tue Feb 22 18:18:43 2011
@@ -27,9 +27,9 @@
<route>
<from uri="direct:start"/>
<resequence>
+ <batch-config allowDuplicates="true"/>
<header>id</header>
<to uri="mock:result"/>
- <batch-config allowDuplicates="true"/>
</resequence>
</route>
</camelContext>
Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerJMSPriorityTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerJMSPriorityTest.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerJMSPriorityTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/BatchResequencerJMSPriorityTest.xml Tue Feb 22 18:18:43 2011
@@ -26,14 +26,12 @@
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start"/>
+ <!-- sort by JMSPriority by allowing duplicates (message can have same JMSPriority)
+ and use reverse ordering so 9 is first output (most important), and 0 is last -->
<resequence>
+ <batch-config allowDuplicates="true" reverse="true"/>
<header>JMSPriority</header>
<to uri="mock:result"/>
-<!--
- // sort by JMSPriority by allowing duplicates (message can have same JMSPriority)
- // and use reverse ordering so 9 is first output (most important), and 0 is last
--->
- <batch-config allowDuplicates="true" reverse="true"/>
</resequence>
</route>
</camelContext>
Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/streamResequencer.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/streamResequencer.xml?rev=1073445&r1=1073444&r2=1073445&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/streamResequencer.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/streamResequencer.xml Tue Feb 22 18:18:43 2011
@@ -27,9 +27,9 @@
<route>
<from uri="direct:start"/>
<resequence>
+ <stream-config/>
<simple>in.header.seqnum</simple>
<to uri="mock:result" />
- <stream-config />
</resequence>
</route>
</camelContext>