@Test public void injectUnitVariablesDataSourceInUnit() { final CursoredDataSource<Object> dataSource = mock(CursoredDataSource.class); final RuleUnitWithDataSource testRuleUnit = new RuleUnitWithDataSource(dataSource); final InternalRuleUnitExecutor ruleUnitExecutor = mock(InternalRuleUnitExecutor.class); factory.injectUnitVariables(ruleUnitExecutor, testRuleUnit); verify(ruleUnitExecutor).bindDataSource(dataSource); verifyNoMoreInteractions(ruleUnitExecutor); } }
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; }
((InternalRuleUnitExecutor)executor).addFileLogger(loggerFileName) : null; try { requestData.insert(request);
KieRuntimeLogger console = ((InternalRuleUnitExecutor)executor).addConsoleLogger(); console.close(); System.out.println(resultHolder); Collection<?> objects = ((InternalRuleUnitExecutor)executor).getSessionObjects(); objects.forEach(o -> {System.out.println(o);}); pmmlData.forEach(pd -> { System.out.println(pd);});
RuleUnit ruOld = ((WrappedStatefulKnowledgeSessionForRHS)helper.getKieRuntime()).getRuleUnitExecutor().getCurrentRuleUnit(); RuleUnitDescription rud = rur.getDescription(ruleUnitClassName).orElse(null); if (rud != null) {
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; }
@Test public void testSelectFirstSegmentFirst() { Resource res = ResourceFactory.newClassPathResource(source1); PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SampleMine",res,null,true); PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", "SampleMine") .addParameter("fld1", 30.0, Double.class) .addParameter("fld2", 60.0, Double.class) .addParameter("fld3", "false", String.class) .addParameter("fld4", "optA", String.class); PMMLRequestData request = rdb.build(); PMML4Result resultHolder = helper.submitRequest(request); Collection<?> objects = ((InternalRuleUnitExecutor)helper.getExecutor()).getSessionObjects(); objects.forEach(o -> {System.out.println(o);}); helper.getMiningModelPojo().forEach(mmp -> {System.out.println(mmp);}); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(),rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); assertNotNull(rd.getResultValue("Fld5", null)); String value = rd.getResultValue("Fld5", "value", String.class).orElse(null); assertEquals("tgtY",value); } }); }