protected KieFileSystem createKieFileSystemWithKProject(KieServices ks) { KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel1 = kproj.newKieBaseModel("KBase-test") .setDefault(true).addPackage("*") .setEqualsBehavior(EqualityBehaviorOption.EQUALITY) .setEventProcessingMode(EventProcessingOption.STREAM); kieBaseModel1.newKieSessionModel("ksession-test").setDefault(true) .setType(KieSessionModel.KieSessionType.STATEFUL) .setClockType(ClockTypeOption.get("realtime")); KieFileSystem kfs = ks.newKieFileSystem(); kfs.writeKModuleXML(kproj.toXML()); return kfs; } }
protected List<PMMLResource> buildResourcesFromModel(PMML pmml, Miningmodel miningModel, List<PMMLResource> resourcesList, ClassLoader classLoader, KieModuleModel module) { if (resourcesList == null) { resourcesList = new ArrayList<>(); } PMMLResource resource = new PMMLResource(miningModel.getModelPackageName());//new PMMLResource(PMML_DROOLS+".mining.model_"+miningModel.getModelId()); KieBaseModel rootKieBaseModel = module.newKieBaseModel(resource.getPackageName()); rootKieBaseModel.addPackage(resource.getPackageName()); rootKieBaseModel.setDefault(true); resource.setKieBaseModel(rootKieBaseModel); resource.addRules(miningModel.getModelId(), miningModel.generateRules()); resourcesList.add(resource); getChildResources(pmml, miningModel, resourcesList, classLoader, module); return resourcesList; }
public List<PMMLResource> precompile(InputStream stream, ClassLoader classLoader, KieBaseModel rootKieBaseModel) { List<PMMLResource> resources = new ArrayList<>(); KieServices services = KieServices.Factory.get(); KieModuleModel module = services.newKieModuleModel(); this.results = new ArrayList<KnowledgeBuilderResult>(); PMML pmml = loadModel(PMML, stream); if (rootModel != null) { helper.setPack(rootModel.getModelPackageName()); KieBaseModel kbm = module.newKieBaseModel(rootModel.getModelId()); kbm.addPackage(helper.getPack()) .setDefault(true) .setEventProcessingMode(EventProcessingOption.CLOUD); PMMLResource resource = new PMMLResource(helper.getPack()); StringBuilder bldr = new StringBuilder(this.compile(pmml, classLoader));
protected KieFileSystem createKieFileSystemWithKProject(KieServices ks) { KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel1 = kproj.newKieBaseModel("defaultKieBase").setDefault(true).addPackage("*") .setEqualsBehavior( EqualityBehaviorOption.EQUALITY ) .setEventProcessingMode( EventProcessingOption.STREAM ); kieBaseModel1.newKieSessionModel("defaultKieSession").setDefault(true) .setType(KieSessionModel.KieSessionType.STATEFUL) .setClockType( ClockTypeOption.get("realtime") ) .newWorkItemHandlerModel("Log", "new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler()"); KieFileSystem kfs = ks.newKieFileSystem(); kfs.writeKModuleXML(kproj.toXML()); return kfs; }
private static KieBase readKnowledgeBase( List<InputStream> theory ) { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); KieFileSystem kfs = ks.newKieFileSystem(); for ( int j = 0; j < theory.size(); j++ ) { Resource res = ks.getResources().newInputStreamResource( theory.get( j ) ); kfs.write( RESOURCE_PATH + "source_" + j + ".drl", res ); } KieModuleModel model = ks.newKieModuleModel(); KieBaseModel kbModel = model.newKieBaseModel( DEFAULT_KIEBASE ) .setDefault( true ) .addPackage( BASE_PACK ) .setEventProcessingMode( EventProcessingOption.STREAM ); kfs.writeKModuleXML( model.toXML() ); KieBuilder kb = ks.newKieBuilder( kfs ); kb.buildAll(); if ( kb.getResults().hasMessages( Message.Level.ERROR ) ) { throw new RuntimeException( "Build Errors:\n" + kb.getResults().toString() ); } KieContainer kContainer = ks.newKieContainer( kr.getDefaultReleaseId() ); return kContainer.getKieBase(); }
protected KieFileSystem createKieFileSystemWithKProject(KieServices ks) { KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel1 = kproj.newKieBaseModel("defaultKieBase") .setDefault(true) .addPackage("*") .setEqualsBehavior( EqualityBehaviorOption.EQUALITY ) .setEventProcessingMode( EventProcessingOption.STREAM ); kieBaseModel1.newKieSessionModel("defaultKieSession") .setDefault(true) .setType(KieSessionModel.KieSessionType.STATEFUL) .setClockType( ClockTypeOption.get("realtime") ); KieFileSystem kfs = ks.newKieFileSystem(); kfs.writeKModuleXML(kproj.toXML()); return kfs; } }
private static KieBase readKnowledgeBase(List<InputStream> theory) { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); KieFileSystem kfs = ks.newKieFileSystem(); for (int j = 0; j < theory.size(); j++) { Resource res = ks.getResources().newInputStreamResource(theory.get(j)); kfs.write(RESOURCE_PATH + "source_" + j + ".drl", res); } KieModuleModel model = ks.newKieModuleModel(); KieBaseModel kbModel = model.newKieBaseModel(DEFAULT_KIEBASE) .setDefault(true) .addPackage(BASE_PACK) .setEventProcessingMode(EventProcessingOption.STREAM); kfs.writeKModuleXML(model.toXML()); KieBuilder kb = ks.newKieBuilder(kfs); kb.buildAll(); if (kb.getResults().hasMessages(Message.Level.ERROR)) { throw new RuntimeException("Build Errors:\n" + kb.getResults().toString()); } KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId()); return kContainer.getKieBase(); }
KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel1 = kproj.newKieBaseModel( KBASE1 ).setDefault( true ) .setEventProcessingMode( EventProcessingOption.STREAM ); KieSessionModel ksession1 = kieBaseModel1.newKieSessionModel( KSESSION1 ).setDefault( true ) .setType( KieSessionModel.KieSessionType.STATEFUL ) .setClockType( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );
protected KieSession getModelSession( String[] pmmlSources, boolean verbose ) { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); KieFileSystem kfs = ks.newKieFileSystem(); for ( int j = 0; j < pmmlSources.length; j++ ) { Resource res = ResourceFactory.newClassPathResource( pmmlSources[ j ] ).setResourceType( ResourceType.PMML ); kfs.write( res ); } KieModuleModel model = ks.newKieModuleModel(); model.setConfigurationProperty( "drools.propertySpecific", "ALLOWED" ); KieBaseModel kbModel = model.newKieBaseModel( DEFAULT_KIEBASE ) .setDefault( true ) .addPackage( BASE_PACK ) .setEventProcessingMode( EventProcessingOption.STREAM ) ; kfs.writeKModuleXML( model.toXML() ); KieBuilder kb = ks.newKieBuilder( kfs ); kb.buildAll(); if ( kb.getResults().hasMessages( Message.Level.ERROR ) ) { throw new RuntimeException( "Build Errors:\n" + kb.getResults().toString() ); } KieContainer kContainer = ks.newKieContainer( kr.getDefaultReleaseId() ); KieBase kieBase = kContainer.getKieBase(); setKbase( kieBase ); return kieBase.newKieSession(); }
KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel("defaultKBase") .setDefault(true) .setEventProcessingMode(EventProcessingOption.STREAM); baseModel.newKieSessionModel("defaultKSession") .setDefault(true) .setClockType(ClockTypeOption.get("pseudo"));
final KieServices ks = KieServices.Factory.get(); KieModuleModel module = ks.newKieModuleModel(); KieBaseModel baseModel = module.newKieBaseModel("defaultKBase"); baseModel.setDefault(true); baseModel.addPackage("*"); KieSessionModel sessionModel = baseModel.newKieSessionModel("defaultKSession"); sessionModel.setDefault(true); sessionModel.setType(KieSessionModel.KieSessionType.STATEFUL); sessionModel.newListenerModel(MarkingAgendaEventListener.class.getName(), ListenerModel.Kind.AGENDA_EVENT_LISTENER); sessionModel.newListenerModel(MarkingRuntimeEventListener.class.getName(), ListenerModel.Kind.RULE_RUNTIME_EVENT_LISTENER); KieSessionModel statelessSessionModel = baseModel.newKieSessionModel("defaultStatelessKSession"); statelessSessionModel.setDefault(true); statelessSessionModel.setType(KieSessionModel.KieSessionType.STATELESS); statelessSessionModel.newListenerModel(MarkingAgendaEventListener.class.getName(), ListenerModel.Kind.AGENDA_EVENT_LISTENER);
@Test public void testNotExistingInclude() throws Exception { String drl = "package org.drools.compiler.integrationtests\n" + "declare CancelFact\n" + " cancel : boolean = true\n" + "end\n" + "rule R1 when\n" + " $m : CancelFact( cancel == true )\n" + "then\n" + "end\n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/r1.drl", drl ); KieModuleModel module = ks.newKieModuleModel(); final String defaultBaseName = "defaultKBase"; KieBaseModel defaultBase = module.newKieBaseModel(defaultBaseName) .addInclude( "notExistingKB1" ) .addInclude( "notExistingKB2" ); defaultBase.setDefault(true); defaultBase.addPackage( "*" ); defaultBase.newKieSessionModel("defaultKSession").setDefault( true ); kfs.writeKModuleXML( module.toXML() ); KieBuilder kb = ks.newKieBuilder( kfs ).buildAll(); assertEquals( 2, kb.getResults().getMessages().size() ); }
final KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem(); KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel("defaultKBase") .setDefault(true) .setEventProcessingMode(EventProcessingOption.CLOUD) baseModel.newKieSessionModel("defaultKSession") .setDefault(true)
/** * Inserts a new KieModule containing single KieBase and two KieSession * instances into KieRepository. * * @return created module ReleaseId */ private ReleaseId prepareKieModule() { final KieServices ks = KieServices.Factory.get(); final ReleaseId releaseId = ks.newReleaseId("org.drools.compiler", "severalKieSessionsTest", "1.0.0"); KieModuleModel module = ks.newKieModuleModel(); KieBaseModel baseModel = module.newKieBaseModel("defaultKBase"); baseModel.setDefault(true); baseModel.addPackage("*"); baseModel.newKieSessionModel("defaultKSession").setDefault(true); KieFileSystem kfs = ks.newKieFileSystem(); kfs.writeKModuleXML(module.toXML()); kfs.generateAndWritePomXML(releaseId); kfs.write("src/main/resources/" + PACKAGE_PATH + "/" + DRL_FILE_NAME, ResourceFactory.newClassPathResource(DRL_FILE_NAME, this.getClass())); KieBuilder builder = ks.newKieBuilder(kfs).buildAll(); assertEquals(0, builder.getResults().getMessages().size()); ks.getRepository().addKieModule(builder.getKieModule()); return releaseId; }
KieModuleModel module = ks.newKieModuleModel(); KieBaseModel defaultBase = module.newKieBaseModel(defaultBaseName); defaultBase.setDefault(true); defaultBase.addPackage("*"); defaultBase.newKieSessionModel("defaultKSession").setDefault(true); KieBaseModel includingBase = module.newKieBaseModel(includingBaseName); includingBase.setDefault(false); includingBase.addInclude(defaultBaseName); includingBase.newKieSessionModel("includingKSession").setDefault(false);
KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel("defaultKBase") .setDefault(true) .setEventProcessingMode(EventProcessingOption.STREAM); baseModel.newKieSessionModel("defaultKSession") .setDefault(true) .setClockType(ClockTypeOption.get("pseudo"));
KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel("defaultKBase") .setDefault(true) .setEventProcessingMode(EventProcessingOption.STREAM); baseModel.newKieSessionModel("defaultKSession") .setDefault(true) .setClockType(ClockTypeOption.get("pseudo"));
KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel("defaultKBase") .setDefault(true) .setDeclarativeAgenda(DeclarativeAgendaOption.ENABLED); baseModel.newKieSessionModel("defaultKSession") .setDefault(true);
KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel1 = kproj.newKieBaseModel( KBASE1 ).setDefault( true ) .setEventProcessingMode( EventProcessingOption.STREAM ); KieSessionModel ksessionModel1 = kieBaseModel1.newKieSessionModel( KSESSION1 ).setDefault( true ) .setType( KieSessionModel.KieSessionType.STATEFUL ) .setClockType( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );
/** * 创建默认的kbase和stateful的kiesession * * @param ks * @param isDefault * @return */ public static KieFileSystem createKieFileSystemWithKProject(KieServices ks, boolean isDefault) { KieModuleModel kproj = ks.newKieModuleModel(); KieBaseModel kieBaseModel = kproj.newKieBaseModel("KBase").setDefault(isDefault) .setEqualsBehavior(EqualityBehaviorOption.EQUALITY).setEventProcessingMode(EventProcessingOption.STREAM); // Configure the KieSession. kieBaseModel.newKieSessionModel("KSession").setDefault(isDefault) .setType(KieSessionModel.KieSessionType.STATEFUL); KieFileSystem kfs = ks.newKieFileSystem(); kfs.writeKModuleXML(kproj.toXML()); return kfs; }