diff --git a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/AbstractKieModule.java b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/AbstractKieModule.java index 9338c2c6b1c..2529725c7d6 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/AbstractKieModule.java +++ b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/AbstractKieModule.java @@ -182,6 +182,7 @@ static KnowledgeBuilder buildKnowledgePackages( KieBaseModelImpl kBaseModel, Map assets = new HashMap(); + boolean allIncludesAreValid = true; for (String include : getTransitiveIncludes(kieProject, kBaseModel)) { if (StringUtils.isEmpty(include)) { continue; @@ -191,16 +192,17 @@ static KnowledgeBuilder buildKnowledgePackages( KieBaseModelImpl kBaseModel, String text = "Unable to build KieBase, could not find include: " + include; log.error(text); messages.addMessage(Message.Level.ERROR, KieModuleModelImpl.KMODULE_SRC_PATH, text); - return null; + allIncludesAreValid = false; + continue; } - addFiles(assets, - kieProject.getKieBaseModel(include), - includeModule); + addFiles( assets, kieProject.getKieBaseModel(include), includeModule ); + } + + if (!allIncludesAreValid) { + return null; } - addFiles(assets, - kBaseModel, - kModule); + addFiles( assets, kBaseModel, kModule ); if (assets.isEmpty()) { if (kModule instanceof FileKieModule) { diff --git a/drools-compiler/src/test/java/org/drools/compiler/builder/KieBuilderTest.java b/drools-compiler/src/test/java/org/drools/compiler/builder/KieBuilderTest.java index 8d664021147..af616e3abd0 100644 --- a/drools-compiler/src/test/java/org/drools/compiler/builder/KieBuilderTest.java +++ b/drools-compiler/src/test/java/org/drools/compiler/builder/KieBuilderTest.java @@ -28,7 +28,6 @@ import org.kie.api.builder.model.KieModuleModel; import org.kie.api.conf.EqualityBehaviorOption; import org.kie.api.conf.EventProcessingOption; -import org.kie.api.definition.type.FactType; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; @@ -152,14 +151,16 @@ public void testNotExistingInclude() throws Exception { KieModuleModel module = ks.newKieModuleModel(); final String defaultBaseName = "defaultKBase"; - KieBaseModel defaultBase = module.newKieBaseModel(defaultBaseName).addInclude("notExistingKB"); + KieBaseModel defaultBase = module.newKieBaseModel(defaultBaseName) + .addInclude("notExistingKB1") + .addInclude("notExistingKB2"); defaultBase.setDefault(true); defaultBase.addPackage("*"); defaultBase.newKieSessionModel("defaultKSession").setDefault(true); kfs.writeKModuleXML(module.toXML()); KieBuilder kb = ks.newKieBuilder( kfs ).buildAll(); - assertEquals( 1, kb.getResults().getMessages().size() ); + assertEquals( 2, kb.getResults().getMessages().size() ); } @Test