public static List<DeploymentDescriptor> getDeploymentDescriptorHierarchy(DeploymentDescriptorManager manager, KieContainer kieContainer) { List<DeploymentDescriptor> descriptorHierarchy = new ArrayList<DeploymentDescriptor>(); if (((KieContainerImpl)kieContainer).getKieProject() instanceof KieModuleKieProject) { InternalKieModule module = ((KieModuleKieProject) ((KieContainerImpl)kieContainer).getKieProject()).getInternalKieModule(); collectDeploymentDescriptors(module, descriptorHierarchy); } // last is the default descriptor descriptorHierarchy.add(manager.getDefaultDescriptor()); return descriptorHierarchy; }
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; }
final boolean runSolver) { final InternalKieModule kieModule = (InternalKieModule) buildInfoService.getBuildInfo(kieWorkbenchModule).getKieModuleIgnoringErrors(); final org.drools.compiler.kie.builder.impl.KieProject kieProject = new KieModuleKieProject(kieModule, null); final KieContainer kieContainer = new KieContainerImpl(kieProject,
public KieContainer getKieContainer() { BuildResults results = null; //Kie classes are only available once built if (!isBuilt()) { results = build(); } else { results = new BuildResults(); results.addAllBuildMessages(convertMessages(kieBuilder.getResults().getMessages(), handles)); } //It's impossible to retrieve a KieContainer if the KieModule contains errors if (results.getErrorMessages().isEmpty()) { // Do not retrieve the KieContainer with KieServices.newKieContainer(releaseId) since this looks-up the KieModule to // create the KieContainer from KieRepository. This holds the most recent KieModule (for the ReleaseId) that was built with // kieBuilder.buildAll() which *may* be a KieModule created during asset validation and hence will lack many assets. // See https://bugzilla.redhat.com/show_bug.cgi?id=1202551 final org.kie.api.builder.KieModule kieModule = kieBuilder.getKieModule(); final ReleaseId releaseId = kieModule.getReleaseId(); final org.drools.compiler.kie.builder.impl.KieProject kieProject = new KieModuleKieProject((InternalKieModule) kieBuilder.getKieModule(), null); final KieContainer kieContainer = new KieContainerImpl(kieProject, KieServices.Factory.get().getRepository(), releaseId); return kieContainer; } else { return null; } }
@Test public void test_as_kie_wb_common_services_backend_Builder() throws Exception { final KieServices ks = KieServices.Factory.get(); final ReleaseId v100 = ks.newReleaseId("org.kie", "dmn-test", "1.0.0"); final KieModule kieModule = KieHelper.createAndDeployJar(ks, v100, wrapWithDroolsModelResource(ks, ks.getResources().newClassPathResource("0001-input-data-string.dmn", this.getClass()))); final KieContainer kieContainer = ks.newKieContainer(v100); final KieSession kieSession = kieContainer.newKieSession(); final DMNRuntime runtime = kieSession.getKieRuntime(DMNRuntime.class); Assert.assertNotNull(runtime); assertThat(runtime.getModels(), hasSize(1)); check0001_input_data_string(runtime); // the below is performed by the WB at: https://github.com/kiegroup/kie-wb-common/blob/master/kie-wb-common-services/kie-wb-common-services-backend/src/main/java/org/kie/workbench/common/services/backend/builder/core/Builder.java#L592 final KieProject kieProject = new KieModuleKieProject((InternalKieModule) kieModule, null); final KieContainer kieContainer2 = new KieContainerImpl(kieProject, ks.getRepository(), v100); final KieSession kieSession2 = kieContainer2.newKieSession(); // exhibit the issue. final DMNRuntime runtime2 = kieSession2.getKieRuntime(DMNRuntime.class); Assert.assertNotNull(runtime2); assertThat(runtime2.getModels(), hasSize(1)); check0001_input_data_string(runtime2); }
public static List<DeploymentDescriptor> getDeploymentDescriptorHierarchy(DeploymentDescriptorManager manager, KieContainer kieContainer) { List<DeploymentDescriptor> descriptorHierarchy = new ArrayList<DeploymentDescriptor>(); if (((KieContainerImpl)kieContainer).getKieProject() instanceof KieModuleKieProject) { InternalKieModule module = ((KieModuleKieProject) ((KieContainerImpl)kieContainer).getKieProject()).getInternalKieModule(); collectDeploymentDescriptors(module, descriptorHierarchy); } // last is the default descriptor descriptorHierarchy.add(manager.getDefaultDescriptor()); return descriptorHierarchy; }
@Test public void test_as_kie_wb_common_services_backend_Builder2() throws Exception { final KieServices ks = KieServices.Factory.get(); final ReleaseId v100 = ks.newReleaseId("org.kie", "dmn-test", "1.0.0"); final KieModule kieModule = KieHelper.createAndDeployJar(ks, v100, wrapWithDroolsModelResource(ks, ks.getResources().newClassPathResource("v1_2/dmn-hotcold.dmn", this.getClass()))); final KieContainer kieContainer = ks.newKieContainer(v100); final KieSession kieSession = kieContainer.newKieSession(); final DMNRuntime runtime = kieSession.getKieRuntime(DMNRuntime.class); Assert.assertNotNull(runtime); assertThat(runtime.getModels(), hasSize(1)); checkDMNHotColdDMN12WithNSScattered(runtime); // the below is performed by the WB at: https://github.com/kiegroup/kie-wb-common/blob/master/kie-wb-common-services/kie-wb-common-services-backend/src/main/java/org/kie/workbench/common/services/backend/builder/core/Builder.java#L592 final KieProject kieProject = new KieModuleKieProject((InternalKieModule) kieModule, null); final KieContainer kieContainer2 = new KieContainerImpl(kieProject, ks.getRepository(), v100); final KieSession kieSession2 = kieContainer2.newKieSession(); // exhibit the issue. final DMNRuntime runtime2 = kieSession2.getKieRuntime(DMNRuntime.class); Assert.assertNotNull(runtime2); assertThat(runtime2.getModels(), hasSize(1)); checkDMNHotColdDMN12WithNSScattered(runtime2); }
mod1.addKieDependency( mod4 ); KieModuleKieProject kProject = new KieModuleKieProject(mod1);