Skip to content
This repository has been archived by the owner on Jan 9, 2024. It is now read-only.

Commit

Permalink
Fix and improve documentation (#12)
Browse files Browse the repository at this point in the history
* "instance.dispose();" is incorrect (should be instance.close(). Replacing with try-with-resources as RuleUnitInstance is AutoCloseable.

* improve code as RuleUnitInstance is AutoCloseable.
  • Loading branch information
aasaru committed Nov 7, 2023
1 parent 32c1d53 commit 5e7a713
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -141,17 +141,13 @@ Finally, you instantiate a `RuleUnitInstance` using `RuleUnitProvider` to execut
public void test() {
MeasurementUnit measurementUnit = new MeasurementUnit();
RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit);
try {
try (RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit)) {
measurementUnit.getMeasurements().add(new Measurement("color", "red"));
...
List<Measurement> queryResult = instance.executeQuery("FindColor").stream().map(tuple -> (Measurement) tuple.get("$m")).collect(toList());
...
} finally {
instance.dispose();
}
} // instance.close() is called automatically
}
----

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,12 @@ Using Rule Unit APIs, the resulting Java snippet would be like this:
[source,java]
----
MeasurementUnit measurementUnit = new MeasurementUnit();
RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit);
try {
try (RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit)) {
measurementUnit.getMeasurements().add(new Measurement("color", "red"));
measurementUnit.getMeasurements().add(new Measurement("color", "green"));
instance.fire();
} finally {
instance.dispose();
}
} // instance.close() is called automatically
----

In Rule Unit, instantiate `RuleUnitInstance` instead of `KieSession`. Add facts to `DataSource` property instead of `insert`. Generic KIE API calls (e.g. `KieServices`, `KieContainer`, `KieBase` ... ) are no longer needed. Instead, one more class `Unit` has to be defined.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,7 @@ public void test() {
LOG.info("Creating RuleUnit");
MeasurementUnit measurementUnit = new MeasurementUnit();

RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit);
try {
try (RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit)) {
LOG.info("Insert data");
measurementUnit.getMeasurements().add(new Measurement("color", "red"));
measurementUnit.getMeasurements().add(new Measurement("color", "green"));
Expand All @@ -74,8 +73,6 @@ public void test() {
assertTrue("contains red", measurementUnit.getControlSet().contains("red"));
assertTrue("contains green", measurementUnit.getControlSet().contains("green"));
assertTrue("contains blue", measurementUnit.getControlSet().contains("blue"));
} finally {
instance.close();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ public void test() {
LOG.info("Creating RuleUnit");
MeasurementUnit measurementUnit = new MeasurementUnit();

RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit);
try {
try (RuleUnitInstance<MeasurementUnit> instance = RuleUnitProvider.get().createRuleUnitInstance(measurementUnit)) {
LOG.info("Insert data");
measurementUnit.getMeasurements().add(new Measurement("color", "red"));
measurementUnit.getMeasurements().add(new Measurement("color", "green"));
Expand All @@ -54,8 +53,6 @@ public void test() {
assertTrue("contains red", measurementUnit.getControlSet().contains("red"));
assertTrue("contains green", measurementUnit.getControlSet().contains("green"));
assertTrue("contains blue", measurementUnit.getControlSet().contains("blue"));
} finally {
instance.close();
}
}
}

0 comments on commit 5e7a713

Please sign in to comment.