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; }
protected static void collectDeploymentDescriptors(InternalKieModule kmodule, List<DeploymentDescriptor> descriptorHierarchy) { DeploymentDescriptor descriptor = getDescriptorFromKModule(kmodule); if (descriptor != null) { descriptorHierarchy.add(descriptor); } if (kmodule.getKieDependencies() != null) { Collection<InternalKieModule> depModules = kmodule.getKieDependencies().values(); for (InternalKieModule depModule : depModules) { collectDeploymentDescriptors(depModule, descriptorHierarchy); } } }
protected static DeploymentDescriptor getDescriptorFromKModule(InternalKieModule kmodule) { DeploymentDescriptor desc = null; if (kmodule.isAvailable(DeploymentDescriptor.META_INF_LOCATION)) { byte[] content = kmodule.getBytes(DeploymentDescriptor.META_INF_LOCATION); ByteArrayInputStream input = new ByteArrayInputStream(content); try { desc = DeploymentDescriptorIO.fromXml(input); } finally { try { input.close(); } catch (IOException e) { logger.debug("Error when closing stream of kie-deployment-descriptor.xml"); } } } return desc; } }
private static RuntimeEnvironmentBuilder setupClasspathKmoduleBuilder( KieContainer kieContainer, String kbaseName, String ksessionName ) { if (StringUtils.isEmpty(kbaseName)) { KieBaseModel defaultKBaseModel = ((KieContainerImpl)kieContainer).getKieProject().getDefaultKieBaseModel(); if (defaultKBaseModel != null) { kbaseName = defaultKBaseModel.getName(); } else { kbaseName = DEFAULT_KBASE_NAME; } } InternalKieModule module = (InternalKieModule) ((KieContainerImpl)kieContainer).getKieModuleForKBase(kbaseName); if (module == null) { throw new IllegalStateException("Cannot find kbase with name " + kbaseName); } KieBase kbase = kieContainer.getKieBase(kbaseName); return getDefault() .knowledgeBase(kbase) .classLoader(kieContainer.getClassLoader()) .registerableItemsFactory(new KModuleRegisterableItemsFactory(kieContainer, ksessionName)); }
KieSessionModel ksessionModel = null; if(StringUtils.isEmpty(ksessionName)) { ksessionModel = ((KieContainerImpl)kieContainer).getKieProject().getDefaultKieSession(); if (ksessionModel == null) { ksessionName = DEFAULT_KIE_SESSION; ksessionModel = ((KieContainerImpl)kieContainer).getKieSessionModel(ksessionName); ksessionModel = ((KieContainerImpl)kieContainer).getKieSessionModel(ksessionName);
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; }
@After public void shutdown() { ((KieServicesImpl) ks).nullKieClasspathContainer(); ((KieServicesImpl) ks).nullAllContainerIds(); }
@Override public Vfs.Dir createDir(URL url) { KieModule kieModule = ((InternalKieContainer) kieContainer).getMainKieModule(); if (!(kieModule instanceof MemoryKieModule)) { throw new IllegalStateException("The classpath url (" + url + ") has an mfs protocol but the kieModule (" + kieModule + ") is not an instance of " + MemoryKieModule.class.getSimpleName() + "."); } MemoryFileSystem memoryFileSystem = ((MemoryKieModule) kieModule).getMemoryFileSystem(); Folder folder = memoryFileSystem.getFolder(url.toExternalForm().substring("mfs:/".length())); return new ReflectionsKieVfsDir(folder); }
@Test public void testClone() throws Exception { KieFileSystem clonedKieFileSystem = kieFileSystem.clone(); MemoryFileSystem clonedMfs = ( (KieFileSystemImpl) clonedKieFileSystem ).getMfs(); Collection<String> clonedFileNames = clonedMfs.getFileNames(); assertTrue( kieFileSystem != clonedKieFileSystem ); assertTrue( kieFileSystem.getMfs() != clonedMfs ); assertEquals( kieFileSystem.getMfs().getFileNames(), clonedFileNames ); } }
public Runnable getStoreArtifactRunnable(final KieModuleRepo kieModuleRepo, final String groupId, final String artifactId, final String version, final CyclicBarrier storeOperationBarrier, final CyclicBarrier threadsFinishedBarrier) { return () -> { final ReleaseIdImpl firstReleaseId = new ReleaseIdImpl(groupId, artifactId, version); final KieModule firstKieModule = mock(KieModule.class); when(firstKieModule.getReleaseId()).thenReturn(firstReleaseId); waitFor(storeOperationBarrier); kieModuleRepo.store(firstKieModule); waitFor(threadsFinishedBarrier); }; }
@Test public void testTransformUrl() { String actualPath = ClasspathKieProject.fixURLFromKProjectPath(url); Assertions.assertThat(actualPath).isEqualTo(expectedPath); } }
@Test public void testDummyResourceWithAnEncodedFileName() { final Resource dummyResource = new KieBuilderSetImpl.DummyResource( "Dummy%20Resource" ); final Resource testResource = new KieBuilderSetImpl.DummyResource( "Dummy Resource" ); assertEquals( testResource, dummyResource ); }
@After public void after() throws Exception { setFinalField(maxSizeGaCacheField, null, maxSizeGaCacheOrig); setFinalField(maxSizeGaVersionsCacheField, null, maxSizeGaVersionsCacheOrig); }
@Before public void setup() { kieFileSystem = new KieFileSystemImpl(); }
public void generatePomXML(KieFileSystem kfs, ReleaseId releaseId) { kfs.writePomXML( KieBuilderImpl.generatePomXml(releaseId) ); }
@Before public void before() throws Exception { kieModuleRepo = new KieModuleRepo(); // store the original values as we need to restore them after the test maxSizeGaCacheOrig = KieModuleRepo.MAX_SIZE_GA_CACHE; maxSizeGaVersionsCacheOrig = KieModuleRepo.MAX_SIZE_GA_VERSIONS_CACHE; maxSizeGaCacheField = KieModuleRepo.class.getDeclaredField("MAX_SIZE_GA_CACHE"); maxSizeGaVersionsCacheField = KieModuleRepo.class.getDeclaredField("MAX_SIZE_GA_VERSIONS_CACHE"); }
KieBaseModel defaultKBaseModel = ((KieContainerImpl)kieContainer).getKieProject().getDefaultKieBaseModel(); if (defaultKBaseModel != null) { kbaseName = defaultKBaseModel.getName(); InternalKieModule module = (InternalKieModule) ((KieContainerImpl)kieContainer).getKieModuleForKBase(kbaseName); if (module == null) { throw new IllegalStateException("Cannot find kbase, either it does not exist or there are multiple default kbases in kmodule.xml");
@Before public void init() { ks = KieServices.Factory.get(); ((KieServicesImpl) ks).nullKieClasspathContainer(); ((KieServicesImpl) ks).nullAllContainerIds(); }
@Test public void testDummyResourceWithWrongEncodedFileName() { final Resource dummyResource = new KieBuilderSetImpl.DummyResource("Dummy 100%"); assertEquals(dummyResource.getSourcePath(), "Dummy 100%"); }
@Before public void setUp() throws Exception { ((KieServicesImpl) KieServices.Factory.get()).nullKieClasspathContainer(); ((KieServicesImpl) KieServices.Factory.get()).nullAllContainerIds(); mbeansprop = System.getProperty( MBeansOption.PROPERTY_NAME ); System.setProperty( MBeansOption.PROPERTY_NAME, "enabled" ); }