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));


Reply via email to