RuleUnitExecutor executor = RuleUnitExecutor.create().bind( kbase ); DataSource<MasterModel> masterModels = executor.newDataSource("models"); DataSource<ApplicableModel> applicableModels = executor.newDataSource("applicableModel"); FactHandle masterFH = masterModels.insert( master ); RuleUnit unit = new MasterModelUnit(masterModels,applicableModels);
requestData = executor.newDataSource("request"); resultData = executor.newDataSource("results"); pmmlData = executor.newDataSource("pmmlData"); String startingRuleName = "RuleUnitIndicator"; if (includeMiningDataSources) { childModelSegments = executor.newDataSource("childModelSegments"); miningModelPojo = executor.newDataSource("miningModelPojo"); startingRuleName = "Start Mining - " + modelName; Map<String,DataSource<? extends Object>> tmpMap = new HashMap<>(); for (String key: externalDataSources.keySet()) { DataSource<? extends Object> ds = executor.newDataSource(key); tmpMap.put(key, ds);
private PMML4Result run(PMMLRequestData requestData, Optional<PMML4Data> data) { KieRuntimeLogger logger = null; RuleUnitExecutor ruleUnitExecutor = RuleUnitExecutor.create().bind(kieBase); if (runWithLogging) { if (loggingFileName != null) { logger = ((InternalRuleUnitExecutor)ruleUnitExecutor).addFileLogger(loggingFileName); } else { logger = ((InternalRuleUnitExecutor)ruleUnitExecutor).addConsoleLogger(); } } DataSource<PMMLRequestData> requestDataSource = ruleUnitExecutor.newDataSource("request");; DataSource<PMML4Result> resultDataSource = ruleUnitExecutor.newDataSource("results"); DataSource<PMML4Data> pmmlDataSource = ruleUnitExecutor.newDataSource("pmmlData"); requestDataSource.insert(requestData); PMML4Result resultHandler = new PMML4Result(); resultDataSource.insert(resultHandler); if (data.isPresent()) { pmmlDataSource.insert(data.get()); } try { ruleUnitExecutor.run(startingRuleUnit("RuleUnitIndicator", requestData.getModelName(), "org.drools.scorecards.example")); } finally { if (logger != null) { logger.close(); } } return resultHandler; }
protected RuleUnitExecutor createExecutor(String sourceName) { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); ReleaseId releaseId = new ReleaseIdImpl("org.kie:pmmlTest:1.0-SNAPSHOT"); ((KieRepositoryImpl) kr).setDefaultGAV(releaseId); Resource res = ResourceFactory.newClassPathResource(sourceName); kbase = new KieHelper().addResource(res, ResourceType.PMML).build(); assertNotNull(kbase); RuleUnitExecutor executor = RuleUnitExecutor.create().bind(kbase); KieContainer kc = ((KnowledgeBaseImpl) ((InternalRuleUnitExecutor) executor).getKieSession().getKieBase()).getKieContainer(); InternalKieModule ikm = (InternalKieModule) kr.getKieModule(releaseId); try (FileOutputStream fos = new FileOutputStream("/tmp/outputModule.jar")) { fos.write(ikm.getBytes()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } kc.getKieBaseNames().forEach(n -> { System.out.println(n); }); data = executor.newDataSource("request"); resultData = executor.newDataSource("results"); pmmlData = executor.newDataSource("pmmlData"); return executor; }
requests[x] = executor[x].newDataSource("request"); results[x] = executor[x].newDataSource("results"); pmmlDatas[x] = executor[x].newDataSource("pmmlData"); resultHolder[x] = new PMML4Result(requestData[x].getCorrelationId());
requestData.addRequestParam(new ParameterInfo<>("123","fld3", String.class, "miss")); PMML4Result resultHolder = new PMML4Result(); DataSource<PMMLRequestData> data = executor.newDataSource("request"); DataSource<PMML4Result> results = executor.newDataSource("results"); DataSource<PMML4Data> pmmlData = executor.newDataSource("pmmlData");
RuleUnitExecutor executor = RuleUnitExecutor.create().bind(kbase); DataSource<PMMLRequestData> data = executor.newDataSource("request"); DataSource<PMML4Result> resultData = executor.newDataSource("results"); DataSource<PMML4Data> pmmlData = executor.newDataSource("pmmlData"); DataSource<ApplicantAttribute> applicantData = executor.newDataSource("externalBeanApplicantAttribute");
RuleUnitExecutor executor = RuleUnitExecutor.create().bind(kbase); DataSource<PMMLRequestData> data = executor.newDataSource("request"); DataSource<PMML4Result> resultData = executor.newDataSource("results"); DataSource<PMML4Data> pmmlData = executor.newDataSource("pmmlData"); DataSource<ApplicantAttribute> applicantData = executor.newDataSource("externalBeanApplicantAttribute");