[jboss-jira] [JBoss JIRA] (JBRULES-2700) Allow setting a global variable (for example a service) which can be used by the score rules

Henrik Saksela (JIRA) jira-events at lists.jboss.org
Fri Aug 17 08:48:15 EDT 2012


    [ https://issues.jboss.org/browse/JBRULES-2700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712212#comment-12712212 ] 

Henrik Saksela commented on JBRULES-2700:
-----------------------------------------

Yeah I noticed the part about creating new WMs between phases; my first attempt att solving this crudely injected the globals into the initial WM which worked until the first phase ended.. Overriding the WM creation in RuleBase worked, but it wasn't a very elegant solution :)

Still, if the globals were notified 1) at the beginning / end of solve() at this point, 2) at the beginning / end of any spawned threads in the future, they could take care of the their own thread safety using threadlocals. Of course, as long as planner isn't multithreaded I can just implement the thread-specific stuff outside solver..
                
> Allow setting a global variable (for example a service) which can be used by the score rules
> --------------------------------------------------------------------------------------------
>
>                 Key: JBRULES-2700
>                 URL: https://issues.jboss.org/browse/JBRULES-2700
>             Project: Drools
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: drools-planner
>            Reporter: Wouter Horré
>            Assignee: Geoffrey De Smet
>
> Currently, it is not possible to set a global variable in the working memory used by the solver. If a scoring rule needs an external helper for calculating scores (e.g. a dependency injected with OSGi DS), a workaround using a static variable in some class accessible by the scoring rules is needed.
> The easiest implementation is probably a new method in the Solver interface: // Impossible
> public WorkingMemory getWorkingMemory();
> which provides access to the working memory used by the solver.
> => Impossible because the number of WorkingMemory equals the number of threads being used by Planner, and sometimes they are reset.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jboss-jira mailing list