use of org.kie.api.definition.rule.Rule in project drools by kiegroup.
the class AttributesTest method testRuleAttributes.
@Test
public void testRuleAttributes() throws Exception {
setKSession(getModelSession(source, VERBOSE));
setKbase(getKSession().getKieBase());
checkGeneratedRules();
for (Rule r : getKbase().getKiePackage("org.drools.pmml.attribs.test").getRules()) {
assertEquals("test-rf", ((RuleImpl) r).getAgendaGroup());
assertEquals("test-rf", ((RuleImpl) r).getRuleFlowGroup());
}
}
use of org.kie.api.definition.rule.Rule in project drools by kiegroup.
the class KieModuleMavenTest method testKieContainerBeforeAndAfterDeployOfSnapshot.
@Test
public void testKieContainerBeforeAndAfterDeployOfSnapshot() throws Exception {
// BZ-1007977
KieServices ks = KieServices.Factory.get();
String group = "org.kie.test";
String artifact = "test-module";
String version = "1.0.0-SNAPSHOT";
ReleaseId releaseId = ks.newReleaseId(group, artifact, version);
String prefix = new File(".").getAbsolutePath().contains("kie-ci") ? "" : "kie-ci/";
File kjar = new File(prefix + "src/test/resources/kjar/kjar-module-before.jar");
File pom = new File(prefix + "src/test/resources/kjar/pom-kjar.xml");
MavenRepository repository = getMavenRepository();
repository.installArtifact(releaseId, kjar, pom);
KieContainer kContainer = ks.newKieContainer(releaseId);
KieBase kbase = kContainer.getKieBase();
assertNotNull(kbase);
Collection<KiePackage> packages = kbase.getKiePackages();
assertNotNull(packages);
assertEquals(1, packages.size());
Collection<Rule> rules = packages.iterator().next().getRules();
assertEquals(2, rules.size());
ks.getRepository().removeKieModule(releaseId);
// deploy new version
File kjar1 = new File(prefix + "src/test/resources/kjar/kjar-module-after.jar");
File pom1 = new File(prefix + "src/test/resources/kjar/pom-kjar.xml");
repository.installArtifact(releaseId, kjar1, pom1);
KieContainer kContainer2 = ks.newKieContainer(releaseId);
KieBase kbase2 = kContainer2.getKieBase();
assertNotNull(kbase2);
Collection<KiePackage> packages2 = kbase2.getKiePackages();
assertNotNull(packages2);
assertEquals(1, packages2.size());
Collection<Rule> rules2 = packages2.iterator().next().getRules();
assertEquals(4, rules2.size());
ks.getRepository().removeKieModule(releaseId);
}
use of org.kie.api.definition.rule.Rule in project drools by kiegroup.
the class IndexingTest method testAlphaNodeSharing.
@Test()
public void testAlphaNodeSharing() {
String drl = "";
drl += "package org.drools.compiler.test\n";
drl += "import " + Person.class.getCanonicalName() + "\n";
drl += "rule r1\n";
drl += "when\n";
drl += " Person(name == \"Mark\")\n";
drl += "then\n";
drl += "end\n";
drl += "rule r2\n";
drl += "when\n";
drl += " Person(name == \"Mark\", age == 40)\n";
drl += "then\n";
drl += "end\n";
drl += "rule r3\n";
drl += "when\n";
drl += " Person(name == \"Mark\", age == 50)\n";
drl += "then\n";
drl += "end\n";
drl += "rule r4\n";
drl += "when\n";
drl += " Person(name == \"John\", age == 60)\n";
drl += "then\n";
drl += "end\n";
KieBase kbase = loadKnowledgeBaseFromString(drl);
Map<String, Rule> rules = rulestoMap(kbase);
ObjectTypeNode otn = getObjectTypeNode(kbase, Person.class);
InternalWorkingMemory wm = ((StatefulKnowledgeSessionImpl) kbase.newKieSession());
assertEquals(2, otn.getObjectSinkPropagator().size());
AlphaNode a1 = (AlphaNode) otn.getObjectSinkPropagator().getSinks()[0];
assertEquals(3, a1.getObjectSinkPropagator().size());
assertEquals(3, a1.getAssociationsSize());
assertTrue(a1.isAssociatedWith(rules.get("r1")));
assertTrue(a1.isAssociatedWith(rules.get("r2")));
assertTrue(a1.isAssociatedWith(rules.get("r3")));
AlphaNode a2 = (AlphaNode) otn.getObjectSinkPropagator().getSinks()[1];
assertEquals(1, a2.getAssociationsSize());
assertEquals(1, a2.getObjectSinkPropagator().size());
assertTrue(a2.isAssociatedWith(rules.get("r4")));
}
use of org.kie.api.definition.rule.Rule in project drools by kiegroup.
the class KieBaseIncludesTest method getNumberOfRules.
/**
* Helper method which determines the number of rules in the {@link KieBase}.
*
* @param kieBase
* the {@link KieBase}
* @return the number of rules in the {@link KieBase}
*/
private static long getNumberOfRules(KieBase kieBase) {
long nrOfRules = 0;
Collection<KiePackage> kiePackages = kieBase.getKiePackages();
for (KiePackage nextKiePackage : kiePackages) {
Collection<Rule> rules = nextKiePackage.getRules();
System.out.println(rules);
nrOfRules += rules.size();
}
return nrOfRules;
}
use of org.kie.api.definition.rule.Rule in project drools by kiegroup.
the class AnnotationsTest method testRuleAnnotation.
@Test
public void testRuleAnnotation() {
String drl = "package org.drools.compiler.integrationtests\n" + "import " + Person.class.getCanonicalName() + "; \n" + "rule X\n" + " @author(\"John Doe\")\n" + // backward compatibility
" @output(Hello World!)\n" + " @value( 10 + 10 )\n" + " @alt( \"Hello \"+\"World!\" )\n" + "when\n" + " Person()\n" + "then\n" + "end";
KieBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
conf.setOption(EventProcessingOption.STREAM);
conf.setOption(MBeansOption.ENABLED);
KieBase kbase = loadKnowledgeBase("kb1", drl, conf);
Rule rule = kbase.getRule("org.drools.compiler.integrationtests", "X");
assertEquals("John Doe", rule.getMetaData().get("author"));
assertEquals("Hello World!", rule.getMetaData().get("output"));
assertEquals(20, ((Number) rule.getMetaData().get("value")).intValue());
assertEquals("Hello World!", rule.getMetaData().get("alt"));
}
Aggregations