protected StatefulKnowledgeSession initNewKnowledgeSession() { StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); for ( int i = 0; i < columnList.length; i++ ) { session.insert( columnList[i] ); } session.fireAllRules(); return session; }
public void execute() throws Exception { if ( kbase != null ) { StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); for ( Row row : rowList ) { session.insert( row ); } session.fireAllRules(); Collection<Object> oList = session.getObjects( new ObjectFilter() { @Override public boolean accept( Object o ) { if ( o instanceof Row && !( (Row) o ).isExternalSource() ) { return true; } return false; } } ); for ( Object o : oList ) { resultList.add( (Row) o ); } session.dispose(); } }
public StatefulKnowledgeSession execute(Context context) { KnowledgeBase kbase = ((KnowledgeCommandContext) context).getKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession( this.ksessionConf, environment ); return ksession; }
/** * Create a new working memory for a given rule base. */ protected void createWorkingMemory() { debug("WorkingMemory[<name>] Create the KnowledgeSession"); knowledgeSession = knowledgeBase.newStatefulKnowledgeSession(); }
@Inject public void init() { if (getSecurityRules() != null) { setSecurityContext(getSecurityRules().newStatefulKnowledgeSession()); //getSecurityContext().setGlobalResolver(new SeamGlobalResolver(getSecurityContext().getGlobalResolver())); } }
public static CommandExecutor createKnowledgeSession(KnowledgeBase kbase,GridNode node,String type,String name){ CommandExecutor ksession; if (type.equals("stateful")) { //Adding a configuration forces drools to use the current classloader (see issue SM-2316) ksession = kbase.newStatefulKnowledgeSession(new SessionConfiguration(), null); }else { //Adding a configuration forces drools to use the current classloader (see issue SM-2316) ksession = kbase.newStatelessKnowledgeSession(new SessionConfiguration()); } node.set(name,ksession); return ksession; }
public static final void main(String[] args) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("ex03_greetings.bpmn"), ResourceType.BPMN2); kbuilder.add(ResourceFactory.newClassPathResource("ex03_greetings.drl"), ResourceType.DRL); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); //KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newConsoleLogger(ksession); HashMap<String, Object> params = new HashMap<String, Object>(); params.put("hourOfDay", new Hour(new Random().nextInt(24))); ksession.startProcess("com.wordpress.salaboy.bpmn2.greetings",params); ksession.fireAllRules(); //logger.close(); ksession.dispose(); } }
@Test public void testUsingNullConfiguration() { String str = "global java.util.List list\n" + "\n" + "rule R\n" + "when\n" + " $i : Integer( ) from list\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(null, null); }
@Test public void testConsequenceException() { // BZ-1077834 String str = "package foo.bar\n" + "rule R\n" + "when\n" + "then\n" + " throw new RuntimeException(\"foo\");" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); try { ksession.fireAllRules(); } catch( org.drools.runtime.rule.ConsequenceException e ) { // this is correct, succeeds } catch( Exception other) { fail("Wrong exception raised = "+other.getClass().getCanonicalName()); } }
public static final void main(String[] args) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("ex01_helloBPM.bpmn"), ResourceType.BPMN2); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.startProcess("com.wordpress.salaboy.bpmn2.hello"); ksession.dispose(); } }
@Test public void testNullValueInFrom() { // DROOLS-71 String str = "global java.util.List list\n" + "\n" + "rule R\n" + "when\n" + " $i : Integer( ) from list\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); List<Integer> list = new ArrayList<Integer>(); ksession.setGlobal("list", list); list.add(1); list.add(null); list.add(2); ksession.fireAllRules(); }
@Test public void testNotExistingEntryPoint() { // BZ-1099767 String str = "package foo.bar\n" + "rule R\n" + "when\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); WorkingMemoryEntryPoint entryPoint = ksession.getWorkingMemoryEntryPoint("x"); assertNull(entryPoint); }
@Test public void testNotExistingFactHandle() { // BZ-1119731 String str = "package foo.bar\n" + "rule R\n" + "when\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); FactHandle handle = ksession.getFactHandle("fact"); assertNull(handle); }
private void rewriteBundleList(BundleList bundleList) throws MojoExecutionException { if (rewriteRuleFiles != null) { KnowledgeBase knowledgeBase = createKnowledgeBase(rewriteRuleFiles); StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession(); try { session.setGlobal("mavenSession", mavenSession); session.setGlobal("mavenProject", project); session.insert(bundleList); session.fireAllRules(); } finally { session.dispose(); } } }
@Test public void testConsequenceException2() { // BZ-1077834 String str = "package foo.bar\n" + "rule R\n" + "when\n" + "then\n" + " throw new RuntimeException(\"foo\");" + "end"; KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes(Charset.forName("UTF-8"))), ResourceType.DRL); if (kbuilder.hasErrors()) { throw new RuntimeException("Drools compile errors: " + kbuilder.getErrors().toString()); } KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); try { ksession.fireAllRules(); } catch (org.drools.runtime.rule.ConsequenceException e) { // this is correct, succeeds } catch (Exception other) { fail("Wrong exception raised = " + other.getClass().getCanonicalName()); } }
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 StatefulKnowledgeSession execute(Context context) { KnowledgeSessionConfiguration kconf = null; if ( ksessionConfId != null ) { kconf = (KnowledgeSessionConfiguration) context.getContextManager().getContext( "__TEMP__" ).get( ksessionConfId ); } KnowledgeAgent agent = (KnowledgeAgent) context.getContextManager().getContext( "__TEMP__" ).get( kbaseKagentId + "_kAgent" ); if( agent != null ) { StatefulKnowledgeSession knowledgeSession = agent.getKnowledgeBase().newStatefulKnowledgeSession( kconf, environment ); GridNode gnode = (GridNode) context.get( "grid_node" ); knowledgeSession.setGlobal( "grid", gnode.getGrid() ); return knowledgeSession; } return null; }
@Test public void testBrl() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource( "BrlRule.package", getClass() ), ResourceType.DRL ); kbuilder.add( ResourceFactory.newClassPathResource( "BrlRule.brl", getClass() ), ResourceType.BRL ); // the compiled package KnowledgeBase kbase = kbuilder.newKnowledgeBase(); kbase = SerializationHelper.serializeObject( kbase ); StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); session.insert( new Person( "Bob" ) ); assertEquals( 1, session.getObjects().size() ); session.fireAllRules(); // should have fired assertEquals( 0, session.getObjects().size() ); }
@Test public void testUsingSessionClock() { //BZ-1058687 String str = "global java.util.List list\n" + "\n" + "rule R\n" + "when\n" + " $i : Integer( ) from list\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); KnowledgeSessionConfiguration ksconfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); ksconfig.setOption(ClockTypeOption.get("pseudo")); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(ksconfig, null); // compilation fails on Java 6 SessionPseudoClock clock = ksession.getSessionClock(); }
@Test public void localNodeTest() { Grid grid = new GridImpl( new HashMap<String, Object>() ); GridPeerConfiguration conf = new GridPeerConfiguration(); GridPeerServiceConfiguration wpconf = new WhitePagesLocalConfiguration(); conf.addConfiguration( wpconf ); conf.configure( grid ); GridNode gnode = grid.createGridNode( "n1" ); KnowledgeBuilder kbuilder = gnode.get( KnowledgeBuilderFactoryService.class ).newKnowledgeBuilder(); assertNotNull( kbuilder ); KnowledgeBase kbase = gnode.get( KnowledgeBaseFactoryService.class ).newKnowledgeBase(); assertNotNull( kbase ); StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); assertNotNull( session ); WhitePages wp = grid.get( WhitePages.class ); GridServiceDescription gsd = wp.lookup( "n1" ); assertNotNull(gsd); assertEquals( 0, gsd.getAddresses().size() ); GridNode gnode1 = grid.getGridNode( gsd.getId() ); assertNotNull( gnode1 ); grid.removeGridNode( gsd.getId() ); assertNull( wp.lookup( "n1" ) ); assertNull( grid.getGridNode( gsd.getId() ) ); grid.dispose(); // node has been removed, so disposal should not affect it assertFalse( gnode.isDisposed() ); gnode.dispose(); assertTrue( gnode.isDisposed() ); }