Hi,

 

I am upgrading our application from Drools 4.0.7 to 5.0.0.SNAPSHOT (using JDK 1.6)

I have noticed that RuleServiceProvider.createRuleExecutionSet requires a org.drools.rule.Package instead of a KnowledgePackage. If I use a KnowledgePackage the following exception is thrown:

 

RuleException(javax.rules.admin.RuleExecutionSetCreateException:  Incoming AST object must be an org.drools.rule.Package.  Was class org.drools.definitions.impl.KnowledgePackageImp), root cause(null)

      at org.drools.jsr94.rules.admin.LocalRuleExecutionSetProviderImpl.createRuleExecutionSet(LocalRuleExecutionSetProviderImpl.java:211)

 

To get rid of the exception I have to cast org.drools.definitions.impl.KnowledgePackageImp  to KnowledgePackage.

Maybe org.drools.jsr94.rules.admin.LocalRuleExecutionSetProviderImpl.createRuleExecutionSet should also look for a KnowledgePackage?

 

Am I doing something wrong?

Below is a code snippet of what I am doing:

 

        KnowledgePackage binPkg = (KnowledgePackage) brmsRepository.loadRuleSet(uuid).getCompiledRuleSetObject();

        // Drools JSR-94 requires a org.drools.rule.Package

        org.drools.rule.Package pkg = ((org.drools.definitions.impl.KnowledgePackageImp) binPkg).pkg;

 

        String RULE_SERVICE_PROVIDER = "http://drools.org/";

        String RULE_URI = "MyPackage";

 

        RuleServiceProviderManager.registerRuleServiceProvider(RULE_SERVICE_PROVIDER, RuleServiceProviderImpl.class);

        RuleServiceProvider ruleServiceProvider = RuleServiceProviderManager.getRuleServiceProvider(RULE_SERVICE_PROVIDER);

        RuleAdministrator ruleAdministrator = ruleServiceProvider.getRuleAdministrator();

        LocalRuleExecutionSetProvider ruleSetProvider = ruleAdministrator.getLocalRuleExecutionSetProvider(null);

 

Here an exception is thrown for a KnowledgePackage

        // Drools JSR-94 requires a org.drools.rule.Package – Exception thrown if it is a KnowledgePackage

        RuleExecutionSet ruleExecutionSet = ruleSetProvider.createRuleExecutionSet(pkg, null);

       

        Etc…

 

Thanks,

 

Len

 

 

Len Carlsen

Student Systems
The University of British Columbia