Added a reporting method, that always shows no packages or processes.
So clearly, the parsed .drl or .xls file data isn't making it from the KFS->builder to the container->base.
private static void explainKieBase(KieBase kieBase) {
if ( kieBase == null ) return;
Collection<Process> processes = kieBase.getProcesses();
if ( processes == null || processes.isEmpty() ) {
LOGGER.error("kieBase contained NO processes.");
} else {
LOGGER.info(MessageFormat.format("Found {0,number} processes:", processes.size()));
for ( Process process : processes ) {
LOGGER.info(MessageFormat.format("{0}:{1} - {2} - {3}",
process.getPackageName(), process.getName(), process.getType(), process.getVersion()));
}
}
Collection<KiePackage> packages = kieBase.getKiePackages();
if ( packages == null || packages.isEmpty() ) {
LOGGER.error("kieBase contained NO packages.");
} else {
LOGGER.info(MessageFormat.format("Found {0,number} packages:", packages.size()));
for ( KiePackage p : packages ) {
LOGGER.info(MessageFormat.format("{0}", p.getName()));
Collection<Rule> rules = p.getRules();
if ( rules == null || rules.isEmpty() ) {
LOGGER.error("kieBase:package contained NO rules.");
} else {
if ( rules == null || rules.isEmpty() ) {
for ( Rule rule : rules ) {
LOGGER.info(MessageFormat.format("{0}:{1}",
rule.getPackageName(), rule.getName()));
}
}
}
}
}
}