private static KieContainerImpl createMockKieContainer(final ReleaseId projectReleaseId, final KieModuleRepo kieModuleRepo) throws Exception { // kie module final InternalKieModule mockKieProjectKieModule = mock(InternalKieModule.class); final ResourceProvider mockKieProjectKieModuleResourceProvider = mock(ResourceProvider.class); when(mockKieProjectKieModule.createResourceProvider()).thenReturn(mockKieProjectKieModuleResourceProvider); // kie project final KieModuleKieProject kieProject = new KieModuleKieProject(mockKieProjectKieModule); final KieModuleKieProject mockKieProject = spy(kieProject); doNothing().when(mockKieProject).init(); doReturn(projectReleaseId).when(mockKieProject).getGAV(); doReturn( new HashMap<String, KieBaseModel>() ).when( mockKieProject ).updateToModule( any( InternalKieModule.class ) ); // kie repository final KieRepository kieRepository = new KieRepositoryImpl(); final Field kieModuleRepoField = KieRepositoryImpl.class.getDeclaredField("kieModuleRepo"); kieModuleRepoField.setAccessible(true); kieModuleRepoField.set(kieRepository, kieModuleRepo); kieModuleRepoField.setAccessible(false); // kie container final KieContainerImpl kieContainerImpl = new KieContainerImpl(mockKieProject, kieRepository); return kieContainerImpl; }
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; }