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 2009/07/04 11:34:46 UTC

svn commit: r791088 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/ main/java/org/apache/camel/impl/ main/java/org/apache/camel/model/ main/java/org/apache/camel/processor/ main/java/org/apache/camel/processor/aggregate/ test/java/org/apa...

Author: davsclaus
Date: Sat Jul  4 09:34:44 2009
New Revision: 791088

URL: http://svn.apache.org/viewvc?rev=791088&view=rev
Log:
CAMEL-1078: No there was one more GroupedExchange. And now DefaultExchange is also final.

Removed:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/GroupedExchange.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java Sat Jul  4 09:34:44 2009
@@ -66,6 +66,8 @@
     String FILE_PATH            = "CamelFilePath";
     String FILE_PARENT          = "CamelFileParent";
     String FILTERED             = "CamelFiltered";
+
+    String GROUPED_EXCHANGE = "CamelGroupedExchange";
     
     String HTTP_CHARACTER_ENCODING = "CamelHttpCharacterEncoding";
     String HTTP_METHOD             = "CamelHttpMethod";

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java Sat Jul  4 09:34:44 2009
@@ -38,7 +38,7 @@
  *
  * @version $Revision$
  */
-public class DefaultExchange implements Exchange {
+public final class DefaultExchange implements Exchange {
 
     private static final UuidGenerator DEFAULT_ID_GENERATOR = new UuidGenerator();
     protected final CamelContext context;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java Sat Jul  4 09:34:44 2009
@@ -374,7 +374,8 @@
 
     /**
      * Enables grouped exchanges, so the aggregator will group all aggregated exchanges into a single
-     * combined {@link org.apache.camel.impl.GroupedExchange} class holding all the aggregated exchanges.
+     * combined Exchange holding all the aggregated exchanges in a {@link java.util.List} as a exchange
+     * property with the key {@link org.apache.camel.Exchange#GROUPED_EXCHANGE}.
      *
      * @return the builder
      */

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java Sat Jul  4 09:34:44 2009
@@ -30,7 +30,7 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Navigate;
 import org.apache.camel.Processor;
-import org.apache.camel.impl.GroupedExchange;
+import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.LoggingExceptionHandler;
 import org.apache.camel.impl.ServiceSupport;
 import org.apache.camel.spi.ExceptionHandler;
@@ -338,8 +338,9 @@
             }
         }
 
+        @SuppressWarnings("unchecked")
         private void sendExchanges() throws Exception {
-            GroupedExchange grouped = null;
+            Exchange grouped = null;
 
             Iterator<Exchange> iter = collection.iterator();
             while (iter.hasNext()) {
@@ -351,9 +352,14 @@
                 } else {
                     // grouped so add all exchanges into one group
                     if (grouped == null) {
-                        grouped = new GroupedExchange(exchange.getContext());
+                        grouped = new DefaultExchange(exchange);
                     }
-                    grouped.addExchange(exchange);
+                    List<Exchange> list = grouped.getProperty(Exchange.GROUPED_EXCHANGE, List.class);
+                    if (list == null) {
+                        list = new ArrayList<Exchange>();
+                        grouped.setProperty(Exchange.GROUPED_EXCHANGE, list);
+                    }
+                    list.add(exchange);
                 }
             }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/GroupedExchangeAggregationStrategy.java Sat Jul  4 09:34:44 2009
@@ -16,28 +16,37 @@
  */
 package org.apache.camel.processor.aggregate;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.camel.Exchange;
-import org.apache.camel.impl.GroupedExchange;
+import org.apache.camel.impl.DefaultExchange;
 
 /**
- * Aggregate all exchanges into a single combined {@link org.apache.camel.impl.GroupedExchange} holding all
- * the exchanges gathered.
+ * Aggregate all exchanges into a single combined Exchange holding all the aggregated exchanges
+ * in a {@link java.util.List} as a exchange property with the key
+ * {@link org.apache.camel.Exchange#GROUPED_EXCHANGE}.
  *
  * @version $Revision$
  */
 public class GroupedExchangeAggregationStrategy implements AggregationStrategy {
 
+    @SuppressWarnings("unchecked")
     public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
-        GroupedExchange answer;
-        if (!(oldExchange instanceof GroupedExchange)) {
-            answer = new GroupedExchange(oldExchange);
-            answer.addExchange(oldExchange);
+        List<Exchange> list;
+        Exchange answer = oldExchange;
+
+        if (oldExchange == null) {
+            answer = new DefaultExchange(newExchange);
+            list = new ArrayList<Exchange>();
+            answer.setProperty(Exchange.GROUPED_EXCHANGE, list);
         } else {
-            answer = (GroupedExchange) oldExchange;
+            list = oldExchange.getProperty(Exchange.GROUPED_EXCHANGE, List.class);
         }
 
-        answer.addExchange(newExchange);
+        list.add(newExchange);
         return answer;
     }
 
 }
+

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java?rev=791088&r1=791087&r2=791088&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java Sat Jul  4 09:34:44 2009
@@ -16,11 +16,12 @@
  */
 package org.apache.camel.processor.aggregator;
 
+import java.util.List;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.GroupedExchange;
 
 /**
  * Unit test for aggregate grouped exchanges.
@@ -44,8 +45,8 @@
         assertMockEndpointsSatisfied();
 
         Exchange out = result.getExchanges().get(0);
-        assertTrue(out instanceof GroupedExchange);
-        GroupedExchange grouped = (GroupedExchange)out;
+        List<Exchange> grouped = out.getProperty(Exchange.GROUPED_EXCHANGE, List.class);
+
         assertEquals(5, grouped.size());
 
         assertEquals("100", grouped.get(0).getIn().getBody(String.class));