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 ); }
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null, Thread.currentThread().getContextClassLoader())); kbuilder.add(ResourceFactory.newInputStreamResource(is), ResourceType.DRL); if (kbuilder.hasErrors()) throw new ConfigurationException(MessageFactory.createStaticMessage("Errors while parsing ruleset defined in file " + rulesFile + " : " + kbuilder.getErrors().toString())); KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null, Thread.currentThread().getContextClassLoader()); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(conf); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); KnowledgeRuntimeLogger droolsLogger = new WorkingMemorySLF4JLogger(session, logger); session.setGlobal("mule", messageService); session.fireAllRules();
private StatefulKnowledgeSession createSession() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("rules/SimpleRulesAndTask.drl"), ResourceType.DRL); KnowledgeBuilderErrors errors = kbuilder.getErrors(); KnowledgeBaseConfiguration kbaseConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kbaseConf.setOption(EventProcessingOption.STREAM); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConf); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession myksession = kbase.newStatefulKnowledgeSession(); HornetQHTWorkItemHandler hornetQHTWorkItemHandler = new HornetQHTWorkItemHandler(myksession); myksession.getWorkItemManager().registerWorkItemHandler("Human Task", hornetQHTWorkItemHandler); KnowledgeRuntimeLoggerFactory.newConsoleLogger(myksession); myksession.addEventListener(new DebugAgendaEventListener());
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); CompositeKnowledgeBuilder ckbuilder = kbuilder.batch(); if ( kbuilder.hasErrors() ) { throw new RuntimeException( "Unable to compile " + kBaseQualifiers[0].getName() + ":\n" + kbuilder.getErrors() ); KnowledgeBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kconf.setOption( eventProcessingMode); kconf.setOption( equalsBehaviour ); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kconf); kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() ); return kbase;
kbase = KnowledgeBaseFactory.newKnowledgeBase(); ProcessRuntimeFactory.setProcessRuntimeFactoryService(new ProcessRuntimeFactoryServiceImpl()); BPMN2ProcessFactory.setBPMN2ProcessProvider(new BPMN2ProcessProviderImpl()); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); for (File subfile: file.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".bpmn") || name.endsWith("bpmn2"); }})) { kbuilder.add(ResourceFactory.newFileResource(subfile), ResourceType.BPMN2); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); Process process = kbase.getProcess(processId); if (process == null) {
public static KnowledgeBase createKnowledgeBase(GridNode node,String resource,String resourcetype){ if ( node == null ) { node = new GridNodeImpl(); } //kbase configuration PackageBuilderConfiguration kconf = (PackageBuilderConfiguration) KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,DroolsBlueprintBean.class.getClassLoader()); //kbuilder KnowledgeBuilder kbuilder = node.get( KnowledgeBuilderFactoryService.class ).newKnowledgeBuilder( kconf); kbuilder.add(parseResource(resource),ResourceType.getResourceType(resourcetype)); // error handling KnowledgeBuilderErrors errors = kbuilder.getErrors(); if ( !errors.isEmpty() ) { throw new RuntimeException( errors.toString() ); } //KnowledgeBase KnowledgeBaseConfiguration kbaseConfig = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null, DroolsBlueprintBean.class.getClassLoader()); KnowledgeBase kbase = node.get( KnowledgeBaseFactoryService.class ).newKnowledgeBase(kbaseConfig); kbase.addKnowledgePackages( kbuilder.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(); }
public KnowledgeBase execute(Context context) { KnowledgeBase kbase = null; if ( this.kbaseConf == null ) { kbase = KnowledgeBaseFactory.newKnowledgeBase(); } else { kbase = KnowledgeBaseFactory.newKnowledgeBase( this.kbaseConf ); } return kbase; }
/** * Creates a new KnowledgeBase given the specified component implementation config. * @param cic the component implementation config * @param additionalResources any extra resources to add * @return the base */ public static KnowledgeBase newBase(ComponentImplementationConfig cic, Resource... additionalResources) { KnowledgeBaseConfiguration kbaseConfig = Configs.getBaseConfiguration(cic); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig); KnowledgeBuilderConfiguration kbuilderConfig = Configs.getBuilderConfiguration(cic); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbase, kbuilderConfig); List<Resource> resources = new ArrayList<Resource>(); resources.addAll(cic.getModel().getResources()); if (additionalResources != null) { for (Resource additionalResource : additionalResources) { if (additionalResource != null) { resources.add(additionalResource); } } } ClassLoader loader = cic.getLoader(); if (loader == null) { loader = Classes.getClassLoader(Bases.class); } for (Resource resource : resources) { Resources.add(resource, kbuilder, loader); } return kbuilder.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; }
Environment env = KnowledgeBaseFactory.newEnvironment(); env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, jpaConfiguration.getEntityManagerFactory() ); ksession = getKbase().newStatefulKnowledgeSession( getConf(), null ); ksession.execute( cmd ); ksession.addEventListener(agendaEventListener); ksession.addEventListener(processEventListener);
KnowledgeBaseConfiguration kbaseConfig = newKnowledgeBaseConfiguration(null, multiBundleClassLoader); knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig); if (globals != null) { for(Entry<String, Object> entry : globals.entrySet()) { knowledgeSession.setGlobal(entry.getKey(), entry.getValue()); if(globals != null) { for(Entry<String, Object> entry : globals.entrySet()) { knowledgeSession.setGlobal(entry.getKey(), entry.getValue());
@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 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(); }
public KnowledgeBase getKnowledgeBase() { if (this.kbase != null) { return kbase; } knownPackages = new CopyOnWriteArraySet<String>(); Properties consoleProperties = PropertyLoader.getJbpmConsoleProperties(); GuvnorConnectionUtils guvnorUtils = new GuvnorConnectionUtils(); if(guvnorUtils.guvnorExists()) { kagent = buildKnowledgeAgent(guvnorUtils); if (kagent != null) { kbase = kagent.getKnowledgeBase(); } } else { logger.warn("Could not connect to Guvnor."); } // Create a kbase if we couldn't do that with Guvnor if (kbase == null) { kbase = KnowledgeBaseFactory.newKnowledgeBase(); } // load processes from local file system addProcessesFromConsoleDirectory(kbase, consoleProperties); // add known packages for (KnowledgePackage pkg : kbase.getKnowledgePackages()) { knownPackages.add(pkg.getName()); } return kbase; }
this.kbase = KnowledgeBaseFactory.newKnowledgeBase(); KnowledgePackageImp oldPackage = (KnowledgePackageImp) this.kbase.getKnowledgePackage( newPackage.getName() ); AbstractRuleBase abstractRuleBase = (AbstractRuleBase) ((KnowledgeBaseImpl) this.kbase).ruleBase; CompositeClassLoader rootClassLoader = abstractRuleBase.getRootClassLoader();
/** * Create a KnowledgeBaseConfiguration on which properties can be set. Use * the given properties file and ClassLoader - either of which can be null. * @return * The KnowledgeBaseConfiguration. */ public static KnowledgeBaseConfiguration newKnowledgeBaseConfiguration(Properties properties, ClassLoader... classLoaders) { return getKnowledgeBaseFactoryService().newKnowledgeBaseConfiguration( properties, classLoaders ); }
public KnowledgeBaseConfiguration newKnowledgeBaseConfiguration() { return KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); }
Environment env = KnowledgeBaseFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(sessionconfigproperties); ksessionId = ksession.getId(); persistSessionId(consoleProperties.getProperty("jbpm.console.tmp.dir", System.getProperty("jboss.server.temp.dir")), ksessionId);
ClassNotFoundException { if ( config == null ) { config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); environment = KnowledgeBaseFactory.newEnvironment();