protected Collection<KnowledgePackage> compileResources( Map<Resource, ResourceType> resources, boolean enablePropertySpecificFacts) { KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); if (enablePropertySpecificFacts) { conf.setOption(PropertySpecificOption.ALLOWED); } else { conf.setOption(PropertySpecificOption.DISABLED); } KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf); for (Map.Entry<Resource, ResourceType> entry : resources.entrySet()) { kbuilder.add(entry.getKey(), entry.getValue()); if (kbuilder.hasErrors()) { Logger.getLogger(Case1.class.getName()) .log(Level.SEVERE, "Compilation Errors in {0}", entry.getKey()); Iterator<KnowledgeBuilderError> iterator = kbuilder.getErrors().iterator(); while (iterator.hasNext()) { KnowledgeBuilderError knowledgeBuilderError = iterator.next(); Logger.getLogger(Case1.class.getName()) .log(Level.SEVERE, knowledgeBuilderError.getMessage()); System.out.println(knowledgeBuilderError.getMessage()); } throw new IllegalStateException("Compilation Errors"); } } return kbuilder.getKnowledgePackages(); }