public void initializeRules() { // To ensure the plugin classloader use for dependency resolution ClassLoader orig = Thread.currentThread().getContextClassLoader(); ClassLoader loader = getClass().getClassLoader(); Thread.currentThread().setContextClassLoader( loader ); Resource ruleSet = null; if ( ruleString != null ) { ruleSet = ResourceFactory.newReaderResource( new StringReader( ruleString ) ); } else { ruleSet = ResourceFactory.newFileResource( ruleFilePath ); } kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ruleSet, ResourceType.DRL ); if ( kbuilder.hasErrors() ) { System.out.println( kbuilder.getErrors().toString() ); throw new RuntimeException( BaseMessages.getString( PKG, "RulesData.Error.CompileDRL" ) ); } Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages(); kbase = KnowledgeBaseFactory.newKnowledgeBase(); // Cache the knowledge base as its creation is intensive kbase.addKnowledgePackages( pkgs ); // reset classloader back to original Thread.currentThread().setContextClassLoader( orig ); }
private StatefulKnowledgeSession createKnowledgeSession(){ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("simpleEventAnalysis.drl"), ResourceType.DRL); if (kbuilder.hasErrors()) { for (KnowledgeBuilderError error : kbuilder.getErrors()) { System.out.println(" >>> Error:" + error.getMessage()+"\n"); } throw new IllegalStateException(">>> Knowledge couldn't be parsed! "); } KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); config.setOption(EventProcessingOption.STREAM); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(config); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); KnowledgeSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); sessionConfig.setOption( ClockTypeOption.get("realtime") ); return kbase.newStatefulKnowledgeSession(sessionConfig, null); }
public void initializeRules() { // To ensure the plugin classloader use for dependency resolution ClassLoader orig = Thread.currentThread().getContextClassLoader(); ClassLoader loader = getClass().getClassLoader(); Thread.currentThread().setContextClassLoader( loader ); Resource ruleSet = null; if ( ruleString != null ) { ruleSet = ResourceFactory.newReaderResource( new StringReader( ruleString ) ); } else { ruleSet = ResourceFactory.newFileResource( ruleFilePath ); } kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ruleSet, ResourceType.DRL ); if ( kbuilder.hasErrors() ) { System.out.println( kbuilder.getErrors().toString() ); throw new RuntimeException( BaseMessages.getString( PKG, "RulesData.Error.CompileDRL" ) ); } Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages(); kbase = KnowledgeBaseFactory.newKnowledgeBase(); // Cache the knowledge base as its creation is intensive kbase.addKnowledgePackages( pkgs ); // reset classloader back to original Thread.currentThread().setContextClassLoader( orig ); }
public KnowledgeBase execute(Context context) { KnowledgeBase kbase = null; if ( this.kbaseConf == null ) { kbase = KnowledgeBaseFactory.newKnowledgeBase(); } else { kbase = KnowledgeBaseFactory.newKnowledgeBase( this.kbaseConf ); } return kbase; }
public KnowledgeBase newKnowledgeBase(KnowledgeBaseConfiguration conf) { return KnowledgeBaseFactory.newKnowledgeBase( conf ); }
public AbstractRuleManager() { rulebase = KnowledgeBaseFactory.newKnowledgeBase(); builder = new RulebaseBuilder(rulebase, this); }
public AbstractRuleManager() { rulebase = KnowledgeBaseFactory.newKnowledgeBase(); builder = new RulebaseBuilder(rulebase, this); }
public KnowledgeBase execute(Context context) { KnowledgeBase kbase = null; KnowledgeBaseConfiguration kconf = null; if(kbaseConfId != null){ kconf = (KnowledgeBaseConfiguration) context.getContextManager().getContext( "__TEMP__" ).get(kbaseConfId); } if ( kconf == null ) { kbase = KnowledgeBaseFactory.newKnowledgeBase(); } else { kbase = KnowledgeBaseFactory.newKnowledgeBase( kconf ); } return kbase; }
public static KnowledgeAgent newKnowledgeAgent(String name, KnowledgeAgentConfiguration configuration) { return getKnowledgeAgentProvider().newKnowledgeAgent( name, KnowledgeBaseFactory.newKnowledgeBase(), configuration ); }
public static KnowledgeAgent newKnowledgeAgent(String name, KnowledgeAgentConfiguration configuration) { return getKnowledgeAgentProvider().newKnowledgeAgent( name, KnowledgeBaseFactory.newKnowledgeBase(), configuration ); }
public static KnowledgeAgent newKnowledgeAgent(String name) { return getKnowledgeAgentProvider().newKnowledgeAgent( name, KnowledgeBaseFactory.newKnowledgeBase() ); }
public static KnowledgeAgent newKnowledgeAgent(String name) { return getKnowledgeAgentProvider().newKnowledgeAgent( name, KnowledgeBaseFactory.newKnowledgeBase() ); }
public KnowledgeBase newKnowledgeBase() { KnowledgeBuilderErrors errors = getErrors(); if (errors.size() > 0) { for (KnowledgeBuilderError error: errors) { logger.error(error.toString()); } throw new IllegalArgumentException("Could not parse knowledge."); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(getKnowledgePackages()); return kbase; }
/** * Creates a Drools KnowledgePackage from a Resource. * @param res the Resource * @param loader the ClassLoader to use * @return the KnowledgePackage */ public static KnowledgePackage create(Resource res, ClassLoader loader) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); Resources.add(res, kbuilder, loader); Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages(); KnowledgeBaseFactory.newKnowledgeBase().addKnowledgePackages(kpkgs); return kpkgs.iterator().next(); }
private StatelessKnowledgeSession createStatelessSession(){ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("good_old_patterns/car-pricing-rules.drl"), ResourceType.DRL); if (kbuilder.hasErrors()) { for (KnowledgeBuilderError error : kbuilder.getErrors()) { System.out.println(">>> Error:" + error.getMessage()); } throw new IllegalStateException(">>> Knowledge couldn't be parsed! "); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); return kbase.newStatelessKnowledgeSession(); }
private StatelessKnowledgeSession createStatelessSession(){ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("good_old_patterns/car-ranking-rules.drl"), ResourceType.DRL); if (kbuilder.hasErrors()) { for (KnowledgeBuilderError error : kbuilder.getErrors()) { System.out.println(">>> Error:" + error.getMessage()); } throw new IllegalStateException(">>> Knowledge couldn't be parsed! "); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); return kbase.newStatelessKnowledgeSession(); }
private static StatelessKnowledgeSession createStatelessSession(String rules){ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource(rules), ResourceType.DRL); if (kbuilder.hasErrors()) { for (KnowledgeBuilderError error : kbuilder.getErrors()) { System.out.println(">>> Error:" + error.getMessage()); } throw new IllegalStateException(">>> Knowledge couldn't be parsed! "); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); return kbase.newStatelessKnowledgeSession(); }
@Test(expected=UnsupportedOperationException.class) public void testGetSessionByBusinessKey() { SessionManager manager = new MVELSingleSessionManager(KnowledgeBaseFactory.newKnowledgeBase()); manager.getSession("businesskey"); } }
@Test public void testGetSession() { SessionManager manager = new MVELSingleSessionManager(KnowledgeBaseFactory.newKnowledgeBase()); StatefulKnowledgeSession session = manager.getSession(); assertNotNull(session); assertEquals(2, session.getAgendaEventListeners().size()); assertEquals(1, session.getProcessEventListeners().size()); assertEquals(0, session.getWorkingMemoryEventListeners().size()); }
@Test public void testLoadDefaultSessionFromTemplate() { MVELSingleSessionManager manager = new MVELSingleSessionManager(KnowledgeBaseFactory.newKnowledgeBase()); SessionTemplate template = manager.loadSessionTemplate(); assertNotNull(template); assertNotNull(template); assertEquals("jbpmConsole", template.getBusinessKey()); assertEquals("org.jbpm.persistence.jpa", template.getPersistenceUnit()); assertFalse(template.isImported()); assertEquals(2, template.getProperties().size()); assertEquals(2, template.getWorkItemHandlers().size()); assertEquals(2, template.getEventListeners().size()); StatefulKnowledgeSession session = manager.loadSessionFromTemplate(template, KnowledgeBaseFactory.newKnowledgeBase()); assertNotNull(session); assertEquals(2, session.getAgendaEventListeners().size()); assertEquals(1, session.getProcessEventListeners().size()); assertEquals(0, session.getWorkingMemoryEventListeners().size()); }