private static InternalKieModule fetchKModule(URL url, String fixedURL) { if (url.getPath().endsWith("-spring.xml")) { // the entire kmodule creation is happening in the kie-spring module, // hence we force a null return fetchKModuleFromSpring(url, fixedURL); return null; } KieModuleModel kieProject = KieModuleModelImpl.fromXML(url); setDefaultsforEmptyKieModule(kieProject); String pomProperties = getPomProperties(fixedURL); if (pomProperties == null) { log.warn( "Cannot find maven pom properties for this project. Using the container's default ReleaseId"); } ReleaseId releaseId = pomProperties != null ? ReleaseIdImpl.fromPropertiesString(pomProperties) : KieServices.Factory.get().getRepository().getDefaultReleaseId(); String rootPath = fixedURL; if (rootPath.lastIndexOf(':') > 0) { rootPath = IoUtils.asSystemSpecificPath(rootPath, rootPath.lastIndexOf(':')); } return createInternalKieModule(url, fixedURL, kieProject, releaseId, rootPath); }
private void addKieBaseModels( ConfigurableListableBeanFactory beanFactory, KieModuleModelImpl kieModuleModel) { for (String beanDef : beanFactory.getBeanDefinitionNames()) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanDef); if (beanDefinition.getBeanClassName().equalsIgnoreCase(KBaseFactoryBean.class.getName())) { KieBaseModelImpl kBase = new KieBaseModelImpl(); kBase.setKModule(kieModuleModel); kBase.setName(getPropertyValue(beanDefinition, "kBaseName")); kBase.setDefault("true".equals(getPropertyValue(beanDefinition, "def"))); String packages = getPropertyValue(beanDefinition, "packages"); if (!packages.isEmpty()) { for (String pkg : packages.split(",")) { kBase.addPackage(pkg.trim()); } } String includes = getPropertyValue(beanDefinition, "includes"); if (!includes.isEmpty()) { for (String include : includes.split(",")) { kBase.addInclude(include.trim()); } } String eventMode = getPropertyValue(beanDefinition, "eventProcessingMode"); if (!eventMode.isEmpty()) { kBase.setEventProcessingMode( EventProcessingOption.determineEventProcessingMode(eventMode)); } String equalsBehavior = getPropertyValue(beanDefinition, "equalsBehavior"); if (!equalsBehavior.isEmpty()) { kBase.setEqualsBehavior(EqualityBehaviorOption.determineEqualityBehavior(equalsBehavior)); } String declarativeAgenda = getPropertyValue(beanDefinition, "declarativeAgenda"); if (!declarativeAgenda.isEmpty()) { kBase.setDeclarativeAgenda( DeclarativeAgendaOption.determineDeclarativeAgenda(declarativeAgenda)); } String scope = getPropertyValue(beanDefinition, "scope"); if (!scope.isEmpty()) { kBase.setScope(scope.trim()); } kieModuleModel.getRawKieBaseModels().put(kBase.getName(), kBase); beanDefinition .getPropertyValues() .addPropertyValue(new PropertyValue("releaseId", releaseId)); addKieSessionModels(beanFactory, kBase); } } }
private static KieModuleModel getKieModuleModelFromJar(File jar) { ZipFile zipFile = null; try { zipFile = new ZipFile(jar); ZipEntry zipEntry = zipFile.getEntry(KieModuleModelImpl.KMODULE_JAR_PATH); KieModuleModel kieModuleModel = KieModuleModelImpl.fromXML(zipFile.getInputStream(zipEntry)); setDefaultsforEmptyKieModule(kieModuleModel); return kieModuleModel; } catch (Exception e) { } finally { if (zipFile != null) { try { zipFile.close(); } catch (IOException e) { } } } return null; }