Search code examples
apidroolslegacy

Use Drools 6.0 new PHREAK algorithm by using the 5.5. legacy API


Is it possible to try out the new PHREAKS algorithm but using the conventional API from Drools 5.5

* EDIT: to make the question more precise *

conventional 5.5 API

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.Resource;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;

instead new Drools 6 API

  import org.kie.api.KieBase;
  import org.kie.api.KieBaseConfiguration;
  import org.kie.api.KieServices;
  import org.kie.api.builder.KieBuilder;
  import org.kie.api.builder.KieFileSystem;
  import org.kie.api.builder.KieScanner;
  import org.kie.api.builder.Message;
  import org.kie.api.builder.ReleaseId;
  import org.kie.api.builder.model.KieBaseModel;
  import org.kie.api.builder.model.KieModuleModel;
  import org.kie.api.builder.model.KieSessionModel;
  import org.kie.api.conf.EqualityBehaviorOption;
  import org.kie.api.conf.EventProcessingOption;
  import org.kie.api.runtime.KieContainer;
  import org.kie.api.runtime.KieSession;
  import org.kie.api.runtime.conf.ClockTypeOption;

Solution

  • It's also possible with the 5 knowledge api in drools 6.0+ by setting a rule engine property:

    drools.ruleEngine = phreak
    

    Here's how you set in the 5 knowledge api:

    knowledgeBaseConfiguration.setProperty("drools.ruleEngine", "phreak");