[jboss-svn-commits] JBL Code SVN: r20460 - in labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src: test/java/org/jboss/internal/soa/esb/services/rules and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jun 13 06:58:21 EDT 2008
Author: beve
Date: 2008-06-13 06:58:21 -0400 (Fri, 13 Jun 2008)
New Revision: 20460
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/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java
Log:
Added check for existing StatefulSession
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-13 10:55:27 UTC (rev 20459)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2008-06-13 10:58:21 UTC (rev 20460)
@@ -598,7 +598,13 @@
final List<Object> objectList)
{
- StatefulSession statefulSession = ruleBase.newStatefulSession();
+ StatefulSession[] statefulSessions = ruleBase.getStatefulSessions();
+ StatefulSession statefulSession;
+ // do you have a pre-existing session then us it
+ if ( statefulSessions != null && statefulSessions.length > 0 )
+ statefulSession = statefulSessions[0];
+ else
+ statefulSession = ruleBase.newStatefulSession();
if ( globals != null )
{
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-13 10:55:27 UTC (rev 20459)
+++ labs/jbossesb/workspace/dbevenius/ruleservice/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleServiceUnitTest.java 2008-06-13 10:58:21 UTC (rev 20460)
@@ -44,6 +44,8 @@
*/
public class DroolsRuleServiceUnitTest
{
+ private static final String DESTINATIONS = "destinations";
+
private DroolsRuleService ruleService = new DroolsRuleService();
private RuleBase ruleBase;
@@ -52,27 +54,37 @@
@Test
public void executeStatefulRules() throws RuleServiceException
{
- Map<String,Object> globals = new HashMap<String,Object>();
-
- ArrayList<String> destinations = new ArrayList<String>();
- globals.put("destinations", destinations );
- globals.put("message", message );
-
+ Map<String,Object> globals = getGlobalsWithDestAndMessage();
message = ruleService.executeStatefulRules( ruleBase, true, message , globals, null );
+ ArrayList<String> destinations = getDistinations( globals );
assertTrue( destinations.size() == 1 );
}
@Test
public void executeStatelessRules()
{
- Map<String,Object> globals = new HashMap<String,Object>();
- ArrayList<String> destinations = new ArrayList<String>();
- globals.put("destinations", destinations );
- globals.put("message", message );
+ Map<String,Object> globals = getGlobalsWithDestAndMessage();
message = ruleService.executeStatelessRules( ruleBase, message , globals, null );
+ ArrayList<String> destinations = getDistinations( globals );
assertTrue( destinations.size() == 1 );
}
+ @Test
+ public void executeStatelessRulesContinueSession()
+ {
+ Map<String,Object> globals = getGlobalsWithDestAndMessage();
+ message = ruleService.executeStatefulRules( ruleBase, true, message , globals, null );
+
+ ArrayList<String> destinations = getDistinations( globals );
+ assertTrue( destinations.size() == 1 );
+
+ // execute a second time. This should reuse the same session
+ message = ruleService.executeStatefulRules( ruleBase, true, message , globals, null );
+ assertTrue( "Should have added a second destination to the existing global", destinations.size() == 2 );
+ }
+
+ // Test setup methods
+
@Before
public void setup() throws RuleServiceException
{
@@ -84,4 +96,21 @@
{
return new JUnit4TestAdapter( DroolsRuleServiceUnitTest.class );
}
+
+ // private methods
+
+ @SuppressWarnings("unchecked")
+ private ArrayList<String> getDistinations( final Map<String,Object> globals )
+ {
+ 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("message", message );
+ return globals;
+ }
}
More information about the jboss-svn-commits
mailing list