norikra 0.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/.gitignore +17 -0
  2. data/.ruby-version +1 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +339 -0
  5. data/README.md +104 -0
  6. data/Rakefile +10 -0
  7. data/bin/norikra +8 -0
  8. data/esper/changelog.txt +1066 -0
  9. data/esper/esper-4.9.0.jar +0 -0
  10. data/esper/esper-license.txt +95 -0
  11. data/esper/esper/lib/antlr-runtime-3.2.jar +0 -0
  12. data/esper/esper/lib/cglib-nodep-2.2.jar +0 -0
  13. data/esper/esper/lib/commons-logging-1.1.1.jar +0 -0
  14. data/esper/esper/lib/esper_3rdparties.license +299 -0
  15. data/esper/esper/lib/log4j-1.2.16.jar +0 -0
  16. data/esper/esper/lib/readme.txt +38 -0
  17. data/esper/esperio-amqp-4.9.0.jar +0 -0
  18. data/esper/esperio-amqp/lib/commons-cli-1.1.jar +0 -0
  19. data/esper/esperio-amqp/lib/commons-io-1.2.jar +0 -0
  20. data/esper/esperio-amqp/lib/esperio_3rdparties.license +1328 -0
  21. data/esper/esperio-amqp/lib/esperio_amqp_jars.txt +2 -0
  22. data/esper/esperio-amqp/lib/rabbitmq-client.jar +0 -0
  23. data/esper/esperio-csv-4.9.0.jar +0 -0
  24. data/esper/esperio-csv/lib/esperio_3rdparties.license +1328 -0
  25. data/esper/esperio-db-4.9.0.jar +0 -0
  26. data/esper/esperio-db/lib/esperio_3rdparties.license +1328 -0
  27. data/esper/esperio-http-4.9.0.jar +0 -0
  28. data/esper/esperio-http/lib/esperio_3rdparties.license +1328 -0
  29. data/esper/esperio-http/lib/httpclient-4.0.1.jar +0 -0
  30. data/esper/esperio-http/lib/httpcore-4.0.1.jar +0 -0
  31. data/esper/esperio-http/lib/httpcore-nio-4.0.1.jar +0 -0
  32. data/esper/esperio-license.txt +95 -0
  33. data/esper/esperio-socket-4.9.0.jar +0 -0
  34. data/esper/esperio-socket/lib/esperio_3rdparties.license +1328 -0
  35. data/esper/esperio-springjms-4.9.0.jar +0 -0
  36. data/esper/esperio-springjms/lib/activation-1.1.jar +0 -0
  37. data/esper/esperio-springjms/lib/activemq-core-5.7.0.jar +0 -0
  38. data/esper/esperio-springjms/lib/activemq-pool-5.7.0.jar +0 -0
  39. data/esper/esperio-springjms/lib/commons-pool-1.6.jar +0 -0
  40. data/esper/esperio-springjms/lib/esperio_3rdparties.license +1328 -0
  41. data/esper/esperio-springjms/lib/geronimo-j2ee-management_1.1_spec-1.0.1.jar +0 -0
  42. data/esper/esperio-springjms/lib/geronimo-jms_1.1_spec-1.1.1.jar +0 -0
  43. data/esper/esperio-springjms/lib/junit-4.8.2.jar +0 -0
  44. data/esper/esperio-springjms/lib/org.springframework.asm-3.1.1.RELEASE.jar +0 -0
  45. data/esper/esperio-springjms/lib/org.springframework.beans-3.1.1.RELEASE.jar +0 -0
  46. data/esper/esperio-springjms/lib/org.springframework.context-3.1.1.RELEASE.jar +0 -0
  47. data/esper/esperio-springjms/lib/org.springframework.core-3.1.1.RELEASE.jar +0 -0
  48. data/esper/esperio-springjms/lib/org.springframework.expression-3.1.1.RELEASE.jar +0 -0
  49. data/esper/esperio-springjms/lib/org.springframework.jms-3.1.1.RELEASE.jar +0 -0
  50. data/esper/esperio-springjms/lib/org.springframework.transaction-3.1.1.RELEASE.jar +0 -0
  51. data/esper/esperio-springjms/lib/slf4j-api-1.7.2.jar +0 -0
  52. data/esper/esperio-springjms/lib/slf4j-log4j12-1.7.2.jar +0 -0
  53. data/esper/esperio-stax-4.9.0.jar +0 -0
  54. data/esper/esperio-stax/lib/axiom-api-1.2.9.jar +0 -0
  55. data/esper/esperio-stax/lib/axiom-c14n-1.2.9.jar +0 -0
  56. data/esper/esperio-stax/lib/axiom-dom-1.2.9.jar +0 -0
  57. data/esper/esperio-stax/lib/axiom-impl-1.2.9.jar +0 -0
  58. data/esper/esperio-stax/lib/commons-logging-1.1.1.jar +0 -0
  59. data/esper/esperio-stax/lib/commons-logging-LICENSE.txt +203 -0
  60. data/esper/esperio-stax/lib/esperio_3rdparties.license +1328 -0
  61. data/esper/esperio-stax/lib/geronimo-activation-LICENSE.txt +203 -0
  62. data/esper/esperio-stax/lib/geronimo-activation_1.1_spec-1.0.2.jar +0 -0
  63. data/esper/esperio-stax/lib/geronimo-javamail-LICENSE.txt +203 -0
  64. data/esper/esperio-stax/lib/geronimo-javamail_1.4_spec-1.6.jar +0 -0
  65. data/esper/esperio-stax/lib/geronimo-stax-api-LICENSE.txt +203 -0
  66. data/esper/esperio-stax/lib/geronimo-stax-api_1.0_spec-1.0.1.jar +0 -0
  67. data/esper/esperio-stax/lib/jaxen-1.1.1.jar +0 -0
  68. data/esper/esperio-stax/lib/jaxen-LICENSE.txt +33 -0
  69. data/esper/esperio-stax/lib/wstx-LICENSE.txt +203 -0
  70. data/esper/esperio-stax/lib/wstx-asl-3.2.9.jar +0 -0
  71. data/junks/esper-test.rb +79 -0
  72. data/junks/glassfish.rb +17 -0
  73. data/junks/mizuno.rb +28 -0
  74. data/junks/simple_test.rb +35 -0
  75. data/junks/type_confliction.rb +46 -0
  76. data/junks/type_conversion.rb +49 -0
  77. data/junks/type_inherit.rb +67 -0
  78. data/lib/norikra.rb +13 -0
  79. data/lib/norikra/cli.rb +24 -0
  80. data/lib/norikra/engine.rb +231 -0
  81. data/lib/norikra/output_pool.rb +45 -0
  82. data/lib/norikra/query.rb +173 -0
  83. data/lib/norikra/rpc.rb +6 -0
  84. data/lib/norikra/rpc/handler.rb +57 -0
  85. data/lib/norikra/rpc/http.rb +36 -0
  86. data/lib/norikra/server.rb +41 -0
  87. data/lib/norikra/typedef.rb +307 -0
  88. data/lib/norikra/typedef_manager.rb +91 -0
  89. data/lib/norikra/version.rb +3 -0
  90. data/norikra.gemspec +33 -0
  91. data/script/spec_server_pry +45 -0
  92. data/spec/field_spec.rb +141 -0
  93. data/spec/fieldset_spec.rb +172 -0
  94. data/spec/output_pool_spec.rb +75 -0
  95. data/spec/query_spec.rb +82 -0
  96. data/spec/spec_helper.rb +55 -0
  97. data/spec/typedef_manager_spec.rb +128 -0
  98. data/spec/typedef_spec.rb +248 -0
  99. metadata +328 -0
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:test) do |t|
5
+ t.rspec_opts = ["-c", "-f progress"] # '--format specdoc'
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
8
+
9
+ task :test => :spec
10
+ task :default => :spec
data/bin/norikra ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pathname'
4
+ lib = Pathname.new(__FILE__).dirname.join('..', 'lib').expand_path
5
+ $LOAD_PATH.unshift lib.to_s
6
+
7
+ require 'norikra/cli'
8
+ Norikra::CLI.start
@@ -0,0 +1,1066 @@
1
+ Esper Changelog
2
+ ===================
3
+
4
+ Changes in version 4.9.0
5
+ ------------------------
6
+ Major API or EPL changes
7
+ - Support for new minby, maxby and sorted aggregation functions
8
+ - Support for context partition administration through a new API
9
+ - Support for specifying a timezone as part of crontab schedules
10
+ - Support for instance method invocation on enumeration values
11
+ - Support for fire-and-forget (on-demand) queries that delete and update named windows
12
+ - Support for passing EventBean and collection of EventBean to EPL-to-code method invocations
13
+ - Support for an optional context object passed in EPL-to-code method invocations
14
+ - Support for the expression window and expression batch window to the oldest and newest event so that expiry policies are easier to specify that compare event properties
15
+ - New extension API for aggregation functions termed aggregation multi-function
16
+ - Performance improvements, overall, and related to patterns and self-joins
17
+ - Reduced memory utilization
18
+
19
+ Bug fixes
20
+ - Fixed Issue MWI-774-78809 ArrayIndexOutOfBoundsException upon statement stop context partitioned statement with aggregation
21
+ - Fixed Issue QIH-288-93588 ArrayIndexOutOFBoundsException starting a context-partitioned split-stream statement with subquery
22
+ - Fixed Issue FLQ-115172 NullPointerException with context partitioned statement and split-stream statement
23
+ - Fixed Issue QXU-776433 Populate map event type using "new" operator not working
24
+ - Fixed Issue ESPER-726 Aggregation function avg based on BigDecimal with scale defined throws Non-terminating decimal expansion
25
+ - Fixed Issue ESPER-727 Thread safety issue with enumeration method in stateless select
26
+ - Fixed Issue ESPER-728 Filter improvement for expressions in relationship to other filter ops
27
+ - Fixed Issue ESPER-730 Statement Object Model for "is null"
28
+
29
+
30
+ Changes in version 4.8.0
31
+ ------------------------
32
+ Major API or EPL changes
33
+ - Support for "create expression" to declare an independent expression or script for use in other statements
34
+ - Support for an externally-timed batch window (win:ext_timed_batch)
35
+ - Support for array variables
36
+ - Support for enumeration methods to operate on collections of scalar values (ESPER-717)
37
+ - Support for on-select-delete: On-select can now also delete the selected rows
38
+ - Support for insert-into clause to use "irstream" keyword to produce the insert as well as the remove stream
39
+ - Support for a new "istream" function that returns true if the event is part of the insert stream and false if the event is part of the remove stream
40
+ - Support for marking an index as a unique index
41
+ - Many optimizations around query planning, execution-time reduced memory use and performance
42
+ - Dependency updates for esperio-springjms adapter and J2EE terminal example
43
+ - Minor change to virtual data window API to allow a virtual data window to indicate unique key property names
44
+
45
+ Bug fixes
46
+ - Fixed Issue ESPER-703 Stateless statement with output rate limiting only outputs same event multiple times under inbound threading
47
+ - Fixed Issue ESPER-705 Esper tests build fails on platform with default encoding other than ISO-8859-2
48
+ - Fixed Issue ESPER-706 Query plan output for on-select not comprehensive and Join does not list key field names
49
+ - Fixed Issue ESPER-708 Allow configuration for static methods/UDF to trigger exception handler upon exception
50
+ - Fixed Issue ESPER-709 esperio AMQPSink ignores exchange property
51
+ - Fixed Issue ESPER-712 Contained-event misbehaves in join and subquery when used with named window
52
+ - Fixed Issue ESPER-713 Transaction example probabilistic event skipping won't ever skip for event type B
53
+ - Fixed Issue ESPER-714 NPE in enumeration method with join
54
+ - Fixed Issue ESPER-718 Debug-level logging triggers ClassCastException in dataflow Select operator when using XML underlying
55
+ - Fixed Issue ESPER-719 Exception using variable in "after" endpoint context declaration
56
+ - Fixed Issue ESPER-720 Thread safety issue with enumeration method in stream-level filter
57
+ - Fixed Issue ESPER-721 NPE on count() in combination with order by
58
+ - Fixed Issue ESPER-722 Partitioned full outer join selecting remove stream with time windows fails with NullPointerException
59
+ - Fixed Issue ESPER-725 Object-array event type not enforcing single supertype
60
+ - additional bug fixes
61
+
62
+ Changes in version 4.7.0
63
+ ------------------------
64
+ Major API or EPL changes
65
+ - Many performance-related changes and also related to support of the new EsperHA release.
66
+
67
+ Bug fixes
68
+ - Fixed issue ESPER-544 Prefer more specific update method over less specific update method in subscriber
69
+ - Fixed issue ESPER-662 Custom aggregation function that receives wildcard ("*") receives instance of com.espertech.esper.type.WildcardParameter and not event
70
+ - Fixed issue ESPER-663 Keyed Segmented Context with multiple properties not working
71
+ - Fixed issue ESPER-664 ValueCache.DISABLED in single row function configuration does not disable UDF cache
72
+ - Fixed issue ESPER-666 StatementAgentInstanceFactoryCreateWindow.newContext() throws NPE if other named window does not exist in insert case
73
+ - Fixed issue ESPER-668 CharSequence and String type not compatible
74
+ - Fixed issue ESPER-669 Enumeration method not working on bean-array that is property of Map
75
+ - Fixed issue ESPER-670 Event that ends/terminates context partition
76
+ - Fixed issue ESPER-671 Unexpected exception occurs when applying a basic arithmetic operation to short/byte properties
77
+ - Fixed issue ESPER-673 Aggregated row-per-event and grouped query with unidirectional join produces incorrect aggregation value
78
+ - Fixed issue ESPER-676 Exception using @Audit with create-context and terminated-by filter
79
+ - Fixed issue ESPER-679 Improve performance of CSVInputAdapter
80
+ - Fixed issue ESPER-683 Firstunique window and firstevent window handling updates
81
+ - Fixed issue ESPER-684 Object Array Event Types in Isolated Services
82
+ - Fixed issue ESPER-685 "Very likely memory leak" warning in Tomcat 6
83
+ - Fixed issue ESPER-687 Named Window and Fire-And-Forget query incorrectly passes null comparison operator
84
+ - Fixed issue ESPER-688 ArrayOOB exception with expression def in where-clause of on-select
85
+ - Fixed issue ESPER-689 ClassCastException with "stream.*" syntax and insert-into and context
86
+ - Fixed issue ESPER-693 Unit test fails with JDK 1.7_07
87
+ - Fixed issue ESPER-695 Pattern with named window events when used in partitioned context, not allowing named window
88
+ - Fixed issue ESPER-697 EsperIOSocketAdapter hides a critical exception
89
+ - Fixed issue ESPER-698 Update-istream with sub-select has thread-safety issue
90
+ - Fixed issue ESPER-699 Variable not recognized in output-rate-limiting when using deployment API (default compile option)
91
+ - Fixed issue ESPER-701 Nested context with partitioned context managing a non-overlapping context produces incorrect results
92
+ - Fixed issue ESPER-702 Distinct count in correlated subselect returns invalid result
93
+
94
+
95
+ Changes in version 4.6.0
96
+ ------------------------
97
+ Major API or EPL changes
98
+ - Support for object-array event types; An application can now send Object[] rows as events and can receive Object[] rows as output.
99
+ - This release introduces a syntax and API for declarative data flow execution.
100
+ - Support for XML and JSON event renderers to take a custom property value renderer.
101
+ - Support for a new "ranked" data window that retains the events according to rank and uniqueness criteria.
102
+ - Many internal changes related to increasing performance and reducing memory use.
103
+ - For class and package imports through configuration or API, the default imports are no longer removed when the first import is added. Imports can be removed explicitly instead.
104
+ - The CSV adapter no longer has a dependency on Commons Beanutils (commons-beanutils-1.8.3.jar).
105
+ - The documentation has a new look and feel.
106
+
107
+ Bug fixes
108
+ - Fixed issue ESPER-648 NullPointerException with "utput Every" & "for discrete_delivery" when no output is available
109
+ - Fixed issue ESPER-641 Add SupportSubscriber and SupportSubscriberMRD to Public Test Framework
110
+ - Fixed issue ESPER-642 Log destination for @Audit logs moved to "com.espertech.esper.util.AuditPath" but should be "com.espertech.esper.audit"
111
+ - Fixed issue ESPER-643 Use expression as mapped-property key or indexed-property index
112
+ - Fixed issue ESPER-644 Infinite loop when restarting a statement
113
+ - Fixed issue ESPER-652 regexp matches whole pattern
114
+ - Fixed issue ESPER-653 ExprDotNode.validate does not handle empty array returned by validationContext.getStreamTypeService().getEventTypes()
115
+ - Fixed issue ESPER-654 Allow backtick notation for any identifier
116
+ - Fixed issue ESPER-655 Copy method for bean-backed events should prefered configured method over Serializable
117
+ - Fixed issue ESPER-656 Variant stream of type ANY when inserting columns and the underlying event in combination the result is not carrying the inserted columns
118
+ - Fixed issue ESPER-658 context with "start after 0 seconds" starts only after next time tick
119
+ - Fixed issue ESPER-659 Inherit timestamp properties from event super types
120
+ - Fixed issue ESPER-660 Allow fragment event type to perform datetime methods
121
+ - Fixed issue ESPER-661 EPStatementException in on-select with virtual data window and where-clause using greater-than (less-than) operator
122
+
123
+
124
+ Changes in version 4.5.0
125
+ ------------------------
126
+ Major API or EPL changes
127
+ - We have made a change to the behavior of intersection data windows (multiple data windows in intersection) when one of the data windows is a batch window.
128
+ The engine now provides batching behavior, when one of the data windows is a batch window, and not continuous stream behavior.
129
+ - Support for declaring a hashed context that uses a consistent-hash algorithm to target context partitions for declarative parallelism in statement execution
130
+ - Support for declaring nested contexts allowing combined context policies
131
+ - Support for a new API to that provides context partition targeting for on-demand queries and statement iteration
132
+ - Support for context initiation by event or patterns and termination by a correlated event or pattern
133
+ - Support for context initiation by patterns to include those event(s) that match a pattern in the statement associated to the context
134
+ - Support for MVEL and JSR-223 scripting engine i.e. JavaScript and others
135
+ - Support for contained-event syntax; one can now specify any expression for returning contained events
136
+ - Support for constants: Variables that are constant values and cannot be assigned. Useful for the engine to perform optimizations knowing variable values can't change.
137
+ - Support for a new expression batch window that also allows aggregation functions as part of the expiry expression
138
+ - Support for aggregation functions in the expiry expression of the expression data window
139
+ - Support for iterating statements that have unbound streams (no data window) and have fully-grouped aggregation
140
+ - Support for outer joins with streams that don't provide properties (i.e. pattern timer)
141
+ - Support for updating mapped and indexed property values of events via update-istream, on-merge or on-update
142
+ - Support for when-terminated in output rate limiting to also provide an expression and set-assignments; Support for a new count-total built-in property
143
+ - Support for defining an output pattern for audit logs
144
+ - Added test framework API for event processing unit or regression testing
145
+ - For plug-in aggregation functions we added support for an AggregationFunctionFactory and deprecated AggregationSupport
146
+ - Optimization to detect when a statement is stateless and thereby operate lock-free
147
+
148
+ Bug fixes or other changes
149
+ - Fixed issue ESPER-613 Plug-in aggregation functions can't retain context built from validate method
150
+ - Fixed issue ESPER-614 Allow named window name to prefix properties in on-merge update set-clause
151
+ - Fixed issue ESPER-615 DeploymentActionException when commenting-out block of statements in deployment via deployment admin
152
+ - Fixed issue ESPER-616 Allow create-schema and create-window type definition syntax to refer to event type name of POJO-event type
153
+ - Fixed issue ESPER-618 Output-When not executing the "then"-part when triggered by output events
154
+ - Fixed issue ESPER-622 NullPointerException creating a statement selecting from a filled named window that also subqueries
155
+ - Fixed issue ESPER-623 NullPointerException in NamedWindowServiceImpl.processHandle when context-dependent and under prioritized execution
156
+ - Fixed issue ESPER-624 ConcurrentModificationException using a subquery against a named window within the stream filter criteria
157
+ - Fixed issue ESPER-625 Intersection between length-batch window and unique data window produces incorrect aggregation values
158
+ - Fixed issue ESPER-627 Evaluation order of subquery against the same named window that triggers the evaluation
159
+ - Fixed issue ESPER-629 Declared expression not recognized by split-stream syntax when used in second or later stream insert
160
+ - Fixed issue ESPER-631 ClassCastException with variant stream using single-column conversion to insert into named window
161
+ - Fixed issue ESPER-632 No @Audit output for stream category for statement that selects from a named window via select star
162
+ - Fixed issue ESPER-633 Undeployment not removing event type for on-merge with insert into new stream
163
+ - Fixed issue ESPER-634 ClassCastException in pattern with unbound repeat until and interval observer
164
+ - Fixed issue ESPER-635 Property is ambiguous exception for a pattern that features multiple repeats and followed by
165
+ - Fixed issue ESPER-637 Update of Map event type not causing derived type to update its event property information
166
+ - Fixed issue ESPER-639 NullPointerException with Subscriber and Context and Aggregation
167
+
168
+
169
+ Changes in version 4.4.0
170
+ ------------------------
171
+ Major API or EPL changes
172
+ - Support for context declarations: Temporal context for interval-based context partitions; Keyed and category segmented contexts; Initiated contexts
173
+ - Support for fine-grained locking per context partition for high concurrency
174
+ - Support for a new 'between' date-time method
175
+ - Support for a new @NoLock annotation that disables context-partition-level locking
176
+ - Support for configuring an engine-wide maximum limit of number of sub-expressions for followed-by and for monitoring the number of sub-expressions
177
+ - Support for the "create schema" syntax to copy type information from one or more types
178
+ - Support for wildcard (*) parameter to derived-value views (stat:uni etc.) to indicate all properties of input type are available in output
179
+ - Support for subscribers with a no-parameter "update" method
180
+ - Support for configuring the behavior of the value cache for plug-in single-row functions
181
+ - Reduced overhead for named windows based on POJOs
182
+
183
+ Minor changes
184
+ - Few minor changes to extension APIs to support context partitions.
185
+ - Fixed issue ESPER-587 groupwin EPStatementException text
186
+ - Fixed issue ESPER-590 Allow configuration of fair locking for administrative functions excluding event processing
187
+ - Fixed issue ESPER-591 Exception "Attempting to remove key from map that wasn't added" in RefCountedSet.
188
+ - Fixed issue ESPER-592 Statements are not able to get GCed when using Force Update
189
+ - Fixed issue ESPER-594 Exception starting statement with @Audit and groupwin
190
+ - Fixed issue ESPER-595 Two statements with identical stream and "prev" function not delivering expected events
191
+ - Fixed issue ESPER-597 example code error in documentation
192
+ - Fixed issue ESPER-599 Aggregation functions 'first' and 'last' with index are represented incorrectly when converted back to EPL
193
+ - Fixed issue ESPER-600 Memory leak with "group by", "order by" and a lot of different group by keys
194
+ - Fixed issue ESPER-601 Deadlock when an UnmatchedListener creates a new statement
195
+ - Fixed issue ESPER-602 Reduce memory use when large number of threads send events - ThreadLocal use
196
+ - Fixed issue ESPER-603 NPE in match-recognize when reg-ex pattern event is optional and doesn't have a definition
197
+ - Fixed issue ESPER-604 epl_clauses.xml documentation patch
198
+ - Fixed issue ESPER-606 Memory leak if creating a large numbers of different event types and using "remove" operation in runtime configuration operations
199
+ - Fixed issue ESPER-608 Prepared statement referring to variable that is a class (nested property syntax) not working
200
+ - Fixed issue ESPER-609 Distinct causing null pointer exception on time batch query
201
+ - Fixed issue ESPER-610 IllegalStateException for prepared statement with "select * from pattern[[?] Event]"
202
+ - Fixed issue ESPER-611 ExprValidationException when create from statement object model with SQL join using variable
203
+ - Fixed issue ESPER-612 support for providing a deployment id to the deployment admin rather then using a system-generated deployment id
204
+
205
+
206
+ Changes in version 4.3.0
207
+ ------------------------
208
+ Major API or EPL changes
209
+ - We have made a change to NULL-value comparison, to closely follow SQL standards, as follows: In version 4.3, the expression "property = NULL" always returns null, use "property is NULL" instead. Version 4.2 and earlier returned true/false.
210
+ For more information, please see http://jira.codehaus.org/browse/ESPER-569
211
+ - Support for filter expressions as part of aggregation functions, for example "select count(*, color='black'), count(*) as percentBlack from Marbels"
212
+ - Support for interval algebra methods, e.g. before, after, coincides, during, includes, meets etc.
213
+ - Support for a new expression-driven data window "win:expr". Use for dynamically shrinking and expanding time or length windows, or for custom expiry logic based on work days, for example.
214
+ - Support for specifying a consumption policy on pattern filters. Useful when a pattern references the same filter multiple times and the application requires a filter to consume or prioritize one filter over another.
215
+ - Support for the transpose(...) function. For use in the select-clause to transpose an expression result object to a stream.
216
+ - Support for {} array operator to provide input to enumeration methods.
217
+ - Support for subqueries that return multiple result columns to be used in an expression definition.
218
+ - Support for @Audit to output nested expression results.
219
+ - New example "Trivia Geeks Club".
220
+
221
+ Minor changes
222
+ - Fixed issue ESPER-569 Null-value comparison for "not/equals"-operator (!=, =) not fully consistent with SQL standard
223
+ - Fixed issue ESPER-570 3-way inner join and using outer-join notation not working when where-clause added
224
+ - Fixed issue ESPER-571 NPE for fully-aggregated and ungrouped query with having clause that selects a non-aggregated property
225
+ - Fixed issue ESPER-572 Short-circuit evaluation not always performed for filters
226
+ - Fixed issue ESPER-573 Improve statement checking for on-merge "not matched" clause to not allow access to named window properties when subquery
227
+ - Fixed issue ESPER-574 Timer:interval pattern observer when a subquery is the parameter throws NPE
228
+ - Fixed issue ESPER-576 Expose API to dynamically register new views
229
+ - Fixed issue ESPER-577 Allow chained method invocation on cast() result
230
+ - Fixed issue ESPER-578 Allowing transposing the result of an aggregation function to a stream
231
+ - Fixed issue ESPER-579 Memory leak if creating and removing a large numbers of different event types
232
+ - Fixed issue ESPER-582 Error parsing reserved keyword "last" inside a function call
233
+ - Fixed issue ESPER-583 Support for filtering aggregation functions
234
+ - Fixed issue ESPER-584 Filter expression with relational op and constant not matching
235
+ - Fixed issue ESPER-585 On-merge not dispatching if input stream is also from named window
236
+ - Fixed issue ESPER-586 Crontab-schedule when use with list-parameter and zero give incorrect results
237
+
238
+
239
+ Changes in version 4.2.0
240
+ ------------------------
241
+ Major API or EPL changes
242
+ - Support for enumeration methods, which work with lambda expressions to perform common tasks on subquery results, named windows, event properties or inputs that are or can be projected to a collection of events, scalar values or objects.
243
+ - Support for date-time methods for date and time manipulation and querying, such as for adding or subtracting time periods, setting or rounding calendar fields and querying fields.
244
+ - Support for @Audit annotation which instructs the engine to output detailed debug-level information about the statements processing, such as pattern instance counts, expression result values, property values and more.
245
+ - Support for Virtual Data Window, an extension point for (large) external data stores to become accessible same as a named window.
246
+ - Support for the 'new' operator, which populates a new data structure by evaluating column names and assignment expressions, useful when an expression should return multiple results, for performing a transformation or inside enumeration method lambda expressions.
247
+ - Support for constructor injection for event objects populated by insert into.
248
+ - Support for the on-merge clause to allow multiple actions (multiple then-clauses), to allow insert-into a stream other then the currently-merged named window and adding support for an optional where-clause for each action.
249
+ - Support for mapped and indexed properties to allow an expression as a map key or index.
250
+ - Support for expression declarations. Expressions that are common to multiple places in an EPL statement can be moved to a named expression declaration and reused within the statement without duplicating the expression itself.
251
+ - Improvement for query planning and indexing for joins, subqueries, on-merge/select/update/delete, fire-and-forget queries and create-index to support btree indexes for use with ranges, inverted ranges and relational operator (>, <, >=, <=) queries.
252
+ - Improvements to statement metrics reporting in regards to event counts and reporting for named windows.
253
+ - Improvements to query plan output.
254
+ - Reduced memory use for hash indexes on single columns.
255
+
256
+ Minor changes
257
+ - Fixed issue ESPER-549 NullPointerException upon failing to resolve UDF and when configuring a non-default auto-import
258
+ - Fixed issue ESPER-550 Where-clause expression validation not taking expression return type into account
259
+ - Fixed issue ESPER-551 Custom exception handler that rethrows runtime exceptions may cause wrong callback for next event
260
+ - Fixed issue ESPER-552 NPE logged delivering null-value results to Subscriber update method
261
+ - Fixed issue ESPER-555 Improve error message for UDF functions and subscribers that expect primitive typed parameters and receive null
262
+ - Fixed issue ESPER-556 Method-invocation-join when not unidirectional in combination with max/min aggregation function produces warning
263
+ - Fixed issue ESPER-557 On-merge statement creation throws StringIndexOutOfBoundsException when using alias for named window but not for property
264
+ - Fixed issue ESPER-558 Incorrect having-clause validation "non-aggregated properties in the 'having' clause must occur in the 'group-by' clause"
265
+ - Fixed issue ESPER-559 Output-first With Having-Clause not honoring output interval reliably
266
+ - Fixed issue ESPER-560 Updated (or deleted) event in a Named Window is not delivered to a consuming statement
267
+ - Fixed issue ESPER-561 Invoking instance method of an object returned by static method invocation returns cache of static method
268
+ - Fixed issue ESPER-562 On-select with aggregation and group-by not releasing memory after completion of a triggering event
269
+ - Fixed issue ESPER-563 Small memory leak creating large number of failed-validation statements
270
+ - Fixed issue ESPER-564 Subquery of identical event stream does not include most recent event in window aggregate
271
+ - Fixed issue ESPER-566 First Aggregation Function Returns Wrong (Growing) Result When Used in Correlated Subquery
272
+ - Fixed issue ESPER-568 Duplicate remove stream events posted from intersection-data window when used with on-update (named window only)
273
+
274
+
275
+ Changes in version 4.1.0
276
+ ------------------------
277
+ Major API or EPL changes
278
+ - Support for on-merge which provides an atomic update-insert-delete (aka. upsert or merge) operation for use with named windows
279
+ - Support for subqueries against named windows to share existing indexes on the named window (both implicitly-created or via create-index)
280
+ - Support for configuration option to enable output of query plan to log destination (aka. explain-plan)
281
+ - Support for a new 'typeof' function that returns the event type name, for use with variant streams and event type super-types (POJO extends and implements, map super-types)
282
+ - Support for XML event type update at runtime via ConfigurationOperations
283
+ - Support for an extended time interval grammar that now supports 'weeks', 'months' and 'years' keywords
284
+ - Support for additional means to control external time
285
+ - Support for loading an XML schema from a string
286
+ - Support for a new form of the followed-by (->) operator: The form "-[max]> allows specifying an upper limit on the number of pattern instances
287
+ - We refactored the pattern engine to reduce memory use of pattern instances significantly
288
+
289
+ Minor changes
290
+ - Fixed issue ESPER-502 NullPointerException in OutputProcessViewDistinctOrAfter.process() and update() methods
291
+ - Fixed issue ESPER-503 Incorrect warning logged using @Hint('reclaim_group_aged=2') with std:groupwin grouped data windows
292
+ - Fixed issue ESPER-505 Reference Documation 4.0.0; Table 6.5; duplicety of operator
293
+ - Fixed issue ESPER-506 NullPointerException on an inner join of named window with aggregation and group-by
294
+ - Fixed issue ESPER-509 Documentation bug in subscriber use: "start" and "end" are "updateStart" and "updateEnd"
295
+ - Fixed issue ESPER-510 Support for event array for event objects populated by insert into
296
+ - Fixed issue ESPER-511 Make CurrentTimeEvent and TimerControlEvent Serializable
297
+ - Fixed issue ESPER-512 EventBean getUnderlying method when both subscriber and listener are used returns Class and not the underlying object
298
+ - Fixed issue ESPER-513 On-Update set Error starting statement: Property 'u.v2' is not available for write access [on com.espertech.esper.support.bean.SupportBean update MyWindow as u set v1=string, u.v2=string]
299
+ - Fixed issue ESPER-516 Insert into stream defined by a schema created as a map schema with property type being an event type not compiling
300
+ - Fixed issue ESPER-517 Error message "IllegalStateException: Event named ''a' not found in event pattern result set" is inaccurate
301
+ - Fixed issue ESPER-518 NPE in fire-and-forget query against two named windows with group-by and aggregations when named windows are empty
302
+ - Fixed issue ESPER-519 Fire-and-Forget join on 2 named windows with where-clause filtering on one window's rows returns incorrect result
303
+ - Fixed issue ESPER-520 Possible memory leak using @Hint('reclaim_group_aged=xxx') with time windows
304
+ - Fixed issue ESPER-521 Insert into stream defined by a schema created as a map schema with property type being an event type not populating when inserted from a map schema stream
305
+ - Fixed issue ESPER-522 Provide time control event for advancing the system clock by a batch of ticks
306
+ - Fixed issue ESPER-523 Scheduling service SPI to provide nearest time and statement info
307
+ - Fixed issue ESPER-526 Unidirectional inner join between two named windows when started late (named windows have data) produces too many rows for first result delivery
308
+ - Fixed issue ESPER-527 memory leak is possible for unbound/unlimited keys used with every-distinct
309
+ - Fixed issue ESPER-528 Unidirectional left outer join between same streams (self join) when used with staggered time-window and grouped view causes out of memory
310
+ - Fixed issue ESPER-529 create-schema to allow dot characters in property names
311
+ - Fixed issue ESPER-533 NullpointerException in Pattern And-state with timer:interval and "not"
312
+ - Fixed issue ESPER-535 "Previous" function when used under single-row plug-in function or user-defined function not compiling in match-recognize
313
+ - Fixed issue ESPER-536 NPE using Output Limiting clause with an EPStatementObjectModel - ExprTimePeriod
314
+ - Fixed issue ESPER-537 NullpointerException in Create-Window with Model-after Syntax when a nested property does not exist
315
+ - Fixed issue ESPER-538 Support for auto-event name in insert-into (populate underlying event)
316
+ - Fixed issue ESPER-539 Support for insert-into to specifiy the fully-qualified class name
317
+ - Fixed issue ESPER-543 Multiple engine instances same thread sending and receiving problem
318
+ - Fixed issue ESPER-546 "Last" aggregation function with on-select returns inconsistent results
319
+
320
+
321
+ Changes in version 4.0.0
322
+ ------------------------
323
+ Major API or EPL changes
324
+ - Requires a Java 6 runtime (JDK6 or JRE6)
325
+ - The following dependent jar files are upgraded:
326
+ Required: ANTLR version upgrade from 3.1.1 to 3.2
327
+ Optional: LOG4J upgrade from 1.2.15 to 1.2.16
328
+
329
+ - The bound-repeat syntax in the repeat-until pattern operator changed syntax:
330
+ The old syntax of separating range value by dots "[low .. high]" is no longer supported. Use the colon ":" character instead of "..".
331
+
332
+ - The meaning of the index paramater to the "nth" aggregation function has changed:
333
+ To be consistent with "prev" and "last" functions an index of zero now returns the current row.
334
+ For Example: "nth(value, 0)" returns the current row and "nth(value, 1)" returns the previous-row value.
335
+
336
+ - The semantics for "output first" have changed: For statements that have a "group-by" clause the "output first" now outputs the first events per group.
337
+
338
+ - The "first" aggregation function has been renamed to "firstever".
339
+ - The "last" aggregation function has been renamed to "lastever". This makes a difference as data window deletes are reflected by the new "last" aggregation function and are not reflected by "lastever".
340
+ - We introduced new aggregation functions that track the data window : "first", "last" and "window" with a convenient syntax for access to all attributes.
341
+ - We introduced new single-row function for data window access: "prevtail", "prevwindow" and "prevcount" functions.
342
+
343
+ - The data window "std:groupby" for grouped data windows has been renamed to "std:groupwin" to avoid confusion with the group-by clause.
344
+
345
+ - Support for registering an exception handler that is called when any continous-query statement exception occurs.
346
+ - Support for all statistics views and the size view to accept additional expressions as parameters for returning values pertaining to the last-applied event.
347
+ - Support for chained method invocations on events in streams, library static methods and single-row functions.
348
+ - Support for registering single-row functions by function name.
349
+ - Support for dot-syntax in the form of "(expression).method(...).method(...)" which includes support for duck typing, obtaining array size and calling get(index) on an array or collection.
350
+ - Support for subqueries to select multiple columns.
351
+ - Support for correlated aggregation in subqueries.
352
+ - Support for selecting multiple columns in a subquery.
353
+ - Support for contained-event syntax on events selected from a named window.
354
+ - Support for expressions in the [] bound repeat in patterns.
355
+ - Support for grouped data windows to remove groups that haven't changed for a given time period, as specified via hint.
356
+
357
+ - To be congruent to the JDBC 4 specification, the SQL query metadata now uses the value returned by the JDBC driver result set metadata for "getColumnLabel" as the column name or if that is null the value returned by "getColumnName".
358
+ - For plug-in aggregation functions, the parameter to the "validate" method has changed and is now a validation context that provides additional information. The "validateMultiParameter" method has been removed.
359
+ - We added a new example demonstrating runtime configuration.
360
+
361
+ Minor changes
362
+ - Fixed issue ESPER-471 Static method called 'join' (reserved keyword) not allowed
363
+ - Fixed issue ESPER-481 Create-Window with explicit column-types does not support column types that are an event type (documentation bug/improvement)
364
+ - Fixed issue ESPER-489 Plug-in loader destroy order should be reverse of creation order
365
+ - Fixed issue ESPER-493 "IllegalStateException" for an aggregation query without group-by and without aggregations in the select clause
366
+ - Fixed issue ESPER-455 Aggregation when used with "prev" in where clause may return an incorrect result.
367
+ - Fixed issue ESPER-466 First-length and first-unique combined to intersection (multiple data windows) to reduce insert stream
368
+ - Fixed issue ESPER-495 Support XPath attribute node list result casted to string array
369
+ - Fixed issue ESPER-487 Custom aggregation functions - pass indicator whether running windowed and allow access to child expressions
370
+ - Fixed issue ESPER-496 On-select with stream wildcard and aggregation produces event-per-group and not event-per-row
371
+
372
+ Changes in version 3.5.0
373
+ ------------------------
374
+ Major API changes
375
+ - None
376
+
377
+ New Features
378
+ - Support for EPL modules and deployment services.
379
+ - Support for "create schema": Declare an event type via EPL statement.
380
+ - Support for "for delivery" option: Grouped-delivery means any listeners/subscribers receive one invocation per group, discrete delivery an invocation per event.
381
+ - Support for expressions in parameters to SQL statements.
382
+ - Preemptive processing of events inserted into named windows. This helps to make behavior of queries with named windows more intuitive.
383
+ - Support for a new pattern guard "timer:withinmax". It takes a time period and maximum-count and ends the pattern subexpression when either the stopwatch or counter match.
384
+ - Support for a new pattern guard post-fix operator "while": Similar to a while loop, ends the pattern subexpression when an expression turns false.
385
+
386
+ Minor changes
387
+ - Fixed issue ESPER-388 Provide option to auto-remove event type when all statements referencing a type are destroyed
388
+ - Fixed issue ESPER-392 Nested properties with keywords can not be escaped with ticks
389
+ - Fixed issue ESPER-460 Added ResultSet to context provided to SQLOutputRowConversion and SQLColumnTypeConversion
390
+ - Fixed issue ESPER-463 Nested properties can not be escaped with ticks
391
+ - Fixed issue ESPER-464 Add an engine-level configuration parameter for default AccessorStyle
392
+ - Fixed issue ESPER-468 IllegalArgumentException while parsing "B until not B" pattern
393
+ - Fixed issue ESPER-469 Using java.sql.Date with renderer returns PropertyAccessException
394
+ - Fixed issue ESPER-470 Spring JMS input adapter ack's message before unmarshal
395
+ - Fixed issue ESPER-472 ClassCastException while sending TimeControlEvent into isolated runtime
396
+ - Fixed issue ESPER-473 Custom marshaller for Spring JMS adapter that returns DOM object results in an unrecognized event
397
+ - Many other documentation and performance improvements
398
+
399
+
400
+ Changes in version 3.4.0
401
+ ------------------------
402
+ Major API changes
403
+ - None
404
+
405
+ New Features
406
+ - Support for variables of type Object (any type), class or EventType
407
+ - Support for creating an explicit index on a named window for best on-demand query performance (aka. fire-and-forget queries)
408
+ - New socket input adapter
409
+ - New HTTP input and output adapter
410
+ - New database output adapter for queueable insert, update, delete (DML) and upsert keyed-insert/update
411
+
412
+ Minor changes
413
+ - Minor change to the SODA object model API to strictly follow the JavaBean standard
414
+ - For the PluginLoader API the "init" method now takes a context object that contains initialization parameters
415
+ - Fixed issue ESPER-445 Improve performance of match-recognize when large number of intermediate events
416
+ - Fixed issue ESPER-451 Memory leak in pattern with or-operator and permanently false subexpressions
417
+ - Fixed issue ESPER-430 PlugInProjectionExpression should allow more than one expression
418
+ - Fixed issue ESPER-453 Repeated Max and Min on Named Window Aggregations
419
+ - Fixed issue ESPER-457 ClassCastException when using subscriber to join statement with wildcard-select and distinct
420
+ - Fixed issue ESPER-446 Benchmark throws exception for weighted average sample
421
+ - Fixed issue ESPER-449 Create window fails for syntax providing column names and types explicitly and multiple data windows
422
+ - Fixed issue ESPER-450 Row-based and/or column-based conversion function for SQL query results
423
+ - Fixed issue ESPER-403 First-unique data window used with named window causes on-delete to misbehave
424
+ - Fixed issue ESPER-429 Replace "childNodeType" with "parameterType" in section 12.2.3
425
+ - Reorganized EsperIO to individual jar files; Deprecated opentick adapter
426
+ - Many other documentation and performance improvements
427
+
428
+
429
+ Changes in version 3.3.0
430
+ ------------------------
431
+
432
+ Major API changes
433
+ - None
434
+
435
+ New Features
436
+ - Support for subqueries to occur in filter expressions (stream or pattern)
437
+ - Support for subqueries in split-stream and on-set and on-select
438
+ - Support for on-update
439
+ - New aggregation functions: rate, last, first, nth, leaving
440
+ - The "prev" and "prior" functions now accept a stream name
441
+ - Optimization of min and max aggregation function for use with or without data window
442
+ - Support for annotations in statement object model
443
+ - Variables that are created via "create variable" and that are no longer referenced are removed
444
+
445
+ Minor changes
446
+ - Fixed issue ESPER-389 startAllStatements() starts rules in unpredictable order
447
+ - Fixed issue ESPER-393 Stream name alias not available for use in where-clause
448
+ - Fixed issue ESPER-396 Unbound stream and aggregating/grouping by unlimited key (i.e. timestamp) configurable state drop
449
+ - Fixed issue ESPER-398 Escape syntax for quote and double quote not working
450
+ - Fixed issue ESPER-402 Pattern with two NOT-operators connected by AND-operator throws ConcurrentModificationException (1 thread)
451
+ - Fixed issue ESPER-404 Statement resources not cleaned up after statement destroy keeping last event
452
+ - Fixed issue ESPER-405 Equals operator on object types in expressions should support inheritance
453
+ - Fixed issue ESPER-406 OutOfMemory : StatementMetrics not cleaned up after statement destroyed
454
+ - Fixed issue ESPER-409 Order-by clause not applied when pattern delivers multiple result rows for single incoming event
455
+ - Fixed issue ESPER-411 Operands of expression passed the wrong way round in patterns
456
+ - Fixed issue ESPER-414 In some scenario, createEPL fails with IllegalStateException vs EPException
457
+ - Fixed issue ESPER-415 statement object model fails on every-distinct
458
+ - Fixed issue ESPER-416 statement name provided by API does not overrides annotation provided name
459
+ - Fixed issue ESPER-432 Dangling meta character in regexp hangs the engine
460
+ - Fixed issue ESPER-418 Statement fails to compile if the statement only has a where-clause and uses an alias
461
+ - Fixed issue ESPER-419 Group-by with "output last" output rate limiting and wildcard select outputs last event and not last event per group
462
+ - Fixed issue ESPER-420 Group-by with wildcard-select may present wrong value for non-aggregated and non-grouped properties
463
+ - Fixed issue ESPER-421 Case-when throws NullPointerException when condition returns null
464
+ - Fixed issue ESPER-424 Self-join and order-by incorrect order
465
+ - Fixed issue ESPER-431 20-stream join hangs query optimizer
466
+
467
+
468
+ Changes in version 3.2.0
469
+ ------------------------
470
+
471
+ Major API changes
472
+ - None
473
+
474
+ New Features
475
+ - Support to the proposed SQL standard "match_recognize", a regular expression-based event pattern matching language
476
+ - Support for isolated service providers, which allow to control event visibility and time-related behavior on a statement level, i.e. suspend, preload or catch-up statements
477
+ - Support for "update istream" which allows declarative modification of event properties of events entering a stream.
478
+ - Support for "distinct" in the select clause
479
+ - Support for "output after" syntax to discard of events until time period passed
480
+ - Support for "limit" clause for on-select and on-insert
481
+
482
+ Minor changes
483
+ - Fixed issue ESPER-386 "Output when" with variables fails when multiple statements refer to same variable
484
+ - Fixed issue ESPER-385 NPE thrown on removeAllListeners for destroyed statement
485
+ - Fixed issue ESPER-382 ConcurrentModificationException for named window select/insert/delete
486
+ - Fixed issue ESPER-376 Restriction in element not parsing to right type for XSD-backed event type
487
+ - Fixed issue ESPER-375 Contained event selection for certain XML creates ClassCastException
488
+ - Fixed issue ESPER-373 NPE in output rate limiting using SODA
489
+ - Fixed issue ESPER-371 Using Esper 3.1.1, a POJO type of float isn't supported in the statements
490
+ - Fixed issue ESPER-370 Exception compiling pattern with repeat operator and filter using repeated property within the repeat operator itself
491
+ - Fixed issue ESPER-368 XML schema property plus XPath with the same property name produce incorrect result if schema and XPath typing don't match
492
+ - Fixed issue ESPER-367 OutOfMemory issue when a group-by expression returns an unlimited number of values
493
+ - Fixed issue ESPER-366 Missing export of package com.espertech.esper.event.property
494
+ - Fixed issue ESPER-365 Import EPL built in annotation by default
495
+ - Fixed issue ESPER-362 Error "Iteration over a unidirectional join is not supported" at statement start in a stream to window join
496
+ - Documentation and performance improvements
497
+
498
+
499
+ Changes in version 3.1.0
500
+ ------------------------
501
+
502
+ Major API changes
503
+ - The behavior of "timer:within" when used within an "every" in a pattern has changed: The sub-expression qualified by "timer-within" upon expiry
504
+ of the timer now evaluates to permanently false, while previously it simple stopped. This allows the "every" operator to restart such sub-expression.
505
+ For example, the expression:
506
+ every(A -> (B where timer:within(5 sec)))
507
+ ... When no B event arrives after an A event, the "every" restarts the subexpression looking for the next A followed by B within 5 sec.
508
+ - The PluginLoader interface for writing adapters has a new required method that must be implemented to allow plugins to initialize after complete Esper engine initialization.
509
+ - The provider URI of the default engine instance is now "default" instead of null.
510
+ This is for consistency with the default engine qualifier for optional use in stream and property name qualification, which is also "default".
511
+ Therefore EPServiceProviderManager.getDefaultProvider().getURI() returns "default", and passing null to the EPServiceProviderManager still returns the default instance.
512
+
513
+ New Features
514
+ - A new "every-distinct" operator has been introduced to the pattern language. Very similar to the "every" operator, this operator
515
+ suppresses duplicate results received from sub-expressions based on a set of expressions returning distinct-values.
516
+ - The EPL language now understands annotations following the annotation syntax standard.
517
+ An annotation is an addition made to information in a statement. Esper provides certain built-in annotations for
518
+ defining statement name (@Name), adding a statement description (@Description) or for tagging statements.
519
+ Applications can provide their own annotation classes that the EPL compiler can populate.
520
+ - The engine now provides a way to prioritize and preempt processing of an event when multiple statements must process the event,
521
+ via the @Priority and @Drop annotations.
522
+ - The insert-into clause can now directly populate an underlying event object from a select clause.
523
+ - We have extended the on-insert syntax by a new split-stream syntax. This allows to list multiple insert-into, select clauses and where-clauses
524
+ thereby making it easy to split or duplicate an event stream into multiple further event streams.
525
+
526
+ Minor changes
527
+ - Fixed Issue ESPER-350 Timer-Within should evaluate to permanently false allowing every to restart the expression
528
+ - Fixed Issue ESPER-349 Exception barrier to lock taken missing from filter processing potentially causing deadlock after an exception occurs
529
+ - Fixed Issue ESPER-348 XML event type fails to be configured with XSD on Java 6
530
+ - Fixed Issue ESPER-347 NullPointer with time_batch and START_EAGER with named window
531
+ - Fixed Issue ESPER-346 NullPointerException in on-select with aggregation and empty window
532
+ - Fixed Issue ESPER-345 NPE is thrown when evaluating statement with 'OR' in its having-clause.
533
+ - Fixed Issue ESPER-344 Pattern cleanup incomplete causing memory leaks
534
+ - Fixed Issue ESPER-343 Esper shouldn't log ExprValidationException
535
+ - Fixed Issue ESPER-341 Variable used with XML no-schema event in same statement creates ambigous property exception
536
+ - Fixed Issue ESPER-340 Lost of precision using BigDecimal for arithematic operation
537
+ - Fixed Issue ESPER-339 Parse error when using "every" in combination with repeat
538
+ - Fixed Issue ESPER-336 pluginloader stop not properly called - issue with EPserviceProviderManager.getProvider("existing")
539
+ - Fixed Issue ESPER-335 pluginloader stop called after engine runtime destroy
540
+ - Fixed Issue ESPER-334 PluginLoader reentrancy on Configuration
541
+ - Fixed Issue ESPER-333 Pattern followed-by expression to detect when no subexpressions are alive and indicate permanently false so "every" can restart
542
+ - Fixed Issue ESPER-332 NullPointerException in on-select with having clause for timer excution
543
+ - Fixed Issue ESPER-331 Runtime exception barrier for listener and subscriber
544
+ - Fixed Issue ESPER-328 Aggregation function nested created NPE in Timer thread
545
+
546
+
547
+ Changes in version 3.0.0
548
+ ------------------------
549
+
550
+ Major API changes
551
+ - Please see http://docs.codehaus.org/display/ESPER/Migrating+Esper+2.x+to+3.0
552
+ The summary of changes are:
553
+ - Upgraded version of dependent jar files
554
+ - Moved EventType, EventBean and related exception classes from package com.espertech.esper.event to com.espertech.esper.client
555
+ - Several minor rename of methods in the Configuration API related to event type name retiring "alias" as a word in method names
556
+ - EPL division expressions yield double-type results
557
+ - EPL view and pattern parameters strongly distinquish between string constant and property name
558
+ - EPL join statements for certain stream types now require a data window declaration
559
+ - EPL when using multiple data windows defaults to intersection semantics
560
+ - Extension API for views, pattern objects and event representations have additional or slighly changed signatures
561
+
562
+ New Features
563
+ - The view parameters and pattern object parameters are now expressions. Thereby they gain certain new features:
564
+ - Variables may be used to parameterize views or pattern objects;
565
+ - Prepared statements may use substitution parameters to parameterize views and pattern objects;
566
+ - Pattern objects may be parameterized by prior events;
567
+ - The syntax for views namespace.name('property') is no longer supported.
568
+ - New syntax to support contained-event selection, for use with coarse-grained events that contain finer-grained events or rows.
569
+ This allows convenient extraction and analysis of information from business-level composite events.
570
+ - Added XML and JSON renderers for output events
571
+ - When using multiple data windows for the same stream in EPL, the default policy is intersection of data windows, and a union-policy is also available via keyword.
572
+ This allows concise declaration and combination of multiple expiry policies and well-defined semantics.
573
+ - We have made substantial internal enhancements to the type system to simplify and support transposing from any type of stream to an event property in a further stream.
574
+ - Enhanced the XML DOM event to support: The changes gained features to transposing XPath expression results between statements and including arrays,
575
+ as well as transposing property expression results. The changes also correct a problem in which an expression "index[1]" accessed the firs element in a collection and not the second.
576
+ - Added a new method for statements to add a listener with replay in one transaction, by name "addListenerWithReplay".
577
+ - The EPL now returns a double-type result for division expressions where both operands to a division were non-FP types, such as "1/2", i.e. double 0.5.
578
+ This follows SQL standards and makes EPL easier to read and use. Esper 2.x returned an integer value following Java standards (i.e. zero).
579
+ - The EPL does no longer assume keep-all semantics if no data window is specified for a filter-based or pattern-based stream in a join.
580
+ EPL now requires a data window to be explicitly defined to applicable streams.
581
+ - Added support for SQL-standard ANY, SOME and ALL keywords in group comparison.
582
+ - Added advanced threading options to configuration for use with inbound, outbound and execution threading at engine-level.
583
+ - Improved support for Java-object event representation with parameterized types (Java generics), List and Iterable properties.
584
+ - Added support for escaping property names and event type names in case an overlap occurs with keywords.
585
+ - New configuration options to change the caching behavior for UDF invocations.
586
+
587
+ Minor changes
588
+ - Removed "stat:cube" view.
589
+ - Removed "indicator.jmx" package.
590
+ - Removed "emit" method from EPRuntime and EmittedListener.
591
+ - Removed examples LinearRoad, RSI and ATM.
592
+ - The Maven build no longer compiles the grammar. The grammar is now compiled via "esper/grammar/antlrtool.bat" or "antlrtool.sh". The resulting parser is
593
+ part of the source code base.
594
+ - Added new examples for named window and OHLC; We restructured the examples directory structure and added Eclipse projects.
595
+ - Fixed issue ESPER-326 Prepared On-Demand Query on named window returns incorrect count(*)
596
+ - Fixed issue ESPER-324 EPServiceStateListener exposes EPServiceProviderImpl
597
+ - Fixed issue ESPER-323 Timer thread caught unhandled exception: null
598
+ - Fixed issue ESPER-321 stat:linest has more derived properties than what documented
599
+ - Fixed issue ESPER-320 Pass explicit null value to user-defined function fails to start statement
600
+ - Fixed issue ESPER-318 Replace the term "alias" for event types with the term "name"
601
+ - Fixed issue ESPER-317 current_timestamp does not behave properly when accessed from getter API
602
+ - Fixed issue ESPER-316 XML DOM-backed events transpose properties that are DOM-subtrees to a new stream
603
+ - Fixed issue ESPER-314 Esper XML represented events - need clarification
604
+ - Fixed issue ESPER-313 using last | snapshot in output...when statement causes parsing error
605
+ - Fixed issue ESPER-312 NullPointerException in group-by query with only a count(*) in the having-clause and no other agg functions
606
+ - Fixed issue ESPER-311 Publish current statement results to listener upon listener-add and atomically
607
+ - Fixed issue ESPER-310 Safe iterator on unidirectional join not releasing lock
608
+ - Fixed issue ESPER-309 Named window model-after for Map-event types incompatible with insert of Map type
609
+ - Fixed issue ESPER-305 escape char parsing
610
+ - Fixed issue ESPER-304 impossible to get properties of events when a listener and a subscriber are added to a statement
611
+ - Fixed issue ESPER-303 Pooled DB connection obtained and returned even on cache hit
612
+ - Fixed issue ESPER-276 NullPointerException reported when enabling metrics reporting but still working
613
+ - Fixed issue ESPER-251 Named window with underlying event as a property and insert-into from pattern requires self-property in select clause
614
+
615
+
616
+ Changes in version 2.3
617
+ ------------------------
618
+
619
+ Major API changes
620
+ - Added API for on-demand queries
621
+
622
+ New Features
623
+ - Support for array-type properties in Maps; Support for map type name as a property type
624
+ - Listener API for receiving callbacks upon statement creation and state change as well as service state
625
+ - Allow event types to be removed at runtime; Allow detection of which statements reference types
626
+ - Added OSGi manifest to jar files
627
+ - Support for language-locale dependent sorting of String value
628
+ - Event type name added to EventType interface
629
+ - Added route methods for other event representations
630
+ - Added user object support to EPStatement
631
+
632
+ Minor changes
633
+ - Fixed issue ESPER-270 Property name order not always reflecting select clause order for getPropertyNames
634
+ - Fixed issue ESPER-274 Strange exception using median collection
635
+ - Fixed issue ESPER-275 Identifiers that are scientific notation numbers don't cause a parser error
636
+ - Fixed issue ESPER-276 NullPointerException reported when enabling metrics reporting but still working
637
+ - Fixed issue ESPER-280 isVariantStreamExists throws nptr
638
+ - Fixed issue ESPER-281 On-Select with Insert-Into throws NPE if no data selected from named window
639
+ - Fixed issue ESPER-282 Memory leak in grouped data window when combined with weighted-avg view
640
+ - Fixed issue ESPER-285 Correlation and Linest stats view within groupby problem
641
+ - Fixed issue ESPER-286 Map inheritance event type processes first derived event only for queries against supertype events
642
+ - Fixed issue ESPER-287 Improve startup performance for large numbers of statements with the same filter property
643
+ - Fixed issue ESPER-288 Write-only property of POJO event shows up in property name list
644
+ - Fixed issue ESPER-290 FIX adapter not documented
645
+ - Fixed issue ESPER-291 Delivery to observer failes with NPE if custom view posts null insert and remove stream
646
+ - Fixed issue ESPER-292 esper_reference.pdf : Figure 3.4. is incorrect
647
+ - Fixed issue ESPER-294 Pattern problem in 'every' operator not restarting a false sub-expression.
648
+ - Fixed issue ESPER-295 Time window onto a unique window not working
649
+ - Fixed issue ESPER-296 EPL 'not like' expressions in prepared statements lose negation
650
+ - Fixed issue ESPER-297 Detect dead database connection and retry
651
+ - Fixed issue ESPER-299 Need to pass context classloader to CGLib
652
+ - Fixed issue ESPER-300 IndexOutOfBoundsException in TimeBatchViewFactory
653
+ - Fixed issue ESPER-301 Time batch view documentation incorrectly shows reference point as optional with flow control keywords
654
+
655
+
656
+ Changes in version 2.2.0
657
+ ------------------------
658
+
659
+ Major API changes
660
+ - Two new reserved keywords: LIMIT and OFFSET; Added for support of the SQL-standard row limit clause.
661
+ - Bug fix for ESPER-264 that impacts joins that utilize the "unidirectional" keyword and that perform aggregation
662
+
663
+ New Features
664
+ - Support for repeat and repeat-until in pattern matching
665
+ - Enhancements for the create-syntax for named windows:
666
+ - Allows an additional SQL table-like definition syntax
667
+ - Allows constants in the model-after syntax
668
+ - Allows the window to be modelled after another named window, and populated from another named window at creation time
669
+ - Changed "as" to become an optional keyword
670
+ - Added support for BigDecimal and BigInteger in all aspects of EPL
671
+ - Added metrics reporting: Instrumentation to provide key engine and statement-level performance indicators as event streams
672
+ - Added support for row limiting
673
+ - Added four new data window views for for first-event type expiry policies: std:firstevent, std:firstunique, win:firstlength, win:firsttime
674
+ - Enhanced output limit clause to support crontab-like schedule
675
+ - Enhanced output limit clause to support output when an variable or expression turns true
676
+ - Enhanced plug-in aggregation functions to accept multiple parameters
677
+ - Support for the "inner" keyword for use in outer joins
678
+ - Support for variables to be parameters to an SQL join and method join
679
+ - Support for polling via iterator from a statement that contains only SQL queries or method invocations (alone or in a join, aka. no-stream pull API)
680
+ - Removed limitation on the number of historical streams (SQL and method) in joins, now supporting an unlimited number of historical streams, full iterator support
681
+ - Support for Map inheritance: map event types may now be declared to inherit from one or more Map supertypes
682
+ - Support for changing Map event types at runtime by adding properties to an existing type
683
+ - Optimization for certain filter-only statements to more efficiently process
684
+ - Added JMS text message marshaller and unmarshallers for Fix (Fix is a standard financial interchange format)
685
+
686
+ Minor changes
687
+ - Fixed issue ESPER-270 Property name order not always reflecting select clause order for getPropertyNames
688
+ - Fixed issue ESPER-269 User-define method with dot in parameter generates property not found
689
+ - Fixed issue ESPER-268 User-defined function reports runtime errors through the stack
690
+ - Fixed issue ESPER-264 Unidirectional keyword with aggregation posts lifetime-cumulative results rather then join-current cumulative results
691
+ - Fixed issue ESPER-263 Add boolean ConfigurationOperations.isVariantStreamExists(String variantStreamName)
692
+ - Fixed issue ESPER-258 Extension points for esperio
693
+ - Fixed issue ESPER-257 Esperio beans input to support subset of beans properties in input CSV
694
+ - Fixed issue ESPER-256 It would be really useful for CSVInputAdapter to have a row count so we can tell how many rows it has processed
695
+ - Fixed issue ESPER-254 Iterating over joins that join by polling execution (database or method joins)
696
+ - Fixed issue ESPER-250 Custom aggregation function provided by static inner class not possible
697
+ - Fixed issue ESPER-249 Enhance TimeBatchView with FORCE_UPDATE, START_EAGER keywords
698
+ - Fixed issue ESPER-247 Cast function for String to Int conversion returns null
699
+ - Fixed issue ESPER-246 Unique-view incorrectly posts remove stream data for shared state under view sharing conditions
700
+ - Fixed issue ESPER-243 Swallowing InterruptedException in EPServiceProviderImpl
701
+ - Fixed issue ESPER-241 Predefined variant types not supporting dynamic event types
702
+ - Fixed issue ESPER-239 Esperio - memory leak in AdapterCoordinatorImpl
703
+
704
+
705
+ Changes in version 2.1.0
706
+ ------------------------
707
+
708
+ Major API changes
709
+ - New API to plug-in of a custom event type
710
+ - Added additional sendEvent method that accepts alias name and event object, plus EventSender instance to skip type lookup
711
+
712
+ New Features
713
+ - Added support for variant event streams, into which events of disparate event types can be inserted and treated as the same type
714
+ - Added support for update events (aka. version or revision events)
715
+ - Added support for streaming XML using Apache Axiom
716
+ - Added support for EsperIO CSV adapter to send bean events
717
+ - Allowed normalization of subevents into resultant stream
718
+ - Allowed DOM-type property of XML events transpose into new stream for use with XPath and nested syntax
719
+
720
+ Minor changes
721
+ - Properties can now be prefixed by the engine URI and the event type alias used in the from-clause; Event streams can be prefixed by the engine URI (SQL compatibility)
722
+ - Added full support for nano/microsecond resolution
723
+ - Allowed access to statement's XPathFactory instance to supply XPathFunctionResolver, etc.
724
+ - Added support for an escape syntax for event property names that contain dots
725
+ - Allowed esperio to use external timer
726
+ - Added support to specify a time period in output rate limiting
727
+ - Added support for the "in" operator to accept array properties, collection (set, list) property or map property for contains-value semantics
728
+ - Now uses thread ClassLoader for compatilibility with OSGi
729
+ - Provide additional XPath return value types to cast to
730
+ - Allow certain keywords to be used as column alias, such as "select count(*) as count from foo"
731
+ - Fixed issue ESPER-197 EsperIO/CSV reported to be slow
732
+ - Fixed issue ESPER-208 Esperio runs out of stack space when processing largeCSV file and not using engine thread
733
+ - Fixed issue ESPER-209 Stop of consumer statements of named windows may not entirely deregister consumer
734
+ - Fixed issue ESPER-213 ConcurrentModificationException creating consuming statements to a single named window under threading
735
+ - Fixed issue ESPER-214 ClassCastException in named window dispatch for timer thread when multiple insert-into
736
+ - Fixed issue ESPER-219 Documentation for plug-in views not specifying implicit contract towards object references
737
+ - Fixed issue ESPER-220 TimeBatchView.computeWaitMSec can give incorrect results for low "interval"
738
+ - Fixed issue ESPER-221 Named window with batch expiry policy causes late consumers to post incorrect data or throw IllegalArgumentException
739
+ - Fixed issue ESPER-227 No documentation on time-batch view parameter for reference point
740
+ - Fixed issue ESPER-228 PDF document page number not showing
741
+
742
+
743
+ Changes in version 2.0.0
744
+ ------------------------
745
+
746
+ Major API changes
747
+ - All package names have changed from "net.esper" to "com.espertech.esper"
748
+ - We have renamed EQL to EPL: All method names and other references to EQL have been renamed to EPL, i.e. createEQL to createEPL
749
+ - We have made changes to engine output to make the output more useful and consistent between different types of queries,
750
+ and to make the engine more performant. Please see http://docs.codehaus.org/display/ESPER/Migrating+Esper+1.x+to+Esper+2.x for details.
751
+ - We have upgraded 3rd party library dependencies to new versions
752
+ - We have switched the schema to 2.0, made it namespace-aware and available online
753
+
754
+ New Features
755
+ - New strongly-typed and fast output event delivery to subscriber objects via method call
756
+ - Performance improvement: statements without listeners or subscriber (iterator or output-snapshot statements that use insert-into) now compute much faster
757
+ - We have upgraded to ANTLR Version 3 to gain excellent error handling, incremental parsing, easy-to-read grammar and a smaller runtime jar
758
+ - We have changed view parameter syntax such that event properties do no longer need to appear in quotes
759
+ - Added support for nano/microsecond timer resolution (ESPER-191)
760
+ - Added API for setting variable values (ESPER-181)
761
+ - Added support for map return types in from-clause method invocations
762
+ - Added support for a "unidirectional" keyword in joins/outer join to control join direction
763
+ - Added support for multiple event properties in unique view (std:unique)
764
+ - Added support for use of aggregation functions in subselect
765
+ - Fixed issue ESPER-136 Improve error messages when encountering reserved keywords
766
+ - Fixed issue ESPER-138 Allow Map event type to contain nested Map values
767
+ - Fixed issue ESPER-145 Ignore start or stop commands on already started or stopped EPStatements.
768
+ - Fixed issue ESPER-178 Problem selecting "sum" as a property of event posted by stat:uni view
769
+ - Fixed issue ESPER-179 Iterator on select statement selecting from a named window may return incomplete results
770
+ - Fixed issue ESPER-180 Null aggregation results outer joining a named window on filled named window
771
+ - Fixed issue ESPER-183 Replace LinkedLists with ArrayDeque where possible
772
+ - Fixed issue ESPER-184 NPE when using regexp or like on null pojo properties
773
+ - Fixed issue ESPER-185 Remove limitation whereas grouped-by properties cannot also occur within aggregation functions
774
+ - Fixed issue ESPER-186 Iterator not honoring order by clause for grouped join query with output-rate clause
775
+ - Fixed issue ESPER-187 Join of two or more named windows on late start may not return correct aggregation state on iterate
776
+ - Fixed issue ESPER-188 Output snapshot buffers events until output condition is reached
777
+ - Fixed issue ESPER-188 Output snapshot buffers events until output condition is reached
778
+ - Fixed issue ESPER-192 Support non-String type auto-discovery in EsperIO
779
+ - Fixed issue ESPER-194 Nullpointer when using Jcl104-over-slf4j
780
+ - Fixed issue ESPER-195 Not considering having-clause in un-aggregated and un-grouped query (no-join only)
781
+
782
+ Minor API Changes:
783
+ - Changes to configuration classes:
784
+ Moved the classes ExpiryTimeCacheDesc, LRUCacheDesc, DataCacheDesc, CacheReferenceType out inner classes of ConfigurationDBRef to
785
+ ConfigurationExpiryTimeCache, ConfigurationLRUCache, ConfigurationDataCache, ConfigurationCacheReferenceType
786
+ since the classes were applicable elsewhere
787
+ - Renamed method addJavaSqlTypesBinding on ConfigurationDBRef to addSqlTypesBinding
788
+ - Minor change to SelectClause in the SODA API
789
+
790
+ Changes in version 1.12.0
791
+ ------------------------
792
+
793
+ * New feature: Named window
794
+ - Allows to share data windows between statements
795
+ - New create-window syntax to create named windows
796
+ - Define entry criteria via insert-into
797
+ - Define exit criteria via the new on-delete syntax
798
+ - Perform on-demand queries using the new on-select syntax
799
+ * New feature: Variable
800
+ - New create-variable syntax declares a variable
801
+ - Variables can occur in any expression
802
+ - A variable can occur in an output-rate limit to dynamically control output rate
803
+ - Update variables via the new on-set syntax
804
+ - The engine makes consistency and atomicity guarantees
805
+ * New multi-policy tumbling window (ESPER-165)
806
+ * New time-ordering window for more flexibility in handling out-of-order events (ESPER-147)
807
+ * New accumulating time-based data window (ESPER-166)
808
+ * New 'snapshot' keyword for the output rate limiting clause for outputting full statement state
809
+ * New safe iterator to provide a concurrent-safe pull API (ESPER-172)
810
+ * Support for method invocations in the from-clause; For example to query a distributed, object database or web service
811
+ * Support for iterator and safe iterator to iterate over joins and outer joins (ESPER-173)
812
+ * Support for stream-wildcard "stream.*" selections for more flexibility selecting from joins and patterns (ESPER-174)
813
+ * Support for the stream name or pattern tag name as a valid property in expressions, returning the underlying event for the stream
814
+ * Support for instance method calls on stream or pattern events that are Java objects
815
+ * Support for indexing of cached result sets of SQL poll queries and method invocations
816
+ * Support for expiry time cache backed by soft-reference Map and hard-reference map (ESPER-167)
817
+ * Support for an unmatched event listener that receives a callback if an event matches no statement (ESPER-160)
818
+ * Support for JDK5 enum classes natively (ESPER-13)
819
+ * Support for constants (public static final fields) in expressions
820
+ * Fixed issue ESPER-125 IllegalStateException in a self-joining statement without join condition using sorted window
821
+ * Fixed issue ESPER-177 Deadlock in EPRuntimeImpl.sendEvent
822
+ * Fixed issue ESPER-176 NullPointerException for grouped-by length view and previous operator
823
+ * Fixed issue ESPER-175 ArrayIndexOutOfBoundsException when no event posted
824
+ * Fixed issue ESPER-171 AutoID example in Sun JDK6 fails with Invalid schema error (a JDK6 compatibility issue)
825
+ * New example: Java Messaging Service (JMS) server shell
826
+ - demonstrates a multi-threaded JMS server
827
+ - with dynamic statement management using Java Management Extensions (JMX)
828
+ * API change: AggregationSupport now requires an implementation of the clear() method
829
+ * documentation improvements
830
+ * performance improvements: rewritten insert-into and listener thread blocking techniques for reliable ordered delivery, other changes
831
+
832
+
833
+ Changes in version 1.11.0
834
+ ------------------------
835
+
836
+ * Support for statement object model (ESPER-108)
837
+ - allows to build, change or interrogate an object-oriented representation of a statement
838
+ - round-trip between EQL and object model
839
+ * Support for precompiled statements and substitution parameters (ESPER-50, ESPER-31)
840
+ * Support for dynamic (unchecked) properties; Support for instanceof and cast (ESPER-135)
841
+ * Support for the StatementStopCallback to deliver events raised by plug-in views (ESPER-158)
842
+ * Support for automatic bean aliases by specifying imported packages (ESPER-149)
843
+ * New "current_timestamp" reserved keyword returns the current engine time (ESPER-144)
844
+ * API provides timestamp with last state change in EPStatement (ESPER-144)
845
+ * Fixed issue ESPER-129 "DOM expects a Document, no error checking if not"
846
+ * Fixed issue ESPER-131 "Namespace problem using XML events and XPath properties"
847
+ * Fixed issue ESPER-134 "EPException using std:groupby without child view"
848
+ * Fixed issue ESPER-142 "Relational Database Access does not work with Oracle JDBC"
849
+ * Fixed issue ESPER-159 "Two patterns with similar filters cause duplicates reported by one pattern"
850
+ * Fixed issue ESPER-155 "BeanEventType fails on write only property"
851
+
852
+ Changes in version 1.10.0
853
+ ------------------------
854
+ * Support for a new statement-aware listener interface (ESPER-113)
855
+ * Support for case-insensitive Java-class event property names (ESPER-103)
856
+ * Fixed issue ESPER-112 "Pattern problem in 'every' operator not restarting a permanently false sub-expression"
857
+ * Fixed issue ESPER-114 "Allow equals operator on object types in expressions"
858
+ * Fixed issue ESPER-115 "NullPointerException using iterator on pattern without window"
859
+ * Fixed issue ESPER-118 "NullPointerException when select * and additional fields"
860
+ * Fixed issue ESPER-121 "Filter expression not evaluating correctly after optimization and using multiple pattern subexpression results"
861
+ * Fixed issue ESPER-122 "IllegalArgumentException in a join statement between same-typed map-underlying events"
862
+ * Fixed issue ESPER-124 "IllegalStateException in a grouped time window using the prior function"
863
+ * Fixed issue ESPER-126 "Allow null statement name for createPattern"
864
+ * Documentation improvements
865
+ * Performance improvement when running engine without log4j configuration
866
+
867
+
868
+ Changes in version 1.9.0
869
+ ------------------------
870
+ * Improvements to multi-threaded processing:
871
+ - Deliver events to listeners in a predictable order
872
+ - Deterministic in processing events between statements that consume other statement's events via insert-into
873
+ * Support for last-day-of-month and weekday for timer:at crontab functions (ESPER-84)
874
+ * Support for subqueries to return the event object itself (ESPER-105)
875
+ * Additional documentation on grouping and aggregation (output model chapter)
876
+ * Additional documentation on threading and concurrency (API chapter)
877
+ * New example out of the RFID domain featuring a Swing GUI and a simulator
878
+ * Fixed issue ESPER-98 "NullPointerException for Joins involving Map event types"
879
+ * Fixed issue ESPER-99 "IllegalStateException combining a time window with min/max and group-by and output every"
880
+ * Fixed issue ESPER-101 "ArrayIndexOutOfBounds with 'output last' and group by"
881
+ * Fixed issue ESPER-107 "Memory leak using previous function and length window under a group"
882
+ * Fixed issue ESPER-109 "NPE while fetching events from statements"
883
+ * Fixed issue ESPER-110 "Iterator not honoring filter, aggregation, group-by and having clause"
884
+
885
+
886
+ Changes in version 1.8.0
887
+ ------------------------
888
+ * Support for subqueries including the exists and subquery-in syntax (ESPER-22 support for subqueries)
889
+ * Support for plug-in user-defined aggregation methods, and plug-in pattern observer and pattern guard objects (ESPER-40)
890
+ * Fixed issue ESPER-93 "Improve error handling parsing too large Integer numbers and remove L suffix requirement for Long"
891
+ * Fixed issue ESPER-96 "Cache result of user-defined functions when parameter set is constants"
892
+ * Fixed issue ESPER-94 "Performance degradation for certain statement between 1.4 and 1.5 of 25%"
893
+ * Significant performance improvements in statement event output and lock management
894
+
895
+
896
+ Changes in version 1.7.0
897
+ ------------------------
898
+ * Support for free-form filter expressions (User-defined filter functions ESPER-77, Pattern Filter - null value support ESPER-17, ESPER-91)
899
+ * New JMS input and output adapter based on Spring JMS templates (ESPER-4, ESPER-8, ESPER-7)
900
+ * Support for adding new event type aliases and Map and DOM event types during runtime (ESPER-87)
901
+ * New statement management API (ESPER-90)
902
+ Note: Starting this release the engine remembers stopped statements however a stopped statement takes very little memory.
903
+ Destroy a statement to eliminate any resources held by an engine for a statement.
904
+ * Allow literal keywords to be case insensitive (ESPER-89)
905
+ * More helpful error messages when invalid syntax (ESPER-82)
906
+ * Support for plugging-in a custom-developed view (ESPER-41)
907
+ * Fixed issue ESPER-86 "selecting first element via prev and count(*)"
908
+ * Fixed issue ESPER-92 "String with parantheses not parsing in static method arg"
909
+
910
+
911
+ Changes in version 1.6.0
912
+ ------------------------
913
+ * Added support for group-by and previous (ESPER-80 Prev function to consider grouped windows)
914
+ * Added length window batch (ESPER-27 jumping/tumbling window)
915
+ * Added support for array definition (Enhancement Request ESPER-76 Java array initialization syntax for constants)
916
+ * Removed dependency on Apache Common BeanUtils library (commons-beanutils-1.7.0)
917
+ * Fixed issue ESPER-78 "Insert-into streams not using correct event type when same-typed streams"
918
+ * Docs: Output model illustrations for time windows and event model; Extensive description of built-in views
919
+
920
+
921
+ Changes in version 1.5.0
922
+ ------------------------
923
+ * Multithread-safety for all operations provided by the administrative and runtime API.
924
+ Client applications can perform multithreaded sends of events into the engine as well as create, start and stop statements during operation, while retaining full control over threading and efficiently sharing resources between statements (Enhancement Request ESPER-48 Multithread-safety)
925
+ * Documentation - new chapter explaining the output model
926
+ * fixed issue ESPER-75 "PropertyAccessException selecting individual fields from a group-by with sub-ordinate length window"
927
+
928
+
929
+ Changes in version 1.4.0
930
+ ------------------------
931
+ * New Esper Input Adapter API (EsperIO) for reading CSV (comma-separated value format) files and running event simulations from timestamped CSV files (ESPER-6 Input Adapter for reading CSV files)
932
+ * (EQL) Support for 'prior' and 'prev' (previous) operator (Enhancement request ESPER-25)
933
+ * (EQL) Support for 'in' and 'not in' list-of-value matching in filter expressions,
934
+ and for 'between' and 'not between' keywords, and 'not in' ranges (Enhancement request ESPER-66)
935
+ * (EQL) Support for modifying events in a stream, i.e. wildcard and expressions combined in a select-clause and insert into (Enhancement request ESPER-67)
936
+ * Various documentation enhancements and performance tuning changes
937
+ * Fixed issue ESPER-69 "Pull throws UnsupportedOperationException for statement not selecting wildcard"
938
+ * Fixed issue ESPER-68 "Followed-by operator not releasing memory for dead sub-expressions"
939
+
940
+
941
+ Changes in version 1.3.0
942
+ ------------------------
943
+ * (EQL) Added support for SQL queries within EQL (Enhancement request ESPER-30)
944
+ * (EQL) Added support for regular expressions (regexp) and SQL 'like' (Enhancement request ESPER-65)
945
+
946
+
947
+ Changes in version 1.2.0
948
+ ------------------------
949
+ * (EQL) Added support for 'in' and 'between' standard SQL keywords
950
+ * (EQL) Fixed: EQL windows take seconds parameter while patterns take milliseconds parameter (Issue ESPER-52)
951
+ NOTE: The following functions now take seconds (not milliseconds) as a parameter: timer:within, timer:interval, win:ext_time
952
+ New syntax for specifying time periods introduced: example: timer:within(1 min 5 sec) equivalent to timer:within(65)
953
+ * (EQL and Pattern) Mechanism to support EventType Adaptors for legacy Java classes (Enhancement request ESPER-55)
954
+ * (EQL and Pattern) Support for != (not equals) in filter expressions (Enhancement request ESPER-63)
955
+ * (EQL) Support for select-clause istream and rstream keywords (Enhancement request ESPER-54)
956
+ * fixed issue ESPER-58 "IllegalMonitorStateException logged by engine"
957
+ * (Doc) Add J2EE example (Enhancement request ESPER-64)
958
+ * (Doc) How does one use emit (Enhancement request ESPER-62)
959
+
960
+
961
+ Changes in version 1.1.0
962
+ ------------------------
963
+ * (EQL) Added support for pattern expressions in EQL statements (Enhancement request ESPER-53 Consuming pattern-generated events in EQL)
964
+ * (EQL) Added 'case' control flow function
965
+ * (EQL) Added 'coalesce' comparison function
966
+ * fixed issue ESPER-56 "count(*) always returns 0"
967
+ * fixed issue ESPER-59 "Internal Threading Bugs Found"
968
+ * fixed issue ESPER-57 "Initialize not resetting types declared via 'insert into'"
969
+ * fixed issue ESPER-61 "Having clause not applied in query without group-by and without aggregation functions"
970
+ * documentation enhancements
971
+
972
+
973
+ Changes in version 1.0.5
974
+ ------------------------
975
+ * (EQL) Added support for the "first" keyword in output rate limiting for outputting only the first matching event for an interval
976
+ * (EQL and Pattern) Added support for XML events represented by a document object model (DOM) instances of org.w3c.dom.Node
977
+ * (EQL and Pattern) Added support for Map events represented by a java.util.Map including object values
978
+ * (Docs and Examples) New AutoId RFID example for XML event processing, includes simulator for running from the command line
979
+ * (Docs and Examples) New chapter on Event Representations
980
+
981
+
982
+ Changes in version 1.0.0
983
+ ------------------------
984
+ * (EQL) Added support for invoking Java library static methods, invoking user-defined static methods, and defining an auto-import list
985
+ * (EQL) Sort view ext:sort now also allowing multiple columns to sort on
986
+ * (EQL) Added NOT, modulo (%) and SQL string concatention operator (||)
987
+ * (EQL) New example 'Market Feed Monitor' which showcases rate calculation and fall-off detection. With a simulator that
988
+ can be run from command line.
989
+ * (build) Build scripts now build Linux tarball; Shell scripts for compiling and running examples reworked.
990
+
991
+
992
+ Changes in version 0.9.5
993
+ ------------------------
994
+ * (EQL) Capability added to sort output using an "order-by" clause
995
+ * (EQL) Support for bit-wise AND (&), OR (|) and XOR(^) operators
996
+ * (EQL) Bug fix for allowing boolean expression in select clauses, such as "select a and b from MyEvent..."
997
+ * (EQL) Added support for "insert into" thus allowing chains of EQL statements, and merging of event streams
998
+ * (Docs and Examples) New 10-minute tutorial; Transaction example simplified
999
+
1000
+ Changes in version 0.9.1
1001
+ ------------------------
1002
+ * (EQL) Bug fix for statements that contain only aggregation functions in the select clause such as
1003
+ "select sum(volume) from StockTick". The engine was incorrectly posting an event per event posted
1004
+ by the stream's window, rather then a single aggregate event.
1005
+ * (EQL) Bug fix for group-by without output rate limiting. This problem occured using a group-by clause
1006
+ without output rate limit and resulted in multiple events posted that include prior groups for each event posted
1007
+ by the window.
1008
+ * (EQL) New example 'Transaction 3-event challenge' which shows EQL in use for detecting missing events and
1009
+ computing latency totals overall and grouped. Added scripts for compiling and executing the example.
1010
+
1011
+
1012
+ Changes in version 0.9.0
1013
+ ------------------------------------
1014
+ * (EQL) Now supporting outer joins for an unlimited number of event streams
1015
+ * (EQL) Support for output rate limiting based on number of events and time-based, and choice of last or all events
1016
+ * (EQL) Renamed view "std:last" to "std:lastevent"
1017
+ * (EQL) New reserved keywords: last, events, output, seconds, minutes
1018
+
1019
+
1020
+ Changes in version 0.8.5
1021
+ ------------------------
1022
+ * (EQL) Added support for the group-by clause and the having-clause
1023
+ * (EQL) Added support for aggregation functions in the select and having-clauses; The list of aggregation functions is:
1024
+ max, min, sum, avg, count, median, stddev, avedev; The "distinct" keyword is also supported for each; The "count(*)" syntax is supported.
1025
+ * (EQL) Group-by view has been renamed from "std:group" to "std:groupby" since group is a reserved keyword
1026
+ * (EQL) The univariate statistics view "stat:uni" changed the name of derived event properties to "stddev" and "stddevpa" from formerly
1027
+ "stdev" and "stdevpa" to stay consistent with the aggregate functions of the same name
1028
+
1029
+
1030
+ Changes in version 0.8.0
1031
+ ------------------------
1032
+ * (EQL and Event Pattern) Event inheritance and interface implementation support; Added support for interfaces,
1033
+ abstract classes, superclasses. E.g. select * from IMyEvent (where IMyEvent) is an interface or superclass, and event classes that
1034
+ implement this interface or extend the superclass match the criteria.
1035
+ * (EQL and Event Pattern) Added support for simple, mapped, indexed, nested and any combination of these anywhere where
1036
+ and event property name is expected. E.g. subordinate[3].address(home).city
1037
+ * (EQL and Event Pattern) Refined exception texts to better indicate syntax errors or messages in validating pattern and EQL statements
1038
+ during statement creation. Added EPStatementSyntaxException and EPStatementException.
1039
+
1040
+
1041
+ Changes in version 0.7.5
1042
+ ------------------------
1043
+ * (API) A configuration can now optionally be supplied to an engine instance via the Configuration parameter to EPServiceProviderManager.
1044
+ This enabled event patterns and EQL to use short event names not requiring making the fully-qualified Java class name optional
1045
+ * (EQL) Outer joins: left, right and full join on 2 streams
1046
+ * (EQL) IS NULL, = NULL, IS NOT NULL, <> and != now supported in where clause
1047
+ * (EQL) New built-in function MAX(a, b,...), MIN(a, b,...)
1048
+ * (Event Pattern) Use of results in filters, such as "every A=X -> every B=X(objectID=A.objectID)"
1049
+ * (Event Pattern) improved removal of permanently false patterns (e.g. B arrives in 'A and not B')
1050
+ * (EQL and Event Pattern) Removed requirement that event names have () postfix, e.g. 'every A=X' equivalent to 'every A=X()'
1051
+ * (Documentation) new section on builtin functions
1052
+ * (Examples) Sample ATM added to show simple join
1053
+
1054
+
1055
+ version 0.7.0
1056
+ -------------
1057
+ Initial alpha version
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+