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>


Reply via email to