Esper project is a 100% Java component for CEP and ESP applications.
Here are some key features of "Esper":
· Event Pattern Matching
· Logical and temporal event correlation
· Crontab-like timer 'at' operator
· Lifecyle of pattern can be controlled by timer and via operators
· Pattern-matched events provided to listeners
· Event Stream Processing
· Time-based, interval-based and lenght-based event windows
· Grouping, aggregation, sorting, filtering
· Tailored SQL-like query language using select and where clause
· Inner-Join of two or more event streams, outer joins
· Dynamically generated indexes
· Supports both listener (push) and consumer (pull) model
· Supports event-type inheritance and polymorphism as provided by the Java language
· Event properties can be simple, indexed, mapped or nested
· Supports externally-supplied time as well as Java system time
· Supports multiple independent Esper engines per JavaVM. Each engine instance itself is NOT multithread-safe, requiring workload structuring per engine if necessary (also see FAQ on multithread-safety).
· Esper requires a Java Virtual Machine version 5.0 runtime, or above.
· Esper will not work with JavaVM versions 1.4.2 or below.
· A Esper engine instance itself is NOT multithread-safe, i.e. 2 or more threads sending events to the same engine instance is not supported. However multiple engine instances with a maximum of one thread per engine instance is supported.