[jboss-svn-commits] JBL Code SVN: r23420 - in labs/jbossesb/workspace/skeagh/runtime/src: main/java/org/jboss/esb/dispatch and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 10 06:35:10 EDT 2008


Author: tfennelly
Date: 2008-10-10 06:35:09 -0400 (Fri, 10 Oct 2008)
New Revision: 23420

Added:
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/FilterConfig.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/filter-smooks.xml
   labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/sub/
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/InboundFilterConfigTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/OutboundFilterConfigTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_01.xml
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_02.xml
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/01-deployment.xml
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/RoutingTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/01-deployment.xml
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/RoutingTest.java
Removed:
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java
Modified:
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/InboundRouterFilterConfig.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/OutboundRouterConfig.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/LocalDispatcher.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/jbossesb-5.0.xsd
   labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/inrouters-smooks.xml
   labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/outrouters-smooks.xml
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_019/RoutingTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_020/RoutingTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/RoutingTest.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/resources/log4j.xml
Log:
outbound filters... tests

Added: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/FilterConfig.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/FilterConfig.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/FilterConfig.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.esb.deploy.config;
+
+import org.jboss.esb.routing.FilterEvaluator;
+import org.jboss.esb.message.MessageProcessor;
+
+import java.util.List;
+
+/**
+ * Filter configuration.
+ * <p/>
+ * Used on both inbound and outbound routers.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class FilterConfig
+{
+    /**
+     * Filter evaluator.
+     */
+    private FilterEvaluator evaluator;
+    /**
+     * Processors to be applied to message before routing via this filter.
+     */
+    private List<MessageProcessor> processors;
+
+    /**
+     * Get the filter evaluator.
+     *
+     * @return The filter evaluator.
+     */
+    public final FilterEvaluator getEvaluator()
+    {
+        return evaluator;
+    }
+
+    /**
+     * Set the filter evaluator.
+     *
+     * @param evaluator The filter evaluator.
+     */
+    public final void setEvaluator(final FilterEvaluator evaluator)
+    {
+        this.evaluator = evaluator;
+    }
+
+    /**
+     * Get the pre-routing processor list.
+     *
+     * @return The pre-routing processor list.
+     */
+    public final List<MessageProcessor> getProcessors()
+    {
+        return processors;
+    }
+
+    /**
+     * Set the pre-routing processor list.
+     *
+     * @param processors The pre-routing processor list.
+     */
+    public final void setProcessors(final List<MessageProcessor> processors)
+    {
+        this.processors = processors;
+    }
+}


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/FilterConfig.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/InboundRouterFilterConfig.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/InboundRouterFilterConfig.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/InboundRouterFilterConfig.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -19,12 +19,8 @@
  */
 package org.jboss.esb.deploy.config;
 
-import org.jboss.esb.message.MessageProcessor;
-import org.jboss.esb.routing.FilterEvaluator;
 import org.jboss.esb.service.ServiceName;
 
-import java.util.List;
-
 /**
  * Inbound router filter configuration.
  *
@@ -37,9 +33,9 @@
      */
     private String inRouterName;
     /**
-     * Filter evaluator.
+     * Basic filter configuration.
      */
-    private FilterEvaluator evaluator;
+    private FilterConfig filterConfig;
     /**
      * "replyTo" address for all messages dispatched via this filter.
      */
@@ -52,10 +48,6 @@
      * "faultTo" address for all messages dispatched via this filter.
      */
     private ServiceName faultTo;
-    /**
-     * Processors to be applied to message before routing via this filter.
-     */
-    private List<MessageProcessor> processors;
 
     /**
      * Get the inrouter name.
@@ -78,23 +70,21 @@
     }
 
     /**
-     * Get the filter evaluator.
-     *
-     * @return The filter evaluator.
+     * Get the filter configuration.
+     * @return The filter configuration.
      */
-    public final FilterEvaluator getEvaluator()
+    public final FilterConfig getFilterConfig()
     {
-        return evaluator;
+        return filterConfig;
     }
 
     /**
-     * Set the filter evaluator.
-     *
-     * @param evaluator The filter evaluator.
+     * Set the filter configuration.
+     * @param filterConfig The filter configuration.
      */
-    public final void setEvaluator(final FilterEvaluator evaluator)
+    public final void setFilterConfig(final FilterConfig filterConfig)
     {
-        this.evaluator = evaluator;
+        this.filterConfig = filterConfig;
     }
 
     /**
@@ -156,24 +146,4 @@
     {
         this.faultTo = faultTo;
     }
-
-    /**
-     * Get the pre-routing processor list.
-     *
-     * @return The pre-routing processor list.
-     */
-    public final List<MessageProcessor> getProcessors()
-    {
-        return processors;
-    }
-
-    /**
-     * Set the pre-routing processor list.
-     *
-     * @param processors The pre-routing processor list.
-     */
-    public final void setProcessors(final List<MessageProcessor> processors)
-    {
-        this.processors = processors;
-    }
 }

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/OutboundRouterConfig.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/OutboundRouterConfig.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/OutboundRouterConfig.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -48,6 +48,10 @@
      * Router processors.
      */
     private List<MessageProcessor> processors;
+    /**
+     * Basic filter configuration.
+     */
+    private FilterConfig filterConfig;
 
     /**
      * Get the ServiceName of the Service from which this outrouter is routing from.
@@ -126,4 +130,22 @@
     {
         this.processors = processors;
     }
+
+    /**
+     * Get the filter configuration.
+     * @return The filter configuration.
+     */
+    public final FilterConfig getFilterConfig()
+    {
+        return filterConfig;
+    }
+
+    /**
+     * Set the filter configuration.
+     * @param filterConfig The filter configuration.
+     */
+    public final void setFilterConfig(final FilterConfig filterConfig)
+    {
+        this.filterConfig = filterConfig;
+    }
 }
\ No newline at end of file

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -24,6 +24,7 @@
 import org.jboss.esb.context.DeploymentContext;
 import org.jboss.esb.context.FaultContext;
 import org.jboss.esb.context.InvocationContext;
+import org.jboss.esb.deploy.config.FilterConfig;
 import org.jboss.esb.deploy.config.OutboundRouterConfig;
 import org.jboss.esb.deploy.config.ServiceConfig;
 import org.jboss.esb.failure.DeadLetterPersistanceService;
@@ -34,6 +35,7 @@
 import org.jboss.esb.history.events.ServiceProcessingEvent;
 import org.jboss.esb.message.Message;
 import org.jboss.esb.message.MessageProcessor;
+import org.jboss.esb.routing.FilterEvaluator;
 import org.jboss.esb.routing.MessageDispatcher;
 import org.jboss.esb.routing.OutboundRouter;
 import org.jboss.esb.routing.RoutingException;
@@ -266,7 +268,7 @@
      */
     protected final void applyOutboundRouters(final Message message, final ServiceName serviceName, final List<OutboundRouterConfig> outboundRouters)
     {
-        if (outboundRouters != null && !outboundRouters.isEmpty())
+        if (message != null && outboundRouters != null && !outboundRouters.isEmpty())
         {
             FaultContext faultContext = InvocationContext.getContext().getFaultContext();
 
@@ -326,33 +328,44 @@
                     }
                     else
                     {
-                        // TODO: Optimize... only clone if we need to...
-                        Message outMessage = cloneMessage(message);
+                        FilterConfig filterConfig = outboundRouterConfig.getFilterConfig();
+                        FilterEvaluator filterEvaluator = null;
 
-                        try
+                        if(filterConfig != null)
                         {
-                            applyOutboundProcessors(outMessage, outboundRouterConfig.getProcessors());
+                            filterEvaluator = filterConfig.getEvaluator();
                         }
-                        catch (Throwable t)
+
+                        if(filterEvaluator == null || filterEvaluator.filterMessage(message))
                         {
-                            logger.debug("Exception applying message processors on OutboundRouter for Service '" + addressContext.getTo() + "' via OutboundRouter.  Router Configuration '" + outboundRouterConfig.getName() + "'.  Routing to Dead Letter Service '" + DeadLetterPersistanceService.SERVICE_NAME + "'.", t);
-                            // Route the original message to the DLS...
-                            routeToDeadLetterService(message, t);
-                            continue;
-                        }
-                        try
-                        {
-                            outRouter.route(outMessage);
+                            // TODO: Optimize... only clone if we need to...
+                            Message outMessage = cloneMessage(message);
 
-                            // Log this processing event...
-                            ProcessingEventLog.getEventLog().logEvent(new OutboundRouterProcessingEvent(outboundRouterConfig.getName()));
+                            try
+                            {
+                                applyOutboundProcessors(outMessage, outboundRouterConfig.getProcessors());
+                            }
+                            catch (Throwable t)
+                            {
+                                logger.debug("Exception applying message processors on OutboundRouter for Service '" + addressContext.getTo() + "' via OutboundRouter.  Router Configuration '" + outboundRouterConfig.getName() + "'.  Routing to Dead Letter Service '" + DeadLetterPersistanceService.SERVICE_NAME + "'.", t);
+                                // Route the original message to the DLS...
+                                routeToDeadLetterService(message, t);
+                                continue;
+                            }
+                            try
+                            {
+                                outRouter.route(outMessage);
+
+                                // Log this processing event...
+                                ProcessingEventLog.getEventLog().logEvent(new OutboundRouterProcessingEvent(outboundRouterConfig.getName()));
+                            }
+                            catch (Throwable t)
+                            {
+                                logger.debug("Exception routing message to OutboundRouter for Service '" + addressContext.getTo() + "' via OutboundRouter.  Router Configuration '" + outboundRouterConfig.getName() + "'.  Routing to Dead Letter Service '" + DeadLetterPersistanceService.SERVICE_NAME + "'.", t);
+                                // Route the original message to the DLS...
+                                routeToDeadLetterService(message, t);
+                            }
                         }
-                        catch (Throwable t)
-                        {
-                            logger.debug("Exception routing message to OutboundRouter for Service '" + addressContext.getTo() + "' via OutboundRouter.  Router Configuration '" + outboundRouterConfig.getName() + "'.  Routing to Dead Letter Service '" + DeadLetterPersistanceService.SERVICE_NAME + "'.", t);
-                            // Route the original message to the DLS...
-                            routeToDeadLetterService(message, t);
-                        }
                     }
                 }
             }

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/LocalDispatcher.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/LocalDispatcher.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/LocalDispatcher.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -24,8 +24,10 @@
 import org.jboss.esb.context.DeploymentContext;
 import org.jboss.esb.context.InvocationContext;
 import org.jboss.esb.deploy.config.InboundRouterFilterConfig;
+import org.jboss.esb.deploy.config.FilterConfig;
 import org.jboss.esb.history.ProcessingEventLog;
 import org.jboss.esb.message.Message;
+import org.jboss.esb.message.MessageProcessor;
 import org.jboss.esb.util.AssertArgument;
 import org.jboss.esb.routing.FilterEvaluator;
 
@@ -110,17 +112,25 @@
                 {
                     for (FilteredDispatchChain filteredDispatchChain : filteredDispatchChains)
                     {
-                        InboundRouterFilterConfig filterConfig = filteredDispatchChain.getFilterConfig();
-                        FilterEvaluator filterEvaluator = filterConfig.getEvaluator();
+                        InboundRouterFilterConfig inFilterConfig = filteredDispatchChain.getFilterConfig();
+                        FilterConfig filterConfig = inFilterConfig.getFilterConfig();
+                        FilterEvaluator filterEvaluator = null;
+                        List<MessageProcessor> filterProcessors = null;
 
+                        if(filterConfig != null)
+                        {
+                            filterEvaluator = filterConfig.getEvaluator();
+                            filterProcessors = filterConfig.getProcessors();
+                        }
+
                         if (filterEvaluator == null || filterEvaluator.filterMessage(message))
                         {
                             DispatchChain dispatchChain = filteredDispatchChain.getDispatchChain();
                             AddressingContext addressingContext = new AddressingContext();
 
-                            addressingContext.setTo(filterConfig.getTo());
-                            addressingContext.setReplyTo(filterConfig.getReplyTo());
-                            addressingContext.setFaultTo(filterConfig.getFaultTo());
+                            addressingContext.setTo(inFilterConfig.getTo());
+                            addressingContext.setReplyTo(inFilterConfig.getReplyTo());
+                            addressingContext.setFaultTo(inFilterConfig.getFaultTo());
 
                             AddressingContext.setContext(addressingContext);
                             try
@@ -133,7 +143,7 @@
                                     dispatchMessage = cloneMessage(message);
                                 }
 
-                                outMessage = dispatchToService(dispatchMessage, dispatchChain.getServiceConfig(), filterConfig.getProcessors());
+                                outMessage = dispatchToService(dispatchMessage, dispatchChain.getServiceConfig(), filterProcessors);
                                 applyOutboundRouters(outMessage, dispatchChain.getServiceName(), dispatchChain.getOutboundRouters());
 
                                 // Log the event...

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/jbossesb-5.0.xsd
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/jbossesb-5.0.xsd	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/jbossesb-5.0.xsd	2008-10-10 10:35:09 UTC (rev 23420)
@@ -51,7 +51,7 @@
 
     <xs:complexType name="processors">
         <xs:sequence>
-            <xs:element ref="abstractProcessor" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element ref="abstractProcessor" minOccurs="1" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 

Copied: labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/filter-smooks.xml (from rev 23379, labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/processors-smooks.xml)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/filter-smooks.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/filter-smooks.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+                      default-selector-namespace="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+    <jb:bindings beanId="@beanId@" class="org.jboss.esb.deploy.config.FilterConfig" createOnElement="@selectorContext@">
+        <jb:wiring property="evaluator" beanIdRef="evaluator" />
+        <jb:wiring property="processors" beanIdRef="@beanId at -processors" />
+    </jb:bindings>
+
+    <resource-config selector="@selectorContext@/evaluator, at selectorContext@/**/evaluator">
+        <resource>org.jboss.esb.deploy.config.digest.FilterDecisionTreeBuilder</resource>
+        <param name="beanId">evaluator</param>
+    </resource-config>
+
+    <import file="processors-smooks.xml">
+        <param name="beanId">@beanId at -processors</param>
+        <param name="selectorContext">@selectorContext@/processors</param>
+    </import>
+
+</smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/inrouters-smooks.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/inrouters-smooks.xml	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/inrouters-smooks.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -46,25 +46,15 @@
         <jb:wiring beanIdRef="inRouterFilter" />
     </jb:bindings>
     <jb:bindings beanId="inRouterFilter" class="org.jboss.esb.deploy.config.InboundRouterFilterConfig" createOnElement="inRouters/filters/filter">
-        <jb:value property="inRouterName" data="filter/@inRouter" />
-        <jb:wiring property="evaluator" beanIdRef="filterEvaluator" />
+        <jb:value property="inRouterName" data="inRouters/filters/filter/@inRouter" />
+        <jb:wiring property="filterConfig" beanIdRef="inFilterConfig" />
         <jb:wiring property="to" beanIdRef="toSN" />
         <jb:wiring property="replyTo" beanIdRef="replyToSN" />
         <jb:wiring property="faultTo" beanIdRef="faultToSN" />
-        <jb:wiring property="processors" beanIdRef="filter-processors" />
     </jb:bindings>
-
-    <resource-config selector="evaluator">
-        <resource>org.jboss.esb.deploy.config.digest.FilterDecisionTreeBuilder</resource>
-        <param name="beanId">filterEvaluator</param>
-    </resource-config>
-
-    <!--
-        filter processors
-    -->
-    <import file="processors-smooks.xml">
-        <param name="beanId">filter-processors</param>
-        <param name="selectorContext">filter/processors</param>
+    <import file="filter-smooks.xml">
+        <param name="beanId">inFilterConfig</param>
+        <param name="selectorContext">inRouters/filters/filter</param>
     </import>
 
     <!--

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/outrouters-smooks.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/outrouters-smooks.xml	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/resources/META-INF/jbossesb/xsd/smooks/outrouters-smooks.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -23,6 +23,7 @@
         <jb:wiring property="serviceName" beanIdRef="serviceName" />
         <jb:wiring property="router" beanIdRef="outRouter" />
         <jb:wiring property="processors" beanIdRef="outrouter-processors" />
+        <jb:wiring property="filterConfig" beanIdRef="outFilterConfig" />
         <jb:value property="name" data="outRouter/@name" />
     </jb:bindings>
 
@@ -47,4 +48,12 @@
         <param name="selectorContext">outRouter/processors</param>
     </import>
 
+    <!--
+        Filtering...
+    -->
+    <import file="filter-smooks.xml">
+        <param name="beanId">outFilterConfig</param>
+        <param name="selectorContext">outRouter/filter</param>
+    </import>
+
 </smooks-resource-list>
\ No newline at end of file

Deleted: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -1,186 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2008, JBoss Inc.
- */
-package org.jboss.esb.deploy.config;
-
-import junit.framework.TestCase;
-import org.jboss.esb.deploy.DeploymentException;
-import org.jboss.esb.deploy.config.digest.DefaultConfigurationDigester;
-import org.jboss.esb.message.Message;
-import org.jboss.esb.routing.FilterEvaluator;
-import org.jboss.esb.classpath.DefaultResourceLocator;
-import org.jboss.esb.context.InvocationContext;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class FilterConfigTest extends TestCase
-{
-
-    /**
-     * 1 Filter.
-     */
-    public void test_filter_01() throws DeploymentException, IOException
-    {
-        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_01.xml");
-        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
-        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
-
-        assertEquals(1, filters.size());
-        assertEquals("A:AA", filters.get(0).getTo().toString());
-        assertEquals("B:BB", filters.get(0).getReplyTo().toString());
-        assertEquals("C:CC", filters.get(0).getFaultTo().toString());
-
-        InvocationContext.setContext(new InvocationContext());
-        try
-        {
-            FilterEvaluator evaluator = filters.get(0).getEvaluator();
-            assertTrue(evaluator.filterMessage(new Message("hello")));
-            assertFalse(evaluator.filterMessage(new Message("goodbye")));
-        }
-        finally
-        {
-            InvocationContext.setContext(null);
-        }
-    }
-
-    /**
-     * 2 Filters.
-     */
-    public void test_filter_02() throws DeploymentException, IOException
-    {
-        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_02.xml");
-        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
-        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
-
-        assertEquals(2, filters.size());
-        assertEquals("A:AA", filters.get(0).getTo().toString());
-        assertEquals("B:BB", filters.get(0).getReplyTo().toString());
-        assertEquals("C:CC", filters.get(0).getFaultTo().toString());
-        assertEquals("1:11", filters.get(1).getTo().toString());
-        assertEquals("2:22", filters.get(1).getReplyTo().toString());
-        assertEquals("3:33", filters.get(1).getFaultTo().toString());
-
-        InvocationContext.setContext(new InvocationContext());
-        try
-        {
-            FilterEvaluator evaluator = filters.get(0).getEvaluator();
-            assertTrue(evaluator.filterMessage(new Message("hello")));
-            assertFalse(evaluator.filterMessage(new Message("goodbye")));
-
-            evaluator = filters.get(1).getEvaluator();
-            assertFalse(evaluator.filterMessage(new Message("hello")));
-            assertTrue(evaluator.filterMessage(new Message("goodbye")));
-        }
-        finally
-        {
-            InvocationContext.setContext(null);
-        }
-    }
-
-    /**
-     * Nested Evaluators (AND)
-     */
-    public void test_filter_03() throws DeploymentException, IOException
-    {
-        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_03.xml");
-        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
-        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
-
-        assertEquals(1, filters.size());
-        assertEquals("A:AA", filters.get(0).getTo().toString());
-
-        InvocationContext.setContext(new InvocationContext());
-        try
-        {
-            FilterEvaluator evaluator = filters.get(0).getEvaluator();
-
-            assertTrue(evaluator.filterMessage(new Message("hello world!")));
-            assertFalse(evaluator.filterMessage(new Message("hello")));
-            assertFalse(evaluator.filterMessage(new Message("world")));
-        }
-        finally
-        {
-            InvocationContext.setContext(null);
-        }
-    }
-
-    /**
-     * Nested Evaluators (OR)
-     */
-    public void test_filter_04() throws DeploymentException, IOException
-    {
-        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_04.xml");
-        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
-        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
-
-        assertEquals(1, filters.size());
-        assertEquals("A:AA", filters.get(0).getTo().toString());
-
-        InvocationContext.setContext(new InvocationContext());
-        try
-        {
-            FilterEvaluator evaluator = filters.get(0).getEvaluator();
-
-            assertTrue(evaluator.filterMessage(new Message("hello world!")));
-            assertTrue(evaluator.filterMessage(new Message("hello")));
-            assertTrue(evaluator.filterMessage(new Message("world")));
-        }
-        finally
-        {
-            InvocationContext.setContext(null);
-        }
-    }
-
-    /**
-     * Nested Evaluators (OR)
-     */
-    public void test_filter_05() throws DeploymentException, IOException
-    {
-        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_05.xml");
-        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
-        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
-
-        assertEquals(1, filters.size());
-        assertEquals("A:AA", filters.get(0).getTo().toString());
-
-        InvocationContext.setContext(new InvocationContext());
-        try
-        {
-            FilterEvaluator evaluator = filters.get(0).getEvaluator();
-
-            assertTrue(evaluator.filterMessage(new Message("hello world!")));
-            assertFalse(evaluator.filterMessage(new Message("hello")));
-            assertFalse(evaluator.filterMessage(new Message("world")));
-        }
-        finally
-        {
-            InvocationContext.setContext(null);
-        }
-    }
-
-    private DeploymentUnit digest(String config) throws IOException, DeploymentException
-    {
-        DefaultConfigurationDigester digester = new DefaultConfigurationDigester(new DefaultResourceLocator());
-        return digester.digest(getClass().getResourceAsStream(config));
-    }
-}

Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/InboundFilterConfigTest.java (from rev 23410, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/InboundFilterConfigTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/InboundFilterConfigTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,186 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.esb.deploy.config;
+
+import junit.framework.TestCase;
+import org.jboss.esb.deploy.DeploymentException;
+import org.jboss.esb.deploy.config.digest.DefaultConfigurationDigester;
+import org.jboss.esb.message.Message;
+import org.jboss.esb.routing.FilterEvaluator;
+import org.jboss.esb.classpath.DefaultResourceLocator;
+import org.jboss.esb.context.InvocationContext;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class InboundFilterConfigTest extends TestCase
+{
+
+    /**
+     * 1 Filter.
+     */
+    public void test_filter_01() throws DeploymentException, IOException
+    {                                                                                                                   
+        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_01.xml");
+        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
+        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
+
+        assertEquals(1, filters.size());
+        assertEquals("A:AA", filters.get(0).getTo().toString());
+        assertEquals("B:BB", filters.get(0).getReplyTo().toString());
+        assertEquals("C:CC", filters.get(0).getFaultTo().toString());
+
+        InvocationContext.setContext(new InvocationContext());
+        try
+        {
+            FilterEvaluator evaluator = filters.get(0).getFilterConfig().getEvaluator();
+            assertTrue(evaluator.filterMessage(new Message("hello")));
+            assertFalse(evaluator.filterMessage(new Message("goodbye")));
+        }
+        finally
+        {
+            InvocationContext.setContext(null);
+        }
+    }
+
+    /**
+     * 2 Filters.
+     */
+    public void test_filter_02() throws DeploymentException, IOException
+    {
+        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_02.xml");
+        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
+        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
+
+        assertEquals(2, filters.size());
+        assertEquals("A:AA", filters.get(0).getTo().toString());
+        assertEquals("B:BB", filters.get(0).getReplyTo().toString());
+        assertEquals("C:CC", filters.get(0).getFaultTo().toString());
+        assertEquals("1:11", filters.get(1).getTo().toString());
+        assertEquals("2:22", filters.get(1).getReplyTo().toString());
+        assertEquals("3:33", filters.get(1).getFaultTo().toString());
+
+        InvocationContext.setContext(new InvocationContext());
+        try
+        {
+            FilterEvaluator evaluator = filters.get(0).getFilterConfig().getEvaluator();
+            assertTrue(evaluator.filterMessage(new Message("hello")));
+            assertFalse(evaluator.filterMessage(new Message("goodbye")));
+
+            evaluator = filters.get(1).getFilterConfig().getEvaluator();
+            assertFalse(evaluator.filterMessage(new Message("hello")));
+            assertTrue(evaluator.filterMessage(new Message("goodbye")));
+        }
+        finally
+        {
+            InvocationContext.setContext(null);
+        }
+    }
+
+    /**
+     * Nested Evaluators (AND)
+     */
+    public void test_filter_03() throws DeploymentException, IOException
+    {
+        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_03.xml");
+        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
+        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
+
+        assertEquals(1, filters.size());
+        assertEquals("A:AA", filters.get(0).getTo().toString());
+
+        InvocationContext.setContext(new InvocationContext());
+        try
+        {
+            FilterEvaluator evaluator = filters.get(0).getFilterConfig().getEvaluator();
+
+            assertTrue(evaluator.filterMessage(new Message("hello world!")));
+            assertFalse(evaluator.filterMessage(new Message("hello")));
+            assertFalse(evaluator.filterMessage(new Message("world")));
+        }
+        finally
+        {
+            InvocationContext.setContext(null);
+        }
+    }
+
+    /**
+     * Nested Evaluators (OR)
+     */
+    public void test_filter_04() throws DeploymentException, IOException
+    {
+        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_04.xml");
+        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
+        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
+
+        assertEquals(1, filters.size());
+        assertEquals("A:AA", filters.get(0).getTo().toString());
+
+        InvocationContext.setContext(new InvocationContext());
+        try
+        {
+            FilterEvaluator evaluator = filters.get(0).getFilterConfig().getEvaluator();
+
+            assertTrue(evaluator.filterMessage(new Message("hello world!")));
+            assertTrue(evaluator.filterMessage(new Message("hello")));
+            assertTrue(evaluator.filterMessage(new Message("world")));
+        }
+        finally
+        {
+            InvocationContext.setContext(null);
+        }
+    }
+
+    /**
+     * Nested Evaluators (OR)
+     */
+    public void test_filter_05() throws DeploymentException, IOException
+    {
+        DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_05.xml");
+        InboundRouterConfig inRouter = deploymentUnit.getInboundRouter("inrouter1");
+        List<InboundRouterFilterConfig> filters = inRouter.getFilters();
+
+        assertEquals(1, filters.size());
+        assertEquals("A:AA", filters.get(0).getTo().toString());
+
+        InvocationContext.setContext(new InvocationContext());
+        try
+        {
+            FilterEvaluator evaluator = filters.get(0).getFilterConfig().getEvaluator();
+
+            assertTrue(evaluator.filterMessage(new Message("hello world!")));
+            assertFalse(evaluator.filterMessage(new Message("hello")));
+            assertFalse(evaluator.filterMessage(new Message("world")));
+        }
+        finally
+        {
+            InvocationContext.setContext(null);
+        }
+    }
+
+    private DeploymentUnit digest(String config) throws IOException, DeploymentException
+    {
+        DefaultConfigurationDigester digester = new DefaultConfigurationDigester(new DefaultResourceLocator());
+        return digester.digest(getClass().getResourceAsStream(config));
+    }
+}


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/InboundFilterConfigTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/OutboundFilterConfigTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/OutboundFilterConfigTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/OutboundFilterConfigTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.esb.deploy.config;
+
+import junit.framework.TestCase;
+import org.jboss.esb.TestInboundRouter;
+import org.jboss.esb.TestOutboundRouter;
+import org.jboss.esb.deploy.DeploymentException;
+import org.jboss.esb.deploy.DeploymentRuntime;
+import org.jboss.esb.deploy.DeploymentUtil;
+import org.jboss.esb.service.ServiceName;
+
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class OutboundFilterConfigTest extends TestCase
+{
+
+    public void test_filter_01() throws DeploymentException, IOException
+    {
+        test_filter_01_02("jbossesb-outrouters_filters_01.xml");
+    }
+
+    public void test_filter_02() throws DeploymentException, IOException
+    {
+        test_filter_01_02("jbossesb-outrouters_filters_02.xml");
+    }
+
+    public void test_filter_01_02(String config) throws DeploymentException, IOException
+    {
+        DeploymentRuntime runtime = DeploymentUtil.createRuntime(getClass().getResourceAsStream(config));
+
+        runtime.deploy();
+        try {
+            ServiceName serviceName = new ServiceName("service-cat", "service-a");
+            TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", runtime).getRouter();
+            TestOutboundRouter outrouter1 = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceName, "outrouter1", runtime).getRouter();
+            TestOutboundRouter outrouter2 = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceName, "outrouter2", runtime).getRouter();
+
+            inrouter.sendMessage("hello");
+            outrouter1.waitForMessage(1000);
+            assertEquals("hello", outrouter1.getMessage());
+            assertEquals(null, outrouter2.getMessage());
+
+            inrouter.sendMessage("goodbye");
+            outrouter2.waitForMessage(1000);
+            assertEquals("hello", outrouter1.getMessage());
+            assertEquals("goodbye", outrouter2.getMessage());
+
+        } finally {
+            runtime.undeploy();
+        }
+    }
+}
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/OutboundFilterConfigTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_01.xml (from rev 23410, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-services_01.xml)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_01.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,28 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+    <services>
+
+        <service serviceCategory="service-cat" serviceName="service-a" serviceDescription="A Service" class="org.jboss.esb.TestService">
+
+            <inRouter name="inrouter" class="org.jboss.esb.TestInboundRouter"/>
+
+            <outRouter name="outrouter1" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload.indexOf("hello") != -1</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+            <outRouter name="outrouter2" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload.indexOf("goodbye") != -1</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+
+        </service>
+
+    </services>
+
+</jbossesb>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_01.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_02.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_02.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_02.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,32 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+    <services>
+
+        <service serviceCategory="service-cat" serviceName="service-a" serviceDescription="A Service" class="org.jboss.esb.TestService">
+            <inRouter name="inrouter" class="org.jboss.esb.TestInboundRouter"/>
+        </service>
+
+    </services>
+
+    <routing>
+
+        <outRouters serviceCategory="service-cat" serviceName="service-a">
+            <outRouter name="outrouter1" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload.indexOf("hello") != -1</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+            <outRouter name="outrouter2" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload.indexOf("goodbye") != -1</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+        </outRouters>
+
+    </routing>
+
+</jbossesb>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-outrouters_filters_02.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_019/RoutingTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_019/RoutingTest.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_019/RoutingTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -25,7 +25,6 @@
 import org.jboss.esb.deploy.DeploymentRuntime;
 import org.jboss.esb.deploy.DeploymentUtil;
 import org.jboss.esb.service.ServiceName;
-import org.jboss.esb.test.JmsTestRunner;
 
 /**
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -38,37 +37,31 @@
      */
     public void test() throws Exception
     {
-        new JmsTestRunner() {
-            @Override
-            public void test() throws Exception
-            {
-                ServiceName serviceNameA = new ServiceName("Service", "A");
-                ServiceName serviceNameB = new ServiceName("Service", "B");
-                DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
+        ServiceName serviceNameA = new ServiceName("Service", "A");
+        ServiceName serviceNameB = new ServiceName("Service", "B");
+        DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
 
-                deployment1.setDeploymentName("deployment1");
-                deployment1.setDeploymentId("deployment1-Id");
-                deployment1.deploy();
-                try
-                {
-                    TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", deployment1).getRouter();
-                    TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
-                    TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
+        deployment1.setDeploymentName("deployment1");
+        deployment1.setDeploymentId("deployment1-Id");
+        deployment1.deploy();
+        try
+        {
+            TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", deployment1).getRouter();
+            TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
+            TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
 
-                    inrouter.sendMessage("AAA");
-                    inrouter.sendMessage("BBB");
+            inrouter.sendMessage("AAA");
+            inrouter.sendMessage("BBB");
 
-                    serviceA.waitForMessage(10000);
-                    serviceB.waitForMessage(10000);
+            serviceA.waitForMessage(10000);
+            serviceB.waitForMessage(10000);
 
-                    assertEquals("AAA:added-by-inrouter-transformer", serviceA.getMessage());
-                    assertEquals("BBB:added-by-inrouter-transformer:added-by-serviceB-router", serviceB.getMessage());
-                }
-                finally
-                {
-                    deployment1.undeploy();
-                }
-            }
-        }.run();
+            assertEquals("AAA:added-by-inrouter-transformer", serviceA.getMessage());
+            assertEquals("BBB:added-by-inrouter-transformer:added-by-serviceB-router", serviceB.getMessage());
+        }
+        finally
+        {
+            deployment1.undeploy();
+        }
     }
 }
\ No newline at end of file

Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_020/RoutingTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_020/RoutingTest.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_020/RoutingTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -25,7 +25,6 @@
 import org.jboss.esb.deploy.DeploymentRuntime;
 import org.jboss.esb.deploy.DeploymentUtil;
 import org.jboss.esb.service.ServiceName;
-import org.jboss.esb.test.JmsTestRunner;
 
 /**
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -38,37 +37,31 @@
      */
     public void test() throws Exception
     {
-        new JmsTestRunner() {
-            @Override
-            public void test() throws Exception
-            {
-                ServiceName serviceNameA = new ServiceName("Service", "A");
-                ServiceName serviceNameB = new ServiceName("Service", "B");
-                DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
+        ServiceName serviceNameA = new ServiceName("Service", "A");
+        ServiceName serviceNameB = new ServiceName("Service", "B");
+        DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
 
-                deployment1.setDeploymentName("deployment1");
-                deployment1.setDeploymentId("deployment1-Id");
-                deployment1.deploy();
-                try
-                {
-                    TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", deployment1).getRouter();
-                    TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
-                    TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
+        deployment1.setDeploymentName("deployment1");
+        deployment1.setDeploymentId("deployment1-Id");
+        deployment1.deploy();
+        try
+        {
+            TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", deployment1).getRouter();
+            TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
+            TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
 
-                    inrouter.sendMessage("AAA");
-                    inrouter.sendMessage("BBB");
+            inrouter.sendMessage("AAA");
+            inrouter.sendMessage("BBB");
 
-                    serviceA.waitForMessage(10000);
-                    serviceB.waitForMessage(10000);
+            serviceA.waitForMessage(10000);
+            serviceB.waitForMessage(10000);
 
-                    assertEquals("AAA:added-by-inrouter-transformer:added-by-serviceA-router", serviceA.getMessage());
-                    assertEquals("BBB:added-by-inrouter-transformer", serviceB.getMessage());
-                }
-                finally
-                {
-                    deployment1.undeploy();
-                }
-            }
-        }.run();
+            assertEquals("AAA:added-by-inrouter-transformer:added-by-serviceA-router", serviceA.getMessage());
+            assertEquals("BBB:added-by-inrouter-transformer", serviceB.getMessage());
+        }
+        finally
+        {
+            deployment1.undeploy();
+        }
     }
 }
\ No newline at end of file

Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/RoutingTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/RoutingTest.java	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/RoutingTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -25,7 +25,6 @@
 import org.jboss.esb.deploy.DeploymentRuntime;
 import org.jboss.esb.deploy.DeploymentUtil;
 import org.jboss.esb.service.ServiceName;
-import org.jboss.esb.test.JmsTestRunner;
 
 /**
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -38,48 +37,42 @@
      */
     public void test() throws Exception
     {
-        new JmsTestRunner() {
-            @Override
-            public void test() throws Exception
-            {
-                ServiceName serviceNameA = new ServiceName("Service", "A");
-                ServiceName serviceNameB = new ServiceName("Service", "B");
-                ServiceName serviceNameC = new ServiceName("Service", "C");
-                ServiceName serviceNameD = new ServiceName("Service", "D");
-                DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
+        ServiceName serviceNameA = new ServiceName("Service", "A");
+        ServiceName serviceNameB = new ServiceName("Service", "B");
+        ServiceName serviceNameC = new ServiceName("Service", "C");
+        ServiceName serviceNameD = new ServiceName("Service", "D");
+        DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
 
-                deployment1.setDeploymentName("deployment1");
-                deployment1.setDeploymentId("deployment1-Id");
-                deployment1.deploy();
-                try
-                {
-                    TestInboundRouter inrouter1 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter1", deployment1).getRouter();
-                    TestInboundRouter inrouter2 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter2", deployment1).getRouter();
-                    TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
-                    TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
-                    TestService serviceC = (TestService) DeploymentUtil.getService(serviceNameC, deployment1).getService();
-                    TestService serviceD = (TestService) DeploymentUtil.getService(serviceNameD, deployment1).getService();
+        deployment1.setDeploymentName("deployment1");
+        deployment1.setDeploymentId("deployment1-Id");
+        deployment1.deploy();
+        try
+        {
+            TestInboundRouter inrouter1 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter1", deployment1).getRouter();
+            TestInboundRouter inrouter2 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter2", deployment1).getRouter();
+            TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
+            TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
+            TestService serviceC = (TestService) DeploymentUtil.getService(serviceNameC, deployment1).getService();
+            TestService serviceD = (TestService) DeploymentUtil.getService(serviceNameD, deployment1).getService();
 
-                    inrouter1.sendMessage("AAA");
-                    inrouter1.sendMessage("BBB");
-                    inrouter2.sendMessage("AAA");
-                    inrouter2.sendMessage("BBB");
+            inrouter1.sendMessage("AAA");
+            inrouter1.sendMessage("BBB");
+            inrouter2.sendMessage("AAA");
+            inrouter2.sendMessage("BBB");
 
-                    serviceA.waitForMessage(10000);
-                    serviceB.waitForMessage(10000);
-                    serviceC.waitForMessage(10000);
-                    serviceD.waitForMessage(10000);
+            serviceA.waitForMessage(10000);
+            serviceB.waitForMessage(10000);
+            serviceC.waitForMessage(10000);
+            serviceD.waitForMessage(10000);
 
-                    assertEquals("AAA:added-by-inrouter1-transformer:added-by-serviceA-router", serviceA.getMessage());
-                    assertEquals("BBB:added-by-inrouter1-transformer:added-by-serviceB-router", serviceB.getMessage());
-                    assertEquals("AAA:added-by-inrouter2-transformer:added-by-serviceC-router", serviceC.getMessage());
-                    assertEquals("BBB:added-by-inrouter2-transformer:added-by-serviceD-router", serviceD.getMessage());
-                }
-                finally
-                {
-                    deployment1.undeploy();
-                }
-            }
-        }.run();
+            assertEquals("AAA:added-by-inrouter1-transformer:added-by-serviceA-router", serviceA.getMessage());
+            assertEquals("BBB:added-by-inrouter1-transformer:added-by-serviceB-router", serviceB.getMessage());
+            assertEquals("AAA:added-by-inrouter2-transformer:added-by-serviceC-router", serviceC.getMessage());
+            assertEquals("BBB:added-by-inrouter2-transformer:added-by-serviceD-router", serviceD.getMessage());
+        }
+        finally
+        {
+            deployment1.undeploy();
+        }
     }
 }
\ No newline at end of file

Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/01-deployment.xml (from rev 23410, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/01-deployment.xml)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/01-deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/01-deployment.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,100 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+    
+    <routing>
+        <inRouters>
+            <inRouter name="inrouter1" class="org.jboss.esb.TestInboundRouter">
+                <processors>
+                    <processor class="org.jboss.esb.TestTransformer">
+                        <property name="addToMessage">:added-by-inrouter1-transformer</property>
+                    </processor>
+                </processors>
+            </inRouter>
+            <inRouter name="inrouter2" class="org.jboss.esb.TestInboundRouter">
+                <processors>
+                    <processor class="org.jboss.esb.TestTransformer">
+                        <property name="addToMessage">:added-by-inrouter2-transformer</property>
+                    </processor>
+                </processors>
+            </inRouter>
+
+            <filters>
+                <filter inRouter="inrouter1">
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression"><!-- message.payload == "AAA:added-by-inrouter1-transformer" --></property>
+                    </evaluator>
+                    <to serviceCategory="Service" serviceName="A" />
+                    <processors>
+                        <processor class="org.jboss.esb.TestTransformer">
+                            <property name="addToMessage">:added-by-serviceA-router</property>
+                        </processor>
+                    </processors>
+                </filter>
+
+                <filter inRouter="inrouter1">
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression"><!-- message.payload == "BBB:added-by-inrouter1-transformer" --></property>
+                    </evaluator>
+                    <to serviceCategory="Service" serviceName="B" />
+                    <processors>
+                        <processor class="org.jboss.esb.TestTransformer">
+                            <property name="addToMessage">:added-by-serviceB-router</property>
+                        </processor>
+                    </processors>
+                </filter>
+
+                <filter inRouter="inrouter2">
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression"><!-- message.payload == "AAA:added-by-inrouter2-transformer" --></property>
+                    </evaluator>
+                    <to serviceCategory="Service" serviceName="C" />
+                    <processors>
+                        <processor class="org.jboss.esb.TestTransformer">
+                            <property name="addToMessage">:added-by-serviceC-router</property>
+                        </processor>
+                    </processors>
+                </filter>
+
+                <filter inRouter="inrouter2">
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression"><!-- message.payload == "BBB:added-by-inrouter2-transformer" --></property>
+                    </evaluator>
+                    <to serviceCategory="Service" serviceName="D" />
+                    <processors>
+                        <processor class="org.jboss.esb.TestTransformer">
+                            <property name="addToMessage">:added-by-serviceD-router</property>
+                        </processor>
+                    </processors>
+                </filter>
+            </filters>
+
+        </inRouters>
+    </routing>
+
+    <services>
+
+        <service serviceCategory="Service" serviceName="A" serviceDescription="A Service" class="org.jboss.esb.TestService">
+            <outRouter name="serviceAOutrouter" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                                            <!-- Should route successfully i.e. should be filtered through -->
+                        <property name="expression"><!-- message.payload == "AAA:added-by-inrouter1-transformer:added-by-serviceA-router" --></property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+        </service>
+        <service serviceCategory="Service" serviceName="B" serviceDescription="B Service" class="org.jboss.esb.TestService">
+            <outRouter name="serviceBOutrouter" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                                            <!-- Should fail to route i.e. should be filtered out -->
+                        <property name="expression"><!-- message.payload == "XXXXX" --></property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+        </service>
+        <service serviceCategory="Service" serviceName="C" serviceDescription="C Service" class="org.jboss.esb.TestService" />
+        <service serviceCategory="Service" serviceName="D" serviceDescription="D Service" class="org.jboss.esb.TestService" />
+
+    </services>
+
+</jbossesb>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/01-deployment.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + native

Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/RoutingTest.java (from rev 23410, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_021/RoutingTest.java)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/RoutingTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/RoutingTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.esb.routing.scenario_022;
+
+import junit.framework.TestCase;
+import org.jboss.esb.TestInboundRouter;
+import org.jboss.esb.TestService;
+import org.jboss.esb.TestOutboundRouter;
+import org.jboss.esb.deploy.DeploymentRuntime;
+import org.jboss.esb.deploy.DeploymentUtil;
+import org.jboss.esb.service.ServiceName;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RoutingTest extends TestCase
+{
+
+    /**
+     * Messages should be filtered, with transformers at different stages.
+     */
+    public void test() throws Exception
+    {
+        ServiceName serviceNameA = new ServiceName("Service", "A");
+        ServiceName serviceNameB = new ServiceName("Service", "B");
+        ServiceName serviceNameC = new ServiceName("Service", "C");
+        ServiceName serviceNameD = new ServiceName("Service", "D");
+        DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
+
+        deployment1.setDeploymentName("deployment1");
+        deployment1.setDeploymentId("deployment1-Id");
+        deployment1.deploy();
+        try
+        {
+            TestInboundRouter inrouter1 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter1", deployment1).getRouter();
+            TestInboundRouter inrouter2 = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter2", deployment1).getRouter();
+            TestService serviceA = (TestService) DeploymentUtil.getService(serviceNameA, deployment1).getService();
+            TestService serviceB = (TestService) DeploymentUtil.getService(serviceNameB, deployment1).getService();
+            TestService serviceC = (TestService) DeploymentUtil.getService(serviceNameC, deployment1).getService();
+            TestService serviceD = (TestService) DeploymentUtil.getService(serviceNameD, deployment1).getService();
+            TestOutboundRouter serviceAOutRouter = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceNameA, "serviceAOutrouter", deployment1).getRouter();
+            TestOutboundRouter serviceBOutRouter = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceNameB, "serviceBOutrouter", deployment1).getRouter();
+
+            inrouter1.sendMessage("AAA");
+            inrouter1.sendMessage("BBB");
+            inrouter2.sendMessage("AAA");
+            inrouter2.sendMessage("BBB");
+
+            serviceA.waitForMessage(10000);
+            serviceB.waitForMessage(10000);
+            serviceC.waitForMessage(10000);
+            serviceD.waitForMessage(10000);
+            serviceAOutRouter.waitForMessage(10000);
+
+            Thread.sleep(500);
+
+            assertEquals("AAA:added-by-inrouter1-transformer:added-by-serviceA-router", serviceA.getMessage());
+            assertEquals("AAA:added-by-inrouter1-transformer:added-by-serviceA-router", serviceAOutRouter.getMessage());
+            assertEquals("BBB:added-by-inrouter1-transformer:added-by-serviceB-router", serviceB.getMessage());
+            assertEquals(null, serviceBOutRouter.getMessage()); // Should have been filtered out and not routed to outrouter
+            assertEquals("AAA:added-by-inrouter2-transformer:added-by-serviceC-router", serviceC.getMessage());
+            assertEquals("BBB:added-by-inrouter2-transformer:added-by-serviceD-router", serviceD.getMessage());
+        }
+        finally
+        {
+            deployment1.undeploy();
+        }
+    }
+}
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_022/RoutingTest.java
___________________________________________________________________
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/01-deployment.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/01-deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/01-deployment.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,51 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+    <!--
+        Filtering directly from an inrouter to multiple outrouters
+        with filters on the outrouters...
+    -->
+
+    <routing>
+
+        <inRouters>
+            <inRouter name="inrouter" class="org.jboss.esb.TestInboundRouter" />
+
+            <filters>
+                <filter inRouter="inrouter">
+                    <to serviceCategory="Service" serviceName="A" />
+                </filter>
+            </filters>
+
+        </inRouters>
+
+        <outRouters serviceCategory="Service" serviceName="A">
+
+            <outRouter name="outrouter1" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload == "message1"</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+
+            <outRouter name="outrouter2" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload == "message2"</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+
+            <outRouter name="outrouter3" class="org.jboss.esb.TestOutboundRouter">
+                <filter>
+                    <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+                        <property name="expression">message.payload == "message3"</property>
+                    </evaluator>
+                </filter>
+            </outRouter>
+
+        </outRouters>
+
+    </routing>
+
+</jbossesb>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/01-deployment.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/RoutingTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/RoutingTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/RoutingTest.java	2008-10-10 10:35:09 UTC (rev 23420)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.esb.routing.scenario_023;
+
+import junit.framework.TestCase;
+import org.jboss.esb.TestInboundRouter;
+import org.jboss.esb.TestOutboundRouter;
+import org.jboss.esb.deploy.DeploymentRuntime;
+import org.jboss.esb.deploy.DeploymentUtil;
+import org.jboss.esb.service.ServiceName;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RoutingTest extends TestCase
+{
+
+    /**
+     * Filtering directly from an inrouter to multiple outrouters
+     * with filters on the outrouters...
+     */
+    public void test() throws Exception
+    {
+        ServiceName serviceNameA = new ServiceName("Service", "A");
+        DeploymentRuntime deployment1 = DeploymentUtil.createRuntime(getClass().getResourceAsStream("01-deployment.xml"));
+
+        deployment1.setDeploymentName("deployment1");
+        deployment1.setDeploymentId("deployment1-Id");
+        deployment1.deploy();
+        try
+        {
+            TestInboundRouter inrouter = (TestInboundRouter) DeploymentUtil.getInboundRouter("inrouter", deployment1).getRouter();
+            TestOutboundRouter outrouter1 = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceNameA, "outrouter1", deployment1).getRouter();
+            TestOutboundRouter outrouter2 = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceNameA, "outrouter2", deployment1).getRouter();
+            TestOutboundRouter outrouter3 = (TestOutboundRouter) DeploymentUtil.getOutboundRouter(serviceNameA, "outrouter3", deployment1).getRouter();
+
+            inrouter.sendMessage("message1");
+            inrouter.sendMessage("message2");
+            inrouter.sendMessage("message3");
+
+            outrouter1.waitForMessage(10000);
+            outrouter2.waitForMessage(10000);
+            outrouter3.waitForMessage(10000);
+
+            assertEquals("message1", outrouter1.getMessage());
+            assertEquals("message2", outrouter2.getMessage());
+            assertEquals("message3", outrouter3.getMessage());
+        }
+        finally
+        {
+            deployment1.undeploy();
+        }
+    }
+}
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_023/RoutingTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/resources/log4j.xml	2008-10-10 09:44:48 UTC (rev 23419)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/resources/log4j.xml	2008-10-10 10:35:09 UTC (rev 23420)
@@ -31,7 +31,7 @@
    <!-- Limit categories -->
 
    <category name="org.milyn">
-      <priority value="error"/>
+      <priority value="info"/>
    </category>
    
    <category name="org.quartz">




More information about the jboss-svn-commits mailing list