[jboss-jira] [JBoss JIRA] Created: (JBRULES-1721) Provide a way to make the BRMS part of guvnor usable from the JSR-94 implementation.

Rainer Langbehn (JIRA) jira-events at lists.jboss.org
Thu Aug 7 17:29:50 EDT 2008


Provide a way to make the BRMS part of guvnor usable from the JSR-94 implementation.
------------------------------------------------------------------------------------

                 Key: JBRULES-1721
                 URL: https://jira.jboss.org/jira/browse/JBRULES-1721
             Project: JBoss Drools
          Issue Type: Patch
      Security Level: Public (Everyone can see)
          Components: JSR94
    Affects Versions: 5.0.0.M1, 4.0.7, 4.0.8,  5.0.0.M2, FUTURE
            Reporter: Rainer Langbehn
            Assignee: Mark Proctor
             Fix For: 4.0.8,  5.0.0.M2, FUTURE, 5.0.0.M1, 4.0.7


The current JSR-94 implementation unnecessarily limits itself to only make use of a simple map based repository for rule execution sets.
It would be much more powerful if one could provide its own implementation of the rule execution set repository. Exactly this is the intend
of the supplied patch. For short the supplied patch works as follows

  - provides a RuleExecutionSetRepository interface
  - provides a default implementation of the above interface (with the same behaviour as the current implementation)
  - consequently pass the provided properties map to the RuleExecutionSetRepository where possible to support e.g.
    authentication and authorization
  - provides a RuleExecutionSetRepositoryLoader to resolve the RuleExecutionSetRepository implementation to be
    used using the following algorithm

      1. If a resource with the name of META-INF/services/org.drools.jsr94.rules.repository.RuleExecutionSetRepository exists,
          then its first line, if present, is used as the UTF-8 encoded name of the implementation class.

      2. If the drools.properties file exists in the classpath and it is readable by the java.util.Properties.load(InputStream) method
          and it contains an entry whose key is org.drools.jsr94.rules.repository.RuleExecutionSetRepository, then the value of that
          entry is used as the name of the implementation class.

      3. If a system property with the name org.drools.jsr94.rules.repository.RuleExecutionSetRepository is defined, then its value
          is used as the name of the implementation class.
 
      4. Finally, a default implementation class name, if provided, is used.

'Cause I didn't want to change the dependencies of the drools-jsr94 project and to "pollute" it e.g. with dependencies to drools-repository
and jackrabbit the attached patch only provides the default implementation of the RuleExecutionSetRepository interface.  An implementation
that makes use of the BRMS part of guvnor will shortly be made available through the "Rules Framework" project @ SourceForge, see
http://sourceforge.net/projects/rules/ for more information. This can be changed in the future.

FYI, the default behaviour of the supplied patch is the same as the current implementation.

The attached patch drools-jsr94-4.0.7.19894.GA.patch is supposed to work with the 4.0.x line of drools from version 4.0.7 upwards,
and the attached patch drools-jsr94-trunk.patch is supposed to work with the 5.0.x line of drools.

STATUS:
  - all existing unit tests for drools-jsr94 passed with the applied patch
  - the RuleExecutionRepositoryLoader lacks the processing of the drools.properties file
  - unit tests for the patch are still missing

For a short discussion of this issue see also #JBRULES-1273.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list