private KieBaseModelImpl getKieBaseModelImpl(String kBaseName) { KieBaseModelImpl kBaseModel = (KieBaseModelImpl) kProject.getKieBaseModel(kBaseName); if (kBaseModel == null) { throw new RuntimeException("The requested KieBase \"" + kBaseName + "\" does not exist"); } return kBaseModel; }
private boolean isFileInKBase( InternalKieModule kieModule, KieBaseModel kieBase, String fileName) { if (filterFileInKBase(kieModule, kieBase, fileName)) { return true; } for (String include : kProject.getTransitiveIncludes(kieBase)) { InternalKieModule includeModule = kProject.getKieModuleForKBase(include); if (includeModule != null && filterFileInKBase(includeModule, kProject.getKieBaseModel(include), fileName)) { return true; } } return false; }
public KieBaseModel getKieBaseModel(String kBaseName) { return kProject.getKieBaseModel(kBaseName); }
public Collection<String> getKieSessionNamesInKieBase(String kBaseName) { KieBaseModel kieBaseModel = kProject.getKieBaseModel(kBaseName); return kieBaseModel != null ? kieBaseModel.getKieSessionModels().keySet() : Collections.<String>emptySet(); }
private Results update(final InternalKieModule currentKM, final ReleaseId newReleaseId) { final InternalKieModule newKM = (InternalKieModule) kr.getKieModule(newReleaseId); ChangeSetBuilder csb = new ChangeSetBuilder(); final KieJarChangeSet cs = csb.build(currentKM, newKM); final List<String> modifiedClasses = getModifiedClasses(cs); final List<String> dslFiles = getUnchangedDslFiles(newKM, cs); ((KieModuleKieProject) kProject).updateToModule(newKM); final ResultsImpl results = new ResultsImpl(); List<String> kbasesToRemove = new ArrayList<String>(); for (Entry<String, KieBase> kBaseEntry : kBases.entrySet()) { String kbaseName = kBaseEntry.getKey(); final KieBaseModel kieBaseModel = kProject.getKieBaseModel(kbaseName); // if a kbase no longer exists, just remove it from the cache if (kieBaseModel == null) { // have to save for later removal to avoid iteration errors kbasesToRemove.add(kbaseName); } else { final InternalKnowledgeBase kBase = (InternalKnowledgeBase) kBaseEntry.getValue(); boolean locked = kBase.tryLock(); if (locked) { try { updateKBase( kBase, currentKM, newReleaseId, newKM, cs, modifiedClasses, dslFiles, results, kieBaseModel); } finally { kBase.unlock(); } } else { kBase.enqueueModification( new Runnable() { @Override public void run() { updateKBase( kBase, currentKM, newReleaseId, newKM, cs, modifiedClasses, dslFiles, results, kieBaseModel); } }); } } } for (String kbaseToRemove : kbasesToRemove) { kBases.remove(kbaseToRemove); } for (Iterator<Entry<String, KieSession>> it = this.kSessions.entrySet().iterator(); it.hasNext(); ) { Entry<String, KieSession> ksession = it.next(); if (kProject.getKieSessionModel(ksession.getKey()) == null) { // remove sessions that no longer exist it.remove(); } } for (Iterator<Entry<String, StatelessKieSession>> it = this.statelessKSessions.entrySet().iterator(); it.hasNext(); ) { Entry<String, StatelessKieSession> ksession = it.next(); if (kProject.getKieSessionModel(ksession.getKey()) == null) { // remove sessions that no longer exist it.remove(); } } return results; }