* The current stable version is 1.3.0: [![Build Status](https://buildhive.cloudbees.com/job/benas/job/easy-rules/badge/icon)](https://buildhive.cloudbees.com/job/benas/job/easy-rules/)
* The current development version is 1.3.1-SNAPSHOT
You are welcome to contribute to the project with pull requests on GitHub.
@ -37,6 +48,11 @@ For any further question, you can use the [Gitter](https://gitter.im/benas/easy-
Thank you all for your contributions!
## Credits
Many thanks to [YourKit, LLC](https://www.yourkit.com/) for providing a free license of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/index.jsp) to kindly support the development of Easy Rules.
Easy Rules core jar **_easyrules-core-${version}.jar_** will be generated in the target folder.
Easy Rules core jar **_easyrules-core-{{site.version}}.jar_** will be generated in the **_target_** folder.
## Use with maven
Easy Rules is a single jar file with no dependencies. You have to simply add the jar **_easyrules-core-{{site.version}}.jar_** to your application's classpath.
Easy Rules is a single jar file with no dependencies. You have to add the jar **_easyrules-core-{{site.version}}.jar_** to your application's classpath.
Using maven, you should add the following dependency to your pom.xml :
If you use maven, you should add the following dependency to your **_pom.xml_** :
@ -14,7 +14,7 @@ Easy Rules is a simple yet powerful Java rules engine providing the following fe
* The ability to create composite rules from primitive ones
* Dynamic rule configuration at runtime using JMX
In a very interesting [article](http://martinfowler.com/bliki/RulesEngine.html) about rules engines, [Martin Fowler](http://martinfowler.com/) says the following :
In a very interesting <ahref="http://martinfowler.com/bliki/RulesEngine.html"target="_blank">article</a> about rules engines, <ahref="http://martinfowler.com/"target="_blank">Martin Fowler</a> says:
>You can build a simple rules engine yourself. All you need is to create a bunch of objects with conditions and actions, store them in a collection, and run through them to evaluate the conditions and execute the actions.
<p>This release added the following features:</p><p></p>
<ul>
<li>Moved JMX support to a separate module so that the core engine can be used in both Java and Android applications (<ahref="https://github.com/benas/easy-rules/pull/5"target="_blank">PR #5</a>).</li>
<li>Fixed <ahref="https://github.com/benas/easy-rules/issues/6"target="_blank">issue #6</a>: Can't register multiple rules with the same priority to DefaultRulesEngine</li>
<li>Refactored tests to use <ahref="http://mockito.org/"target="_blank">Mockito</a> and <ahref="http://assertj.org"target="_blank">AssertJ</a></li>
<p>Easy Rules is open source, hosted on <atarget="_blank"href="https://github.com/benas/easy-rules">GitHub</a> and is released under the <atarget="_blank"href="http://opensource.org/licenses/mit-license.php/">MIT License</a>.</p>
<p>Easy Rules is open source, hosted on <atarget="_blank"href="https://github.com/benas/easy-rules">GitHub</a> and is released under the terms of the<atarget="_blank"href="http://opensource.org/licenses/mit-license.php/">MIT License</a>.</p>
By default, rule description and priority are exposed as JMX manageable attributes.
If you need to expose more specific attributes, you can extend the `Rule` interface and add getters and setters of your manageable attributes.
If you need to expose more specific attributes, you can extend the `JMXRule` interface and add getters and setters of your manageable attributes.
An example of using dynamic rule reconfiguration at runtime is provided in the [online shop tutorial]({{site.url}}/tutorials/dynamic-configuration.html).