[jboss-svn-commits] JBL Code SVN: r20632 - in labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src: main/java/org/jboss/internal/soa/esb/services/rules and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 19 01:40:35 EDT 2008
Author: beve
Date: 2008-06-19 01:40:35 -0400 (Thu, 19 Jun 2008)
New Revision: 20632
Modified:
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleServiceCallHelper.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/actions/ContentBasedWiretap.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleService.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleServicePropertiesNames.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelperUnitTest.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/CBRConfigTreeBuilder.java
labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/resources/log4j.xml
Log:
Refactoring updates.
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -112,7 +112,7 @@
final String ruleSet,
final String ruleLanguage,
final boolean ruleReload,
- final Message message,
+ Message message,
final List<Object> objectList ) throws MessageRouterException
{
try
@@ -120,7 +120,7 @@
Map<String,Object> globals = new HashMap<String,Object>();
List<String> destinations = new ArrayList<String>();
globals.put( "destinations", destinations );
- RuleServiceCallHelper.executeRulesService( ruleSet, ruleLanguage, ruleReload, message, objectList, globals, configTree );
+ message = RuleServiceCallHelper.executeRulesService( ruleSet, ruleLanguage, ruleReload, message, objectList, globals, configTree );
return destinations;
}
catch (final RuleServiceException e)
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -23,8 +23,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -56,10 +54,6 @@
*/
public class DroolsRuleService implements RuleService {
- private static List<String> decisionTableSuffixes = Collections.unmodifiableList( Arrays.asList( new String[] { ".xls", ".csv" } ) );
- private static List<String> ruleAgentSuffixes = Collections.unmodifiableList( Arrays.asList( new String[] { ".properties" } ) );
- private static List<String> ruleFileSuffixes = Collections.unmodifiableList( Arrays.asList( new String[] { ".drl" } ) );
-
/**
* The lifecycle resource factory for RuleBases.
*/
@@ -442,38 +436,6 @@
}
}
- public boolean acceptsDecisionTable( final String fileName )
- {
- return decisionTableSuffixes.contains( getSuffix( fileName ) );
- }
-
-
- public boolean acceptsRuleAgent( final String fileName )
- {
- return ruleAgentSuffixes.contains( getSuffix( fileName ) );
- }
-
- public boolean acceptsRuleFile( final String fileName )
- {
- return ruleFileSuffixes.contains( getSuffix( fileName ) );
- }
-
-
- public List<String> getSupportedDecsionTableSuffixes()
- {
- return decisionTableSuffixes;
- }
-
- public List<String> getSupportedRuleAgentSuffixes()
- {
- return ruleAgentSuffixes;
- }
-
- public List<String> getSupportedRuleFileSuffixes()
- {
- return ruleFileSuffixes;
- }
-
/**
* Determine if file based rules need reloading and return the rulebase
*
@@ -729,6 +691,17 @@
}
}
+ private void insertObjectsIntoWorkingMemory(final List<Object> objectList, final WorkingMemory workingMemory)
+ {
+ if (objectList != null)
+ {
+ for (Object object : objectList)
+ {
+ workingMemory.insert(object);
+ }
+ }
+ }
+
/**
* The lifecycle resource factory for rule sets.
*
@@ -820,24 +793,6 @@
}
}
- private void insertObjectsIntoWorkingMemory(final List<Object> objectList, final WorkingMemory workingMemory)
- {
- if (objectList != null)
- {
- for (Object object : objectList)
- {
- workingMemory.insert(object);
- }
- }
- }
-
- private String getSuffix ( final String fileName )
- {
- if ( fileName == null )
- throw new NullPointerException("[fileName] argument was null");
-
- return fileName.substring( fileName.lastIndexOf( '.' ) );
- }
}
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleServiceCallHelper.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleServiceCallHelper.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/RuleServiceCallHelper.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -21,15 +21,16 @@
*/
package org.jboss.internal.soa.esb.services.rules;
+import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.CONTINUE;
+import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.DECISION_TABLE;
+import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.RULE_AGENT_PROPERTIES;
import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.DISPOSE;
import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.IMPL_CLASS;
import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.STATEFUL;
-import static org.jboss.soa.esb.services.rules.RuleServicePropertiesNames.CONTINUE;
-
import java.util.List;
import java.util.Map;
-
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.services.rules.RuleService;
@@ -49,19 +50,38 @@
}
/**
+ * This helper method delegates to the configured RuleService implementation.
+ * <p/>
+ * If the message object instance has a property 'continue' set to true, this method
+ * will invoke {@link RuleService#continueStatefulRulesExecution(String, boolean, Message, Map, List)}.
+ * This will continue an existing stateful session.
+ * <br>
+ * <br>
+ * Otherwise this method will delete one of the stateless or stateful methods in RuleService
+ * depending on the configuration property 'stateful' is true or false. Default is stateless.
*
- * @param ruleSet
- * @param ruleLanguage
- * @param ruleReload
- * @param message
- * @param objectList
- * @param globals
- * @param configTree
- * @return
+ * @param ruleSet -
+ * String reference to a file which contains a ruleSet.
+ * @param ruleLanguage -
+ * String reference to a file which contains a custom rule
+ * language definition
+ * @param ruleReload -
+ * if set to true, a ruleSet update should result in reloading the ruleSet.
+ * @param message -
+ * Message that is updated with the results.
+ * @param objectList -
+ * a list with additional objects (typically pulled from the message) to be inserted into
+ * working memory
+ * @param globals -
+ * Map of globals variables that should be set in the working memory
+ * @param configTree -
+ * configuration instance to access properties from jboss-esb.xml
+ * @return Message -
+ * the ESB Message object which might have been updated.
* @throws RuleServiceException
*/
public static Message executeRulesService(
- final String ruleSet,
+ String ruleSet,
final String ruleLanguage,
final boolean ruleReload,
Message message,
@@ -73,91 +93,55 @@
final RuleService ruleService = RuleServiceFactory.getRuleService( ruleServiceImpl );
ruleService.setConfigTree( configTree );
+ final String decisionTable = configTree.getAttribute( DECISION_TABLE.getTagName() );
+ final String ruleAgent = configTree.getAttribute( RULE_AGENT_PROPERTIES.getTagName() );
+
final Boolean continueStateful = (Boolean) message.getProperties().getProperty( CONTINUE.getTagName(), Boolean.FALSE );
if ( continueStateful )
{
- return ruleService.continueStatefulRulesExecution( ruleSet, getDisposeProperty( message ), message, globals, objectList );
+ // ruleSet can be a rule file, decisiontable or a ruleAgent properties file for continueStatefulRules
+ if ( ruleSet == null )
+ ruleSet = decisionTable != null ? decisionTable : ruleAgent;
+
+ message = ruleService.continueStatefulRulesExecution( ruleSet, getDisposeProperty( message ), message, globals, objectList );
}
-
- final boolean stateful = Boolean.valueOf( configTree.getAttribute( STATEFUL.getTagName()) );
-
- if ( stateful )
- {
- return executeStatefulRules( ruleService, ruleSet, ruleLanguage, ruleReload, message, globals, objectList );
- }
else
{
- return executeStatelessRules( ruleService, ruleSet, ruleLanguage, ruleReload, message, globals, objectList );
+ final boolean stateful = Boolean.valueOf( configTree.getAttribute( STATEFUL.getTagName()) );
+
+ if ( stateful )
+ {
+ if ( ruleSet != null )
+ message = ruleService.executeStatefulRules( ruleSet, ruleLanguage, ruleReload, message, globals, objectList );
+ else if ( decisionTable != null )
+ message = ruleService.executeStatefulRulesFromDecisionTable( decisionTable, ruleReload, message, globals, objectList );
+ else if ( ruleAgent != null )
+ message = ruleService.executeStatefulRulesFromRuleAgent( ruleAgent, message, globals, objectList );
+ else
+ throwRuleServiceException();
+ }
+ else
+ {
+ if ( ruleSet != null )
+ message = ruleService.executeStatelessRules( ruleSet, ruleLanguage, ruleReload, message, globals, objectList );
+ else if ( decisionTable != null )
+ message = ruleService.executeStatelessRulesFromDecisionTable( decisionTable, ruleReload, message, globals, objectList );
+ else if ( ruleAgent != null )
+ message = ruleService.executeStatelessRulesFromRuleAgent( ruleAgent, message, globals, objectList );
+ else
+ throwRuleServiceException();
+ }
}
+ return message;
}
// private static methods
- private static Message executeStatefulRules(
- RuleService ruleService,
- final String ruleSet,
- final String dsl,
- final boolean ruleReload,
- Message message,
- final Map<String,Object> globals,
- final List<Object> objectList) throws RuleServiceException
+ private static void throwRuleServiceException() throws RuleServiceException
{
- if ( ruleService.acceptsDecisionTable( ruleSet ) )
- {
- message = ruleService.executeStatefulRulesFromDecisionTable( ruleSet, ruleReload, message, globals, objectList );
- }
- else if ( ruleService.acceptsRuleAgent( ruleSet ) )
- {
- message = ruleService.executeStatefulRulesFromRuleAgent( ruleSet, message, globals, objectList );
- }
- else if ( ruleService.acceptsRuleFile( ruleSet ) )
- {
- message = ruleService.executeStatefulRules( ruleSet, dsl, ruleReload, message, globals, objectList );
- }
- return message;
+ throw new RuleServiceException( "One of '" + ListenerTagNames.RULE_SET_TAG + "', '" + DECISION_TABLE.getTagName() + "', or ' " + RULE_AGENT_PROPERTIES.getTagName() + "'must be specified as properties in jboss-esb.xml");
}
- private static Message executeStatelessRules(
- RuleService ruleService,
- final String ruleSet,
- final String dsl,
- final boolean ruleReload,
- Message message,
- final Map<String,Object> globals,
- final List<Object> objectList) throws RuleServiceException
- {
- if ( ruleService.acceptsDecisionTable( ruleSet ) )
- {
- message = ruleService.executeStatelessRulesFromDecisionTable( ruleSet, ruleReload, message, globals, objectList );
- }
- else if ( ruleService.acceptsRuleAgent( ruleSet ) )
- {
- message = ruleService.executeStatelessRulesFromRuleAgent( ruleSet, message, globals, objectList );
- }
- else if ( ruleService.acceptsRuleFile( ruleSet ) )
- {
- message = ruleService.executeStatelessRules( ruleSet, dsl, ruleReload, message, globals, objectList );
- }
- else
- {
- throwRuleExceptionWithSupportedSuffixes( ruleService, ruleSet );
- }
-
- return message;
- }
-
- private static void throwRuleExceptionWithSupportedSuffixes( final RuleService ruleService , final String fileName ) throws RuleServiceException
- {
- String lineSeparator = System.getProperty( "line.separator" );
- throw new RuleServiceException(
- "The RuleService does not recognize the type of file : [" + fileName + "]." +
- "The RuleService accepts the following decision table type(s): " + ruleService.getSupportedDecsionTableSuffixes() +
- lineSeparator +
- ", and these rule agent type(s) " + ruleService.getSupportedRuleAgentSuffixes() +
- lineSeparator +
- ", and these rule file types(s) : " + ruleService.getSupportedRuleFileSuffixes());
- }
-
private static boolean getDisposeProperty( final Message message ) throws RuleServiceException
{
Object dispose = message.getProperties().getProperty( DISPOSE.getTagName() );
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/actions/ContentBasedWiretap.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/actions/ContentBasedWiretap.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/actions/ContentBasedWiretap.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -203,25 +203,19 @@
* @throws ConfigurationException
*/
protected void checkMyParms() throws ConfigurationException {
- if (_config.getAttribute(ListenerTagNames.RULE_SET_TAG) == null) {
- _logger.error("Required attribute " + ListenerTagNames.RULE_SET_TAG
- + " not found in " + _config.getName() + ".");
+ _ruleSet = _config.getAttribute(ListenerTagNames.RULE_SET_TAG);
+ /* now longer a required attribute
+ if (_ruleSet == null) {
throw new ConfigurationException("Required attribute "
+ ListenerTagNames.RULE_SET_TAG + " not found.");
- } else {
- _ruleSet = _config.getAttribute(ListenerTagNames.RULE_SET_TAG);
- if (_ruleSet == null) {
- throw new ConfigurationException("Required attribute "
- + ListenerTagNames.RULE_SET_TAG + " not found.");
- }
- _ruleLanguage = _config
- .getAttribute(ListenerTagNames.RULE_LANGUAGE_TAG);
- String ruleReload = _config
- .getAttribute(ListenerTagNames.RULE_RELOAD_TAG);
- if (ruleReload != null && "true".equals(ruleReload)) {
- _ruleReload = true;
- }
}
+ */
+ _ruleLanguage = _config.getAttribute(ListenerTagNames.RULE_LANGUAGE_TAG);
+ String ruleReload = _config.getAttribute(ListenerTagNames.RULE_RELOAD_TAG);
+ if (ruleReload != null && "true".equals(ruleReload)) {
+ _ruleReload = true;
+ }
+
if (_config.getAttribute(ListenerTagNames.CBR_CLASS) != null) {
_cbrClass = _config.getAttribute(ListenerTagNames.CBR_CLASS);
} else {
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleService.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleService.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -191,6 +191,8 @@
* if set to true, working memory will be disposed after the rules are fired
* @param message -
* Message that is updated with the results.
+ * @param globals -
+ * Map of globals variables that should be set in the working memory
* @param objectList - a list with additional objects (typically pulled from the message) to be inserted into
* working memory
*
@@ -203,48 +205,4 @@
Map<String,Object> globals,
List<Object> objectList) throws RuleServiceException;
- /**
- * Determines whether this RuleService can process file of passed in type.
- *
- * @param fileName - rule file to be processed
- * @return true if this RuleService can process files of the passed in type
- */
- public boolean acceptsDecisionTable( String fileName );
-
- /**
- * Get the supported decision tables suffixes
- *
- * @return List<String> containing all the supported suffixes by this RuleService
- */
- public List<String> getSupportedDecsionTableSuffixes();
-
- /**
- * Determines whether this RuleService can process file of passed in type.
- *
- * @param fileName - rule file to be processed
- * @return true if this RuleService can process files of the passed in type
- */
- public boolean acceptsRuleAgent( String fileName );
-
- /**
- * Get the supported rule agent suffixes
- *
- * @return List<String> containing all the supported suffixes by this RuleService
- */
- public List<String> getSupportedRuleAgentSuffixes();
-
- /**
- * Determines whether this RuleService can process file of passed in type.
- *
- * @param fileName - rule file to be processed
- * @return true if this RuleService can process files of the passed in type
- */
- public boolean acceptsRuleFile( String fileName );
-
- /**
- * Get the supported rule agent suffixes
- *
- * @return List<String> containing all the supported suffixes by this RuleService
- */
- public List<String> getSupportedRuleFileSuffixes();
}
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleServicePropertiesNames.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleServicePropertiesNames.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/soa/esb/services/rules/RuleServicePropertiesNames.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -31,9 +31,6 @@
public enum RuleServicePropertiesNames {
IMPL_CLASS ( "rulsServiceImplClass" ),
- RULE_SET ( "ruleSet" ),
- RULE_LANGUAGE ("ruleLanguage"),
- RULE_RELOAD ( "ruleReload" ),
DECISION_TABLE ( "decisionTable" ),
RULE_AGENT_PROPERTIES ( "ruleAgentProperties" ),
DISPOSE ( "dispose" ),
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -1,6 +1,6 @@
/*
* JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
@@ -32,6 +32,7 @@
import junit.framework.JUnit4TestAdapter;
+import org.jboss.soa.esb.actions.CBRConfigTreeBuilder;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageFactory;
@@ -46,6 +47,7 @@
import org.junit.Test;
/**
+ * Tests for {@link JBossRulesRouter}.
*
* @author kurt.stam at redhat.com
* @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
@@ -60,7 +62,9 @@
public void routeSerializedMessage() throws MessageRouterException
{
Message message = createMessage( MessageType.JAVA_SERIALIZED );
-
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
+
List<String> destinationServices = jbrRouter.route("JBossESBRules.drl",false,message,null);
assertNotNull(destinationServices);
assertTrue(destinationServices.size()>0);
@@ -72,7 +76,10 @@
{
Message message = createMessage( MessageType.JAVA_SERIALIZED );
- List<String> destinationServices = jbrRouter.route( "RuleBaseHelper.xls", false, message, null);
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).decisionTable( "RuleBaseHelper.xls").build();
+ jbrRouter.setConfigTree( configTree );
+
+ List<String> destinationServices = jbrRouter.route( null, false, message, null);
assertNotNull( destinationServices );
assertTrue( "One destination should have been added by Drools", destinationServices.size() == 1 );
@@ -84,11 +91,10 @@
{
Message message = createMessage( MessageType.JAVA_SERIALIZED );
- ConfigTree config = new ConfigTree("statefulConfig");
- config.setAttribute( "stateful", "true" );
- jbrRouter.setConfigTree( config );
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).decisionTable( "RuleBaseHelper.xls").stateful( true ).build();
+ jbrRouter.setConfigTree( configTree );
- List<String> destinationServices = jbrRouter.route( "RuleBaseHelper.xls", false, message, null);
+ List<String> destinationServices = jbrRouter.route( null, false, message, null);
assertNotNull( destinationServices );
assertTrue( "One destination should have been added by Drools", destinationServices.size() == 1 );
@@ -99,6 +105,8 @@
public void routeXMLMessage() throws MessageRouterException
{
Message message = createMessage( MessageType.JBOSS_XML);
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
List<String> destinationServices = jbrRouter.route("JBossESBRules.drl",false,message,null);
assertEquals(destinationServices.iterator().next(),"xml-destination");
}
@@ -108,6 +116,8 @@
{
Message message = createMessage( MessageType.JBOSS_XML);
message.getBody().add(("<jbossesb>TEST BODY</jbossesb>").getBytes());
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
List<String> destinationServices = jbrRouter.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
assertEquals(destinationServices.iterator().next(),"XML_XPath_Destination");
@@ -119,6 +129,9 @@
Message message = createMessage( MessageType.JBOSS_XML );
message.getBody().add(("<Dave>rocks</Dave>").getBytes());
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
+
List<String> destinationServices = jbrRouter.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
assertEquals(destinationServices.iterator().next(),"XML_XPath_Dave_Destination");
}
@@ -128,6 +141,9 @@
{
Message message = createMessage( MessageType.JBOSS_XML );
message.getBody().add(("<price>1.55</price>").getBytes());
+
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
List<String> destinationServices = jbrRouter.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
assertEquals(destinationServices.iterator().next(),"XML_XPath_GreaterThan_Destination");
@@ -141,6 +157,8 @@
Message message = MessageFactory.getInstance().getMessage( MessageType.JBOSS_XML );
//set the body inside the Message
message.getBody().add(("<price>0.55</price>").getBytes());
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
List<String> destinationServices = jbrRouter.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
assertEquals(destinationServices.iterator().next(),"XML_XPath_LessThan_Destination");
@@ -149,6 +167,28 @@
}
}
+ @Test ( expected = MessageRouterException.class )
+ public void shouldThrowIfNoRuleSetIsSupplied() throws MessageRouterException
+ {
+ //add new messages
+ Message message = MessageFactory.getInstance().getMessage( MessageType.JBOSS_XML );
+ ConfigTree configTree = new ConfigTree("bad-config");
+ jbrRouter.setConfigTree( configTree );
+
+ jbrRouter.route( null ,"XPathLanguage.dsl",false,message,null);
+ }
+
+ @Test ( expected = MessageRouterException.class )
+ public void shouldThrowIfRuleServiceImplIsInvalid() throws MessageRouterException
+ {
+ //add new messages
+ Message message = MessageFactory.getInstance().getMessage( MessageType.JBOSS_XML );
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleServiceImpl( "bad.Class" ).ruleFile( "JBossESBRules.drl").build();
+ jbrRouter.setConfigTree( configTree );
+
+ jbrRouter.route( null, "XPathLanguage.dsl", false, message, null);
+ }
+
// Moved into this class from BusinessProcessRoutingUnitTest
// as that class also used JBossRulesRouter as you can see below
@Test
@@ -167,7 +207,8 @@
List<Object> objectList = mapper.createObjectList(message, messagePathList);
//Now send to the rules engine
JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
- jbossRulesRouter.setConfigTree( new ConfigTree("dummy") );
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBPricingRoutingRules.drl").build();
+ jbossRulesRouter.setConfigTree( configTree );
try {
List<String> destinations = jbossRulesRouter.route("JBossESBPricingRoutingRules.drl", false, message, objectList);
assertEquals(order.getDiscount(),10.0);
@@ -184,7 +225,7 @@
}
// Moved into this class from BusinessProcessRoutingUnitTest
- // as that class also used JBossRulesRouter as you can see below
+ // as that class also used JBossRulesRouter as you can see befinal low
@Test
public void nodiscount() throws ObjectMappingException
{
@@ -201,7 +242,8 @@
List<Object> objectList = mapper.createObjectList(message, messagePathList);
//Now send to the rules engine
JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
- jbossRulesRouter.setConfigTree( new ConfigTree("dummy") );
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBPricingRoutingRules.drl").build();
+ jbossRulesRouter.setConfigTree( configTree );
try {
List<String> destinations = jbossRulesRouter.route("JBossESBPricingRoutingRules.drl", false, message, objectList);
assertEquals(order.getDiscount(),0.0);
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelperUnitTest.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelperUnitTest.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -1,34 +1,32 @@
/*
- * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
- * individual contributors as indicated by the @authors tag. See the
- * copyright.txt in the distribution for a full listing of individual
- * contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY 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
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.internal.soa.esb.services.rules;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-
import java.io.IOException;
import junit.framework.JUnit4TestAdapter;
-
import org.drools.RuleBase;
import org.drools.compiler.DroolsParserException;
import org.junit.Test;
@@ -45,12 +43,6 @@
// instance under test
private DroolsRuleBaseHelper helper = DroolsRuleBaseHelper.getInstance();
- // rule file shared by multiple tests methods
- private final static String RULE_FILE = "RuleBaseHelper.drl";
-
- // decision table file shared by multiple test methods
- private final static String DECISION_TABLE_FILE = "RuleBaseHelper.xls";
-
private final static String NULL_DSL_FILE = null;
private final static String NULL_RULE_FILE = null;
private final static String NULL_DECISION_TABLE_FILE = null;
@@ -64,7 +56,7 @@
@Test
public void createRuleBaseFromRuleFiles() throws DroolsParserException, IOException, RuleServiceException
{
- RuleBase ruleBase = helper.createRuleBaseFromRuleFiles( RULE_FILE, NULL_DSL_FILE );
+ RuleBase ruleBase = helper.createRuleBaseFromRuleFiles( "RuleBaseHelper.drl", NULL_DSL_FILE );
assertNotNull( ruleBase );
assertTrue( ruleBase.getPackages().length > 0 );
@@ -80,7 +72,7 @@
@Test
public void createRuleBaseFromDecisionTable() throws DroolsParserException, IOException, RuleServiceException
{
- RuleBase ruleBase = helper.createRuleBaseFromDecisionTable( DECISION_TABLE_FILE );
+ RuleBase ruleBase = helper.createRuleBaseFromDecisionTable( "RuleBaseHelper.xls" );
assertNotNull( ruleBase );
assertEquals( "org.jboss.internal.soa.esb.rules", ruleBase.getPackages()[0].getName());
}
@@ -95,18 +87,25 @@
@Test
public void getRuleFileAsString() throws IOException, RuleServiceException
{
- String rulesAsString = helper.getRulesAsString( RULE_FILE, NULL_DSL_FILE );
+ String rulesAsString = helper.getRulesAsString( "RuleBaseHelper.drl", NULL_DSL_FILE );
assertNotNull( rulesAsString );
}
@Test
public void getSpreadSheetRules() throws IOException, RuleServiceException
{
- String spreadSheetAsString = helper.getSpreadsheetRules( DECISION_TABLE_FILE );
+ String spreadSheetAsString = helper.getSpreadsheetRules( "RuleBaseHelper.xls" );
assertNotNull( spreadSheetAsString );
}
+ /*
+ This test is currently disabled as the file property that exists in RuleBaseHelper.properties
+ accesses a file on the local file system. This causes problems with the integration build as
+ the working dir is not the same and when run from eclipse or ant in this modules directory.
+ The issue here could be fixed by using the dir property in base-build.xml, but that caused
+ the other modules to fail. Leaving this for now as v5.0 will clean this up./Daniel
@Test
+ */
public void loadRuleBaseFromRuleAgent() throws Exception
{
RuleBase ruleBase = helper.loadRuleBaseFromRuleAgent( "RuleBaseHelper.properties" );
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -23,8 +23,6 @@
package org.jboss.internal.soa.esb.services.rules;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.math.BigDecimal;
@@ -55,10 +53,6 @@
*/
public class DroolsRuleServiceUnitTest
{
- private static final String DRL_FILE = "JBossESBRules.drl";
-
- private static final String DESTINATIONS = "destinations";
-
private DroolsRuleService ruleService = new DroolsRuleService();
private RuleBase ruleBase;
@@ -81,7 +75,7 @@
public void executeStatefulRulesDrl() throws RuleServiceException
{
Map<String,Object> globals = getGlobalsWithDestAndMessage();
- message = ruleService.executeStatefulRules( DRL_FILE, null, true, message, globals, null );
+ message = ruleService.executeStatefulRules( "JBossESBRules.drl", null, true, message, globals, null );
ArrayList<String> destinations = getDistinations( globals );
assertTrue( destinations.size() == 1 );
}
@@ -123,7 +117,14 @@
}
+ /*
+ This test is currently disabled as the file property that exists in RuleBaseHelper.properties
+ accesses a file on the local file system. This causes problems with the integration build as
+ the working dir is not the same and when run from eclipse or ant in this modules directory.
+ The issue here could be fixed by using the dir property in base-build.xml, but that caused
+ the other modules to fail. Leaving this for now as v5.0 will clean this up./Daniel
@Test
+ */
public void executeStatefulRulesFromRuleAgent() throws RuleServiceException
{
Map<String,Object> globals = getGlobalsWithDest();
@@ -138,82 +139,12 @@
assertTrue( "Should have added a second destination to the existing global", destinations.size() == 2 );
}
- @Test
- public void getSupportedDecsionTableSuffixes()
- {
- List<String> suffixes = ruleService.getSupportedDecsionTableSuffixes();
- assertNotNull ( suffixes );
- assertEquals ( 2 , suffixes.size() );
- try
- {
- suffixes.add( ".xxx" );
- }
- catch (Exception e )
- {
- assertTrue( e instanceof UnsupportedOperationException );
- }
- }
-
- @Test
- public void getSupportedRuleAgentSuffixes()
- {
- List<String> suffixes = ruleService.getSupportedRuleAgentSuffixes();
- assertNotNull ( suffixes );
- assertEquals ( 1 , suffixes.size() );
- try
- {
- suffixes.add( ".xxx" );
- }
- catch (Exception e )
- {
- assertTrue( e instanceof UnsupportedOperationException );
- }
- }
-
- @Test
- public void getSupportedRuleFileSuffixes()
- {
- List<String> suffixes = ruleService.getSupportedRuleFileSuffixes();
- assertNotNull ( suffixes );
- assertEquals ( 1 , suffixes.size() );
- try
- {
- suffixes.add( ".xxx" );
- }
- catch (Exception e )
- {
- assertTrue( e instanceof UnsupportedOperationException );
- }
- }
-
- @Test
- public void acceptsDecisionTable( )
- {
- assertTrue ( ruleService.acceptsDecisionTable( "Helper.xls" ) );
- assertTrue ( ruleService.acceptsDecisionTable( "Helper.csv" ) );
- assertFalse ( ruleService.acceptsDecisionTable( "Helper.cvs" ) );
- }
-
- @Test
- public void acceptsRuleAgentTable( )
- {
- assertTrue ( ruleService.acceptsRuleAgent( "Helper.properties" ) );
- assertFalse ( ruleService.acceptsRuleAgent( "Helper.csv" ) );
- }
-
- @Test
- public void acceptsRuleFileTable( )
- {
- assertTrue ( ruleService.acceptsRuleFile( "Helper.drl" ) );
- assertFalse ( ruleService.acceptsRuleFile( "Helper.csv" ) );
- }
-
// Test setup methods
@Before
public void setup() throws RuleServiceException
{
- ruleBase = ruleService.getRuleBaseForFileBasedRules( DRL_FILE, null, true );
+ ruleBase = ruleService.getRuleBaseForFileBasedRules( "JBossESBRules.drl", null, true );
message = MessageFactory.getInstance().getMessage();
order = new Order();
@@ -235,14 +166,14 @@
@SuppressWarnings("unchecked")
private ArrayList<String> getDistinations( final Map<String,Object> globals )
{
- return (ArrayList<String>) globals.get( DESTINATIONS );
+ return (ArrayList<String>) globals.get( "destinations" );
}
private Map<String,Object> getGlobalsWithDestAndMessage()
{
Map<String,Object> globals = new HashMap<String,Object>();
ArrayList<String> destinations = new ArrayList<String>();
- globals.put(DESTINATIONS, destinations );
+ globals.put("destinations", destinations );
globals.put("message", message );
return globals;
}
@@ -251,7 +182,7 @@
{
Map<String,Object> globals = new HashMap<String,Object>();
ArrayList<String> destinations = new ArrayList<String>();
- globals.put(DESTINATIONS, destinations );
+ globals.put("destinations", destinations );
return globals;
}
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -45,6 +45,7 @@
import org.junit.Test;
/**
+ * Unit test for {@link BusinessRulesProcessor}
*
* @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
*
@@ -58,7 +59,7 @@
public void processDiscount() throws ObjectMappingException, ConfigurationException, RegistryException, MessageRouterException, ActionProcessingException
{
Message message = createMessageWithOrder( order );
- ConfigTree configTree = new CBRConfigTreeBuilder( "JBossESBPricingRulesStateful.drl", "true" ).messagePaths(messagePathList).build();
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBPricingRulesStateful.drl" ).messagePaths(messagePathList).build();
BusinessRulesProcessor processor = new BusinessRulesProcessor( configTree );
processor.process( message );
@@ -71,7 +72,7 @@
public void processDiscountStateful() throws ObjectMappingException, ConfigurationException, RegistryException, MessageRouterException, ActionProcessingException
{
Message message = createMessageWithOrder( order );
- ConfigTree configTree = new CBRConfigTreeBuilder( "JBossESBPricingRulesStateful.drl", "true" ).messagePaths(messagePathList).stateful( true ).build();
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBPricingRulesStateful.drl" ).stateful( true ).messagePaths(messagePathList).build();
BusinessRulesProcessor processor = new BusinessRulesProcessor( configTree );
// process message
@@ -94,7 +95,7 @@
public void shouldThrowIfDisposePropertyIsNotSet() throws ObjectMappingException, ConfigurationException, RegistryException, MessageRouterException, ActionProcessingException
{
Message message = createMessageWithOrder( order );
- ConfigTree configTree = new CBRConfigTreeBuilder( "JBossESBPricingRulesStateful.drl", "true" ).messagePaths(messagePathList).stateful( true ).build();
+ ConfigTree configTree = new CBRConfigTreeBuilder( true ).ruleFile( "JBossESBPricingRulesStateful.drl" ).messagePaths(messagePathList).stateful( true ).build();
BusinessRulesProcessor processor = new BusinessRulesProcessor( configTree );
// process message
@@ -107,16 +108,6 @@
processor.process( message );
}
- @Test ( expected = ActionProcessingException.class )
- public void throwIfFileTypeIsNotValid() throws ActionProcessingException, ConfigurationException, RegistryException, MessageRouterException
- {
- Message message = createMessageWithOrder( order );
- ConfigTree configTree = new CBRConfigTreeBuilder( "test.bla", "true" ).messagePaths(messagePathList).build();
- BusinessRulesProcessor processor = new BusinessRulesProcessor( configTree );
-
- processor.process( message );
- }
-
public static junit.framework.Test suite()
{
return new JUnit4TestAdapter(BusinessRulesProcessorUnitTest.class);
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/CBRConfigTreeBuilder.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/CBRConfigTreeBuilder.java 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/CBRConfigTreeBuilder.java 2008-06-19 05:40:35 UTC (rev 20632)
@@ -1,23 +1,23 @@
/*
- * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
- * individual contributors as indicated by the @authors tag. See the
- * copyright.txt in the distribution for a full listing of individual
- * contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY 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
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.soa.esb.actions;
@@ -38,19 +38,39 @@
public class CBRConfigTreeBuilder
{
// mandatory
- private String ruleFile;
- private String reload;
+ private boolean reload;
// optional
+ private String ruleFile;
private List<String> messagePathList;
private boolean stateful;
+ private String decisionTable;
+ private String ruleAgent;
+ private String ruleServiceImpl;
- public CBRConfigTreeBuilder( final String ruleFile, final String reload )
+ public CBRConfigTreeBuilder( final boolean reload )
{
- this.ruleFile = ruleFile;
this.reload = reload;
}
+
+ public CBRConfigTreeBuilder ruleFile( final String ruleFile )
+ {
+ this.ruleFile = ruleFile;
+ return this;
+ }
+
+ public CBRConfigTreeBuilder decisionTable( final String decisionTable )
+ {
+ this.decisionTable = decisionTable;
+ return this;
+ }
+
+ public CBRConfigTreeBuilder ruleAgent( final String ruleAgent )
+ {
+ this.ruleAgent = ruleAgent;
+ return this;
+ }
public CBRConfigTreeBuilder messagePaths( List<String> messagePathList )
{
@@ -58,6 +78,12 @@
return this;
}
+ public CBRConfigTreeBuilder ruleServiceImpl( String ruleServiceImpl )
+ {
+ this.ruleServiceImpl = ruleServiceImpl;
+ return this;
+ }
+
public CBRConfigTreeBuilder stateful( final boolean stateful )
{
this.stateful = stateful;
@@ -67,8 +93,18 @@
public ConfigTree build()
{
ConfigTree configTree = new ConfigTree("cbr-config");
- configTree.setAttribute( ListenerTagNames.RULE_SET_TAG, ruleFile );
- configTree.setAttribute( ListenerTagNames.RULE_RELOAD_TAG, reload );
+
+ configTree.setAttribute( ListenerTagNames.RULE_RELOAD_TAG, Boolean.toString( reload ) );
+
+ if ( ruleFile != null )
+ configTree.setAttribute( ListenerTagNames.RULE_SET_TAG, ruleFile );
+ else if ( decisionTable != null )
+ configTree.setAttribute( RuleServicePropertiesNames.DECISION_TABLE.getTagName(), decisionTable );
+ else if ( ruleAgent != null )
+ configTree.setAttribute( RuleServicePropertiesNames.RULE_AGENT_PROPERTIES.getTagName(), ruleAgent );
+ else
+ throw new IllegalStateException("One of ruleFile, decisionTable or ruleAgent must be set");
+
if ( messagePathList != null )
{
@@ -78,9 +114,13 @@
objectPath.setAttribute( ContentBasedWiretap.OBJECT_PATH, messagePath );
}
}
+
if ( stateful )
configTree.setAttribute( RuleServicePropertiesNames.STATEFUL.getTagName(), Boolean.toString( stateful ) );
-
+
+ if ( ruleServiceImpl != null )
+ configTree.setAttribute( RuleServicePropertiesNames.IMPL_CLASS.getTagName(), ruleServiceImpl );
+
return configTree;
}
}
Modified: labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/resources/log4j.xml 2008-06-19 05:35:52 UTC (rev 20631)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/resources/log4j.xml 2008-06-19 05:40:35 UTC (rev 20632)
@@ -44,13 +44,13 @@
<priority value="WARN"/>
</category>
<category name="org.jboss.soa.esb.actions">
- <priority value="debug"/>
+ <priority value="ERROR"/>
</category>
<category name="org.jboss.internal.soa.esb">
- <priority value="INFO"/>
+ <priority value="ERROR"/>
</category>
<category name="org.jboss.internal.soa.esb.services.rules">
- <priority value="DEBUG"/>
+ <priority value="ERROR"/>
</category>
<category name="org.apache">
<priority value="ERROR"/>
More information about the jboss-svn-commits
mailing list