You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/08/07 18:20:55 UTC

svn commit: r429381 - /incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java

Author: gnodet
Date: Mon Aug  7 09:20:54 2006
New Revision: 429381

URL: http://svn.apache.org/viewvc?rev=429381&view=rev
Log:
Refactor the ContentBasedRouter.java with an abstract class, so that it is easier to extend.

Modified:
    incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java

Modified: incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java?rev=429381&r1=429380&r2=429381&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java (original)
+++ incubator/servicemix/trunk/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/ContentBasedRouter.java Mon Aug  7 09:20:54 2006
@@ -17,15 +17,11 @@
 package org.apache.servicemix.eip.patterns;
 
 import javax.jbi.management.DeploymentException;
-import javax.jbi.messaging.ExchangeStatus;
-import javax.jbi.messaging.Fault;
 import javax.jbi.messaging.MessageExchange;
 import javax.jbi.messaging.MessagingException;
-import javax.jbi.messaging.NormalizedMessage;
 
 import org.apache.servicemix.eip.support.AbstractContentBasedRouter;
 import org.apache.servicemix.eip.support.ExchangeTarget;
-import org.apache.servicemix.eip.support.MessageUtil;
 import org.apache.servicemix.eip.support.RoutingRule;
 
 /**
@@ -68,43 +64,6 @@
         // Check rules
         if (rules == null || rules.length == 0) {
             throw new IllegalArgumentException("rules should contain at least one RoutingRule");
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.servicemix.eip.EIPEndpoint#processSync(javax.jbi.messaging.MessageExchange)
-     */
-    protected void processSync(MessageExchange exchange) throws Exception {
-        // Create exchange for target
-        MessageExchange tme = exchangeFactory.createExchange(exchange.getPattern());
-        // Now copy input to new exchange
-        // We need to read the message once for finding routing target
-        // so ensure we have a re-readable source
-        NormalizedMessage in = MessageUtil.copyIn(exchange);
-        MessageUtil.transferToIn(in, tme); 
-        // Retrieve target
-        ExchangeTarget target = getDestination(tme);
-        target.configureTarget(tme, getContext());
-        // Send in to target
-        sendSync(tme);
-        // Send back the result
-        if (tme.getStatus() == ExchangeStatus.DONE) {
-            done(exchange);
-        } else if (tme.getStatus() == ExchangeStatus.ERROR) {
-            fail(exchange, tme.getError());
-        } else if (tme.getFault() != null) {
-            Fault fault = MessageUtil.copyFault(tme);
-            done(tme);
-            MessageUtil.transferToFault(fault, exchange);
-            sendSync(exchange);
-        } else if (tme.getMessage("out") != null) {
-            NormalizedMessage out = MessageUtil.copyOut(tme);
-            done(tme);
-            MessageUtil.transferToOut(out, exchange);
-            sendSync(exchange);
-        } else {
-            done(tme);
-            throw new IllegalStateException("Exchange status is " + ExchangeStatus.ACTIVE + " but has no Out nor Fault message");
         }
     }