Separate package loading in Drools
Първо, линкче към Drools, а след това – малко разяснение за целта на упражнението. Няма да говоря за Drools като технология, нито ще изразявам мнения и вплечатления тук. Ще приема, че мога да говоря с Drools термините – исканото решение имаше за цел да зарежда компилираните пакети runtime и поотделно.
Нека вземем примера от документацията – за мъж и момче, които искат да вземат кредит. В .drl файла пишем правило, че хората над определена възраст могат да взимат кредити, а тези под тази възраст – не могат. Компилираме .drl файла до пакет (.pkg) и тук започнаха приключенията, а решението беше толкова просто…
Така е – не използвам никакви пропъртита, просто създавам един stream с адреса на файла. Stream-ът ни дава доста голяма гъвкавост – файлове, url, DB. А и кодът е доста прост:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | InputStream inputStream = new FileInputStream(new File("credit.pkg")); Package pkg = (Package) stream.readObject(); inputStream.close(); stream.close(); RuleBase rules = RuleBaseFactory.newRuleBase(); rules.addPackage(pkg); WorkingMemory session = rules.newStatefulSession(); Person adult = new Person(“Mr Snr”, 35); Person child = new Person(“Jnr”, 15); session.insert(adult); session.insert(child); session.fireAllRules(); |




Последни коментари