[jboss-svn-commits] JBL Code SVN: r23353 - in labs/jbossesb/workspace/skeagh/runtime/src: main/java/org/jboss/esb/filter and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 7 13:01:06 EDT 2008
Author: tfennelly
Date: 2008-10-07 13:01:06 -0400 (Tue, 07 Oct 2008)
New Revision: 23353
Added:
labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/filter/MVELEvaluator.java
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_02.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_03.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_04.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_05.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/01-deployment.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/RoutingTest.java
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v1.xml
labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v2.xml
Modified:
labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/digest/FilterDecisionTreeBuilder.java
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/jbossesb-inrouters_filters_01.xml
Log:
filtering tests
Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/digest/FilterDecisionTreeBuilder.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/digest/FilterDecisionTreeBuilder.java 2008-10-07 16:01:55 UTC (rev 23352)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/digest/FilterDecisionTreeBuilder.java 2008-10-07 17:01:06 UTC (rev 23353)
@@ -19,10 +19,10 @@
*/
package org.jboss.esb.deploy.config.digest;
+import org.jboss.esb.deploy.DeploymentException;
+import org.jboss.esb.deploy.config.ConfigUtil;
import org.jboss.esb.filter.FilterDecisionNode;
import org.jboss.esb.routing.FilterEvaluator;
-import org.jboss.esb.deploy.config.ConfigUtil;
-import org.jboss.esb.deploy.DeploymentException;
import org.milyn.SmooksException;
import org.milyn.cdr.annotation.ConfigParam;
import org.milyn.container.ExecutionContext;
@@ -31,8 +31,8 @@
import org.milyn.javabean.repository.BeanRepositoryManager;
import org.milyn.xml.DomUtils;
import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
+import java.util.List;
import java.util.Properties;
import java.util.Stack;
@@ -139,11 +139,11 @@
private Properties getProperties(final Element element)
{
Properties properties = new Properties();
- NodeList propertyList = element.getElementsByTagName("property");
+ List<Element> propertyList = DomUtils.getElements(element, "property", null);
- for (int i = 0; i < propertyList.getLength(); i++)
+ for (int i = 0; i < propertyList.size(); i++)
{
- Element propertyElement = (Element) propertyList.item(i);
+ Element propertyElement = propertyList.get(i);
String propertyName = DomUtils.getAttributeValue(propertyElement, "name");
String propertyValue = DomUtils.getAllText(propertyElement, true);
Added: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/filter/MVELEvaluator.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/filter/MVELEvaluator.java (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/filter/MVELEvaluator.java 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,111 @@
+/*
+ * 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.filter;
+
+import org.apache.log4j.Logger;
+import org.jboss.esb.annotations.Property;
+import org.jboss.esb.context.AddressingContext;
+import org.jboss.esb.context.DeploymentContext;
+import org.jboss.esb.context.InvocationContext;
+import org.jboss.esb.context.FaultContext;
+import org.jboss.esb.message.Message;
+import org.jboss.esb.routing.FilterEvaluator;
+import org.milyn.expression.MVELExpressionEvaluator;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * MVEL {@link org.jboss.esb.routing.FilterEvaluator}.
+ * <p/>
+ * Available expression context objects:
+ * <ul>
+ * <li><b>message</b>: The {@link Message}.</li>
+ * <li><b>invCtx</b>: The {@link InvocationContext}.</li>
+ * <li><b>invParams</b>: The Invocation Parameter {@link Map}.</li>
+ * <li><b>addrCtx</b>: The {@link AddressingContext}.</li>
+ * <li><b>deplCtx</b>: The {@link DeploymentContext}.</li>
+ * <li><b>faultCtx</b>: The {@link FaultContext}.</li>
+ * </ul>
+ *
+ * <h3>Example</h3>
+ * <pre>
+ * <filter inRouter="MyServiceInRouter">
+ * <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ * <property name="expression">
+ * (message.payload.indexof("<version>1.0</version>") != -1)
+ * </property>
+ * </evaluator>
+ * <to serviceCategory="Outrouters" serviceName="MyServicev1.0" />
+ * </filter>
+ * <filter inRouter="MyServiceInRouter">
+ * <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ * <property name="expression">
+ * (message.payload.indexof("<version>1.1</version>") != -1)
+ * </property>
+ * </evaluator>
+ * <to serviceCategory="Outrouters" serviceName="MyServicev1.1" />
+ * </filter>
+ * </pre>
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MVELEvaluator implements FilterEvaluator
+{
+ /**
+ * Logger.
+ */
+ private static Logger logger = Logger.getLogger(MVELEvaluator.class);
+
+ /**
+ * MVEL expression evaluator.
+ */
+ @Property
+ private MVELExpressionEvaluator expression;
+
+ /**
+ * Filter the message.
+ *
+ * @param message The message to be evaluated.
+ * @return True if the message is to be filtered through. False if the message is to be filtered out.
+ */
+ public final boolean filterMessage(final Message message)
+ {
+ Map contextObject = new HashMap();
+
+ contextObject.put("message", message);
+ contextObject.put("invCtx", InvocationContext.getContext().getAll());
+ contextObject.put("invParams", InvocationContext.getContext().getInvocationParameters());
+ contextObject.put("addrCtx", AddressingContext.getContext());
+ contextObject.put("deplCtx", DeploymentContext.getContext());
+ contextObject.put("faultCtx", InvocationContext.getContext().getFaultContext());
+
+ try
+ {
+ return expression.eval(contextObject);
+ }
+ catch (Exception e)
+ {
+ logger.error("Error while evaluating MVEL filter expression.", e);
+ }
+
+ return false;
+ }
+}
Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/filter/MVELEvaluator.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: 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-07 16:01:55 UTC (rev 23352)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/FilterConfigTest.java 2008-10-07 17:01:06 UTC (rev 23353)
@@ -22,8 +22,12 @@
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.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>
@@ -31,13 +35,148 @@
public class FilterConfigTest extends TestCase
{
- public void test() throws DeploymentException, IOException
+ /**
+ * 1 Filter.
+ */
+ public void test_filter_01() throws DeploymentException, IOException
{
DeploymentUnit deploymentUnit = digest("jbossesb-inrouters_filters_01.xml");
- System.out.println("hi");
-
+ 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();
Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_01.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_01.xml 2008-10-07 16:01:55 UTC (rev 23352)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_01.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -6,6 +6,9 @@
<inRouter name="inrouter1" class="org.jboss.esb.deploy.config.MyInRouter" />
<filters>
<filter inRouter="inrouter1">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload == "hello"</property>
+ </evaluator>
<to serviceCategory="A" serviceName="AA" />
<replyTo serviceCategory="B" serviceName="BB" />
<faultTo serviceCategory="C" serviceName="CC" />
Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_02.xml (from rev 23350, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_01.xml)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_02.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_02.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,33 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+ <routing>
+
+ <inRouters>
+ <inRouter name="inrouter1" class="org.jboss.esb.deploy.config.MyInRouter" />
+ <filters>
+ <filter inRouter="inrouter1">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload == "hello"</property>
+ </evaluator>
+ <to serviceCategory="A" serviceName="AA" />
+ <replyTo serviceCategory="B" serviceName="BB" />
+ <faultTo serviceCategory="C" serviceName="CC" />
+ </filter>
+ <filter inRouter="inrouter1">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload == "goodbye"</property>
+ </evaluator>
+ <to serviceCategory="1" serviceName="11" />
+ <replyTo serviceCategory="2" serviceName="22" />
+ <faultTo serviceCategory="3" serviceName="33" />
+ </filter>
+ </filters>
+ </inRouters>
+
+ </routing>
+
+ <services>
+ <service serviceCategory="A" serviceName="A" serviceDescription="A" class="org.jboss.esb.TestService" />
+ </services>
+
+</jbossesb>
\ No newline at end of file
Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_03.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_03.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_03.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,26 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+ <routing>
+
+ <inRouters>
+ <inRouter name="inrouter1" class="org.jboss.esb.deploy.config.MyInRouter" />
+ <filters>
+ <filter inRouter="inrouter1">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("hello") != -1</property>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("world") != -1</property>
+ </evaluator>
+ </evaluator>
+ <to serviceCategory="A" serviceName="AA" />
+ </filter>
+ </filters>
+ </inRouters>
+
+ </routing>
+
+ <services>
+ <service serviceCategory="A" serviceName="A" serviceDescription="A" 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/deploy/config/jbossesb-inrouters_filters_03.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_04.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_04.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_04.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,31 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+ <routing>
+
+ <inRouters>
+ <inRouter name="inrouter1" class="org.jboss.esb.deploy.config.MyInRouter" />
+ <filters>
+ <filter inRouter="inrouter1">
+ <evaluator>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("hello") != -1</property>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("world") != -1</property>
+ </evaluator>
+ </evaluator>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">true</property>
+ </evaluator>
+ </evaluator>
+ <to serviceCategory="A" serviceName="AA" />
+ </filter>
+ </filters>
+ </inRouters>
+
+ </routing>
+
+ <services>
+ <service serviceCategory="A" serviceName="A" serviceDescription="A" 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/deploy/config/jbossesb-inrouters_filters_04.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_05.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_05.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/deploy/config/jbossesb-inrouters_filters_05.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,31 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+ <routing>
+
+ <inRouters>
+ <inRouter name="inrouter1" class="org.jboss.esb.deploy.config.MyInRouter" />
+ <filters>
+ <filter inRouter="inrouter1">
+ <evaluator>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("hello") != -1</property>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">message.payload.indexOf("world") != -1</property>
+ </evaluator>
+ </evaluator>
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression">false</property>
+ </evaluator>
+ </evaluator>
+ <to serviceCategory="A" serviceName="AA" />
+ </filter>
+ </filters>
+ </inRouters>
+
+ </routing>
+
+ <services>
+ <service serviceCategory="A" serviceName="A" serviceDescription="A" 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/deploy/config/jbossesb-inrouters_filters_05.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/01-deployment.xml (from rev 23350, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_014/01-deployment.xml)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/01-deployment.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/01-deployment.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,35 @@
+<jbossesb xmlns="http://www.jboss.org/jbossesb/xsd/jbossesb-5.0.xsd">
+
+ <routing>
+ <inRouters>
+ <inRouter name="inrouter" class="org.jboss.esb.TestInboundRouter" />
+
+ <filters>
+ <!-- Route v1 message to Service:A -->
+ <filter inRouter="inrouter">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression"><!-- message.payload.indexOf("<version>1</version>") != -1 --></property>
+ </evaluator>
+ <to serviceCategory="Service" serviceName="A" />
+ </filter>
+
+ <!-- Route v2 message to Service:B -->
+ <filter inRouter="inrouter">
+ <evaluator class="org.jboss.esb.filter.MVELEvaluator">
+ <property name="expression"><!-- message.payload.indexOf("<version>2</version>") != -1 --></property>
+ </evaluator>
+ <to serviceCategory="Service" serviceName="B" />
+ </filter>
+ </filters>
+
+ </inRouters>
+ </routing>
+
+ <services>
+
+ <service serviceCategory="Service" serviceName="A" serviceDescription="A Service" class="org.jboss.esb.TestService" />
+ <service serviceCategory="Service" serviceName="B" serviceDescription="B Service" class="org.jboss.esb.TestService" />
+
+ </services>
+
+</jbossesb>
\ No newline at end of file
Copied: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/RoutingTest.java (from rev 23350, labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_014/RoutingTest.java)
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/RoutingTest.java (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/RoutingTest.java 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,81 @@
+/*
+ * 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_015;
+
+import junit.framework.TestCase;
+import org.jboss.esb.TestInboundRouter;
+import org.jboss.esb.TestService;
+import org.jboss.esb.deploy.DeploymentRuntime;
+import org.jboss.esb.deploy.DeploymentUtil;
+import org.jboss.esb.service.ServiceName;
+import org.jboss.esb.test.JmsTestRunner;
+import org.milyn.io.StreamUtils;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RoutingTest extends TestCase
+{
+
+ /*
+ * The message should go:
+ * [inrouter_ServiceA -> ServiceA -> outrouter_ServiceA] -|
+ * [DeadLetterService] <-|
+ *
+ * RoutingException inside the outrouter... should route to the DLS.
+ */
+ 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"));
+
+ 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();
+ String messageV1 = StreamUtils.readStreamAsString(getClass().getResourceAsStream("message_v1.xml"));
+ String messageV2 = StreamUtils.readStreamAsString(getClass().getResourceAsStream("message_v2.xml"));
+
+ inrouter.sendMessage(messageV1);
+ inrouter.sendMessage(messageV2);
+
+ serviceA.waitForMessage(10000);
+ serviceB.waitForMessage(10000);
+
+ assertTrue(StreamUtils.compareCharStreams(messageV1, (String) serviceA.getMessage()));
+ assertTrue(StreamUtils.compareCharStreams(messageV2, (String) serviceB.getMessage()));
+ }
+ finally
+ {
+ deployment1.undeploy();
+ }
+ }
+ }.run();
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v1.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v1.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v1.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,4 @@
+<x>
+ <version>1</version>
+ <data>abcd</data>
+</x>
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v1.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_015/message_v2.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v2.xml (rev 0)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v2.xml 2008-10-07 17:01:06 UTC (rev 23353)
@@ -0,0 +1,4 @@
+<x>
+ <version>2</version>
+ <data>1234</data>
+</x>
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/routing/scenario_015/message_v2.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list