[jboss-svn-commits] JBL Code SVN: r29505 - in labs/jbossesb/trunk/product: rosetta/src/org/jboss/soa/esb/actions and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 29 12:22:35 EDT 2009
Author: tfennelly
Date: 2009-09-29 12:22:34 -0400 (Tue, 29 Sep 2009)
New Revision: 29505
Added:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/RegexRouter.java
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/RegexRouterUnitTest.java
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/config.xml
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/regex-rules.properties
Modified:
labs/jbossesb/trunk/product/docs/ProgrammersGuide.odt
labs/jbossesb/trunk/product/docs/ServicesGuide.odt
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/ContentBasedWiretap.java
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/deployment.xml
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbm-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbmq-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jboss-esb.xml
Log:
https://jira.jboss.org/jira/browse/JBESB-2582
Add support for regexp routing
Modified: labs/jbossesb/trunk/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/trunk/product/docs/ServicesGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/ContentBasedWiretap.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/ContentBasedWiretap.java 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/ContentBasedWiretap.java 2009-09-29 16:22:34 UTC (rev 29505)
@@ -30,6 +30,7 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.actions.cbr.XPathRouter;
+import org.jboss.soa.esb.actions.cbr.RegexRouter;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.client.ServiceInvoker;
@@ -223,6 +224,8 @@
_cbrClass = DEFAULT_CBR_CLASS;
} else if(cbrAlias.equalsIgnoreCase("XPath")) {
_cbrClass = XPathRouter.class.getName();
+ } else if(cbrAlias.equalsIgnoreCase("Regex") || cbrAlias.equalsIgnoreCase("Regexp")) {
+ _cbrClass = RegexRouter.class.getName();
} else {
throw new ConfigurationException("Invalid " + getClass().getSimpleName() + " configuration. Unsupported '" + ListenerTagNames.CBR_ALIAS + "' property value '" + cbrAlias + "'.");
}
Copied: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/RegexRouter.java (from rev 29503, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/XPathRouter.java)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/RegexRouter.java (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/RegexRouter.java 2009-09-29 16:22:34 UTC (rev 29505)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., 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-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.actions.cbr;
+
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.util.XPathNamespaceContext;
+import org.jboss.soa.esb.ConfigurationException;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.apache.taglibs.bsf.expression;
+
+import javax.xml.xpath.*;
+import java.util.*;
+import java.util.regex.Pattern;
+import java.io.*;
+
+/**
+ * Regex Content Based Router implementation.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RegexRouter extends AbstractPropertyRulesRouter {
+
+ public Map<String, RoutingRule> buildRoutingMap(Properties rules) throws MessageRouterException {
+ Map<String, RoutingRule> routingMap = new HashMap<String, RoutingRule>();
+
+ Set<Map.Entry<Object, Object>> ruleSet = rules.entrySet();
+ for(Map.Entry<Object, Object> rule : ruleSet) {
+ String destinationName = (String) rule.getKey();
+ String expression = (String) rule.getValue();
+
+ routingMap.put(destinationName, new RegexRoutingRule(Pattern.compile(expression, Pattern.DOTALL)));
+ }
+
+ return routingMap;
+ }
+
+ private class RegexRoutingRule implements RoutingRule {
+
+ private Pattern regexExpression;
+
+ private RegexRoutingRule(Pattern regexExpression) {
+ this.regexExpression = regexExpression;
+ }
+
+ public boolean evaluate(Object objectToTest) throws MessageRouterException {
+ if(objectToTest instanceof CharSequence) {
+ return regexExpression.matcher((CharSequence) objectToTest).matches();
+ } else {
+ logger.debug("Unsupported Regex evaluation type '" + objectToTest.getClass().getName() + "'. Only supports CharSequence types.");
+ }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/cbr/RegexRouter.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/RegexRouterUnitTest.java (from rev 29503, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/xpath/XPathRouterUnitTest.java)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/RegexRouterUnitTest.java (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/RegexRouterUnitTest.java 2009-09-29 16:22:34 UTC (rev 29505)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., 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-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.actions.cbr.regex;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.testutils.ESBConfigUtil;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+import org.jboss.soa.esb.actions.cbr.RoutingRule;
+import org.jboss.soa.esb.actions.cbr.RegexRouter;
+import org.jboss.soa.esb.actions.cbr.XPathRouter;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+import java.io.File;
+import java.util.Map;
+import java.util.List;
+import java.util.Arrays;
+import java.util.regex.Pattern;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RegexRouterUnitTest extends TestCase {
+
+ public void test_rulefile_load_classpath() throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ test("1");
+ }
+
+ public void test_rulefile_load_filesys() throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ String cwd = new File(".").getAbsolutePath().replace("\\", "/");
+ if(!cwd.endsWith("product/.")) {
+ throw new IllegalStateException("Invalid working directory for test. Must be the 'product/rosetta/tests' dir. Current working directory is '" + cwd + "'.");
+ }
+
+ test("2");
+ }
+
+ public void test_inlineRules() throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ test("3");
+ }
+
+ private void test(String configName) throws MessageRouterException, IOException, SAXException, ConfigurationException {
+ ESBConfigUtil esbConfig = new ESBConfigUtil(getClass().getResourceAsStream("config.xml"));
+ ConfigTree configTree = esbConfig.getActionConfig("null-listener", configName);
+ RegexRouter router = new RegexRouter();
+
+ router.setConfigTree(configTree);
+
+ Map<String, RoutingRule> map = router.getRoutingMap();
+ assertEquals(3, map.size());
+ assertNotNull(map.get("scat-red"));
+ assertNotNull(map.get("scat-green"));
+ assertNotNull(map.get("scat-blue"));
+ }
+
+ public static final String GREEN_MESSAGE = "#############333#############";
+
+ public void test_routing_String() throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ Message message = MessageFactory.getInstance().getMessage();
+
+ message.getBody().add(GREEN_MESSAGE);
+ test_routing(message, null);
+ }
+
+ public void test_routing_ObjectList() throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ Message message = MessageFactory.getInstance().getMessage();
+
+ message.getBody().add("x", "<x/>");
+ message.getBody().add("y", GREEN_MESSAGE);
+ test_routing(message, Arrays.asList("y"));
+ test_routing(message, Arrays.asList("body.y"));
+ }
+
+ public void test_routing(Message message, List objectLists) throws IOException, SAXException, ConfigurationException, MessageRouterException {
+ ESBConfigUtil esbConfig = new ESBConfigUtil(getClass().getResourceAsStream("config.xml"));
+ ConfigTree configTree = esbConfig.getActionConfig("null-listener", "3");
+ RegexRouter router = new RegexRouter();
+
+ router.setConfigTree(configTree);
+
+ List<String> destinations = router.route(null, false, message, objectLists);
+ assertEquals("[scat-green]", destinations.toString());
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/RegexRouterUnitTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/config.xml (from rev 29503, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/xpath/config.xml)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/config.xml (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/config.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -0,0 +1,35 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+
+ <providers>
+ <bus-provider name="null"><bus busid="null"/></bus-provider>
+ </providers>
+
+ <services>
+ <service category="scat" name="sname" description="boo">
+
+ <listeners>
+ <listener name="null-listener" busidref="null" />
+ </listeners>
+
+ <actions mep="OneWay">
+ <action name="1" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+ <property name="ruleSet" value="/org/jboss/soa/esb/actions/cbr/regex/rules.properties"/>
+ </action>
+
+ <action name="2" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+ <property name="ruleSet" value="rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties"/>
+ </action>
+
+ <action name="3" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+ <property name="destinations">
+ <route-to service-category="scat" service-name="blue" expression="#*111#*" />
+ <route-to service-category="scat" service-name="red" expression="#*222#*" />
+ <route-to service-category="scat" service-name="green" expression="#*333#*" />
+ </property>
+ </action>
+
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Copied: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties (from rev 29503, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/xpath/rules.properties)
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties 2009-09-29 16:22:34 UTC (rev 29505)
@@ -0,0 +1,3 @@
+scat-blue=#*111#*
+scat-red=#*222#*
+scat-green=#*333#*
\ No newline at end of file
Property changes on: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/cbr/regex/rules.properties
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/build.xml 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/build.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -5,7 +5,7 @@
${line.separator}
</description>
- <property name="additional.deploys" value="FunCBRRules-XPath.drl,smooks-res.xml"/>
+ <property name="additional.deploys" value="FunCBRRules-XPath.drl,regex-rules.properties,smooks-res.xml"/>
<property name="deploy.exploded" value="true"/>
<!-- Import the base Ant build script... -->
@@ -22,6 +22,14 @@
</java>
</target>
+ <target name="runtestRegex" depends="compile" description="Send JMS message to tigger the actions in the ESB">
+ <echo>Runs Regex Example</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.funcbr.test.SendJMSMessage" failonerror="true">
+ <classpath refid="exec-classpath" />
+ <arg value="quickstart_Fun_RegexCBR_Request_GW" />
+ </java>
+ </target>
+
<target name="runtestDrools" depends="compile" description="Send JMS message to tigger the actions in the ESB">
<echo>Runs Drools Example</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.funcbr.test.SendJMSMessage" failonerror="true">
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/deployment.xml 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/deployment.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -3,6 +3,7 @@
<depends>jboss.esb:deployment=smooks.esb</depends>
<depends>jboss.esb:deployment=jbrules.esb</depends>
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_XPathCBR_Request_GW</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_RegexCBR_Request_GW</depends>
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_DroolsCBR_Request_GW</depends>
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_CBR_ToBlue</depends>
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_CBR_Blue_Alert</depends>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbm-queue-service.xml 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbm-queue-service.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -9,6 +9,12 @@
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
<mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_RegexCBR_Request_GW"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_DroolsCBR_Request_GW"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbmq-queue-service.xml 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jbmq-queue-service.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -9,6 +9,12 @@
</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_RegexCBR_Request_GW">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_Fun_DroolsCBR_Request_GW">
<depends optional-attribute-name="DestinationManager">
jboss.mq:service=DestinationManager
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jboss-esb.xml 2009-09-29 14:10:35 UTC (rev 29504)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/jboss-esb.xml 2009-09-29 16:22:34 UTC (rev 29505)
@@ -6,6 +6,9 @@
<jms-bus busid="xpathQuickstartGwChannel">
<jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_Fun_XPathCBR_Request_GW"/>
</jms-bus>
+ <jms-bus busid="regexQuickstartGwChannel">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_Fun_RegexCBR_Request_GW"/>
+ </jms-bus>
<jms-bus busid="droolsQuickstartGwChannel">
<jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_Fun_DroolsCBR_Request_GW"/>
</jms-bus>
@@ -45,6 +48,26 @@
</actions>
</service>
+ <!-- ESB Regex CBR Service -->
+ <service category="Fun_CBRServices_ESB" name="Regex_FunCBRService_ESB" description="ESB Listener - for the native clients" invmScope="GLOBAL">
+ <listeners>
+ <!-- Gateway -->
+ <jms-listener name="TheGateway" busidref="regexQuickstartGwChannel" is-gateway="true" />
+ </listeners>
+ <actions mep="OneWay">
+ <action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="ContentBasedRouter">
+ <property name="cbrAlias" value="Regex"/>
+ <property name="ruleSet" value="/regex-rules.properties"/>
+ <property name="ruleReload" value="true"/>
+ <property name="destinations">
+ <route-to destination-name="blue" service-category="BlueTeam" service-name="GoBlue" />
+ <route-to destination-name="red" service-category="RedTeam" service-name="GoRed" />
+ <route-to destination-name="green" service-category="GreenTeam" service-name="GoGreen" />
+ </property>
+ </action>
+ </actions>
+ </service>
+
<!-- ESB Drools CBR Service -->
<service category="Fun_CBRServices_ESB" name="Drools_FunCBRService_ESB" description="ESB Listener - for the native clients" invmScope="GLOBAL">
<listeners>
Added: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/regex-rules.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/regex-rules.properties (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/regex-rules.properties 2009-09-29 16:22:34 UTC (rev 29505)
@@ -0,0 +1,3 @@
+blue=.* statusCode="0".*
+red=.* statusCode="1".*
+green=.* statusCode="2".*
\ No newline at end of file
More information about the jboss-svn-commits
mailing list