Red Hat Bugzilla – Bug 1265773
@Timestamp and @Expires Java annotations don't work
Last modified: 2015-10-24 04:36:55 EDT
Created attachment 1076283 [details] Two projects that shows the issue with annotations and drl Description of problem: urrently to allow the engine to calculate the sliding window, we must make an explicit declaration in the DRL file, for example: declare StockTick @expires( 30m ) end Source: https://docs.jboss.org/drools/release/6.2.0.Final/drools-docs/html/ch08.html#d0e10784 However, it should be possible using Java annotations, for example: @Role(Role.Type.EVENT) @Timestamp("theTimestamp") @Expires("1s") public class MyEvent implements java.io.Serializable { … } However, it is not working in BRMS 6.1. Version-Release number of selected component (if applicable): N/A How reproducible: Always. Steps to Reproduce: 1. Create a Java object as an event and use the annotations Timestamp and expire to declare the sliding window for this event 2. Use Stream mode for event processing 3. Put a few events in the working memory, which should be retracted according to the rules you set using the expire annotation Actual results: The events will not be retracted after it reaches the expiration time. Expected results: The events should be retracted. Additional info: The same concern can be found in this community thread: http://stackoverflow.com/questions/30257724/memory-decline-when-use-drools-stream-mode And other community users have discussed the use of these annotations in Java files in this other community thread: https://groups.google.com/forum/#!searchin/drools-usage/@Timestamp/drools-usage/YmZE_wlZUnw/twmS0KGYzD4J Attached to this case you can find a test case provided by customer that shows the issue when only using annotations.
Fixed by https://github.com/droolsjbpm/drools/commit/13054b4fb
Verified in BRMS 6.2.0 ER4.