commit | 79349d3968f830edb9e5022e7bb69e0b3cc48669 | [log] [tgz] |
---|---|---|
author | Serge Huber <shuber@jahia.com> | Thu Jul 29 17:00:07 2021 +0200 |
committer | GitHub <noreply@github.com> | Thu Jul 29 17:00:07 2021 +0200 |
tree | 70095ca6dfa4d4591e6e9a9caa1bd40cce9daa33 | |
parent | f595dfe155117943b2f9015ec70107ec64ffda11 [diff] |
UNOMI-188 Rule event type optimization (#321) * UNOMI-188 Rule event type optimization - New optimization for rules : rule condition are parsed to determine the event types they handle. This is done using a new ParserHelper method that navigates the tree of conditions to resolve which eventTypeCondition are used. - Settings to deactivate the new optimization in case it causes issues - Integration tests to validate that the parsing of conditions is behaving as expected - Performance tests to validate the performance improvement of the optimization * UNOMI-188 Rule event type optimization Improvements on first draft: - Remove getSetting/setSetting on RuleService and replaced it with OSGi configuration admin. This required making sure that services are properly reinjected (manually) into the integration test classes - Added check in integration test to make sure that the complex rule DOES get matched for non-view events (fixing a bug in the first draft) - Fix problem with negated rules not being used when no rule matched specific event type - Removed updates of rulesByEventType structure in get/setRule calls - Refactored visit pattern to add a postVisit method and remove the stack passed on the parameters * UNOMI-188 Rule event type optimization - Fixed some issues with NullPointerException in the RestServer when it was restarting - Moved the update of the rules by event type into a separate method - Added the missing call to the postVisit method in visitConditions.
Apache Unomi stores user profile information and is mostly used to provide a backend server for A/B testing and personalization. To do so it implements the currently under development OASIS Context Server specification.
The source code is available under the Apache License V2
You can find all the updated documentation, including building and deployment instructions, on the Apache Unomi web site.