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); } } }
protected void indexParts( Collection<InternalKieModule> kieModules, Map<String, InternalKieModule> kJarFromKBaseName) { for (InternalKieModule kJar : kieModules) { KieModuleModel kieProject = kJar.getKieModuleModel(); for (KieBaseModel kieBaseModel : kieProject.getKieBaseModels().values()) { if (kieBaseModel.isDefault()) { if (defaultKieBase == null) { defaultKieBase = kieBaseModel; } else { defaultKieBase = null; log.warn( "Found more than one default KieBase: disabling all. KieBases will be accessible only by name"); } } kBaseModels.put(kieBaseModel.getName(), kieBaseModel); ((KieBaseModelImpl) kieBaseModel) .setKModule(kieProject); // should already be set, but just in case kJarFromKBaseName.put(kieBaseModel.getName(), kJar); for (KieSessionModel kieSessionModel : kieBaseModel.getKieSessionModels().values()) { if (kieSessionModel.isDefault()) { if (kieSessionModel.getType() == KieSessionModel.KieSessionType.STATEFUL) { if (defaultKieSession == null) { defaultKieSession = kieSessionModel; } else { defaultKieSession = null; log.warn( "Found more than one default KieSession: disabling all. KieSessions will be accessible only by name"); } } else { if (defaultStatelessKieSession == null) { defaultStatelessKieSession = kieSessionModel; } else { defaultStatelessKieSession = null; log.warn( "Found more than one default StatelessKieSession: disabling all. StatelessKieSessions will be accessible only by name"); } } } ((KieSessionModelImpl) kieSessionModel) .setKBase(kieBaseModel); // should already be set, but just in case kSessionModels.put(kieSessionModel.getName(), kieSessionModel); } } } }