[jboss-svn-commits] JBL Code SVN: r30477 - labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Dec 4 12:29:24 EST 2009
Author: kevin.conner at jboss.com
Date: 2009-12-04 12:29:24 -0500 (Fri, 04 Dec 2009)
New Revision: 30477
Modified:
labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelper.java
labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
Log:
Fix RuleAgent shutdown: JBESB-3011
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelper.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelper.java 2009-12-04 16:19:12 UTC (rev 30476)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleBaseHelper.java 2009-12-04 17:29:24 UTC (rev 30477)
@@ -209,19 +209,6 @@
/**
* This shows how rules are loaded up from a deployed package.
*/
- public RuleBase loadRuleBaseFromRuleAgent(final String ruleAgentProperties) throws IOException, Exception
- {
- return RuleAgent.newRuleAgent( "/" + ruleAgentProperties, new LogAgentEventListener() ).getRuleBase();
- }
-
- public RuleBase loadRuleBaseFromRuleAgent(final Properties ruleAgentProperties) throws IOException, Exception
- {
- return RuleAgent.newRuleAgent( ruleAgentProperties, new LogAgentEventListener() ).getRuleBase();
- }
-
- /**
- * This shows how rules are loaded up from a deployed package.
- */
public RuleAgent createRuleAgent(final String ruleAgentProperties) throws IOException, Exception
{
return RuleAgent.newRuleAgent( "/" + ruleAgentProperties, new LogAgentEventListener() );
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2009-12-04 16:19:12 UTC (rev 30476)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2009-12-04 17:29:24 UTC (rev 30477)
@@ -46,6 +46,7 @@
import org.jboss.soa.esb.lifecycle.LifecycleResource;
import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
import org.jboss.soa.esb.lifecycle.LifecycleResourceFactory;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.services.rules.RuleInfo;
import org.jboss.soa.esb.services.rules.RuleService;
@@ -808,13 +809,28 @@
RuleAgent ruleAgent = ruleAgents.get( ruleAgentProperties );
if ( ruleAgent == null )
{
- ruleAgent = DroolsRuleBaseHelper.getInstance().createRuleAgent( ruleAgentProperties );
- ruleAgents.put( ruleAgentProperties, ruleAgent );
+ synchronized (ruleAgents)
+ {
+ ruleAgent = ruleAgents.get( ruleAgentProperties );
+ if (ruleAgent == null)
+ {
+ ruleAgent = DroolsRuleBaseHelper.getInstance().createRuleAgent( ruleAgentProperties );
+ ruleAgents.put( ruleAgentProperties, ruleAgent );
+ }
+ }
}
RuleBase currentRuleBase = ruleAgent.getRuleBase();
// always update the cache as the rulebase might have been updated.
- getCachedRuleBases().put( ruleAgentProperties, currentRuleBase );
+ final RuleBase origRuleBase = getCachedRuleBases().put( ruleAgentProperties, currentRuleBase );
+ if ((origRuleBase != currentRuleBase) && (origRuleBase != null))
+ {
+ if (log.isInfoEnabled())
+ {
+ log.info("destroying stateful session for " + LifecycleResourceManager.getSingleton().getIdentity());
+ }
+ disposeStatefulSessions(origRuleBase.getStatefulSessions()) ;
+ }
return currentRuleBase;
}
@@ -868,7 +884,10 @@
final Collection<RuleBase> values = resource.values();
for (RuleBase ruleBase : values)
{
- log.info("destroying stateful session for " + lifecycleIdentity);
+ if (log.isInfoEnabled())
+ {
+ log.info("destroying stateful session for " + lifecycleIdentity);
+ }
disposeStatefulSessions(ruleBase.getStatefulSessions());
}
resource.clear();
@@ -923,8 +942,12 @@
final Collection<RuleAgent> values = resource.values();
for (RuleAgent ruleAgent : values)
{
- log.info("destroying stateful session for " + lifecycleIdentity);
+ if (log.isInfoEnabled())
+ {
+ log.info("destroying stateful session for " + lifecycleIdentity);
+ }
disposeStatefulSessions(ruleAgent.getRuleBase().getStatefulSessions());
+ ruleAgent.stopPolling() ;
}
resource.clear();
}
More information about the jboss-svn-commits
mailing list