java business rule tool
Uwe Geercken
uwe.geercken at datamelt.com
Thu May 29 12:45:07 BST 2008
hello all together,
I have created a business rule engine already some month ago, but I
haven't had a lot of feedback so far. anyway, I thought that one or
the other of you might be interested. excuse me if you feel it is a
little bit off-topic.
the basic idea is, to have e.g. a text file (or database) with some
records and to define some test/checks in an xml format and then check
the rules against the file. you can put multiple rules together to
form groups and subgroups.
the program is written in java and comes with an example script and
data and documentation. so if you have java on your machine, you can
download the package, extract the files and run the sample.
here is an example of the data (airports):
KABE;LEHIGH VALLEY INTL;00393;N40390750;W075262690
KABI;ABILENE RGNL;01791;N32244075;W099405483
KABR;ABERDEEN RGNL;01302;N45265660;W098251860
KABY;SOUTHWEST GEORGIA RGNL;00197;N31320785;W084114010
KACK;NANTUCKET MEM;00048;N41151099;W070033665
KACT;WACO RGNL;00516;N31364064;W097134987
..
..
and here are some rules/tests:
<xml>
<group id="group_1" description="rule groups to check airport record
consistency">
<subgroup id="subgroup_1" description="check icao code"
ruleoperator="and">
<rule id="rule_icao_1" description="check for correct
icao code spelling">
<object classname="Row" method="getField" type="string"
parameter="0" parametertype="integer"/>
<expected value="[A-Z]{4}" type="string"/>
<execute value="com.datamelt.rules.implementation.CheckMatches">
</execute>
<message type="failed" text="ICAO code field of $1 does
not match
to expected value: $0" />
<message type="passed" text="Correct match of ICAO code field to
expected value: $0" />
</rule>
...
</subgroup>
<subgroup id="subgroup_1" description="check lat-long values"
intergroupoperator="and" ruleoperator="and">
...
<rule id="rule_longitude_0" description="check for
correct longitude
value">
<object classname="Row" method="getField" type="string"
parameter="4" parametertype="integer"/>
<expected value="[WE][0-9]{9}" type="string"/>
<execute value="com.datamelt.rules.implementation.CheckMatches">
</execute>
<message type="failed" text="Longitude field $1 does
not match to
expected value: $0" />
<message type="passed" text="Correct match of longitude field to
expected value: $0" />
</rule>
</subgroup>
</group>
</xml>
as you are all IT experts, I guess you get the point of the xml file.
maybe you can use it during your training classes and share it with
your students. everything is free of course and you can get the source
code on request from me.
the documentation is available here:
http://datamelt.com/java-datamelt/jare_v0.51.pdf
the package (including docu):
http://datamelt.com/java-datamelt/jare_ruleengine_0.51.zip
as I put a lot of effort in it, I would be happy if at least one
person except me finds it useful.
tks. also for feedback.
rgds,
uwe
More information about the edubuntu-users
mailing list