All Versions
15
Latest Version
Avg Release Cycle
26 days
Latest Release
1239 days ago

Changelog History
Page 1

  • v0.4.6

    January 09, 2017

    🛠 Bugfixes

    • [Core] Entity interface drops type parameter (#178)

    🔋 Features

    • [Repository] Introduced QuerySubscriber (#164)

    👌 Improvements

    • [Layout] Improve error message (#180)
    • [PostgreSQL] enforce pgjdbc-ng and make use of HikariCP underneath (#185)
    • Minor components dependency graph improvement (#186)
    • [Kotlin] Drop class analyzer requirement (#187)

    ⬆️ Upgrades

    • [Core] cqengine 2.9.2 (#182)
    • [Kotlin] Use Kotlin 1.1-M04 (#189)
  • v0.4.5

    November 13, 2016

    🛠 Bugfixes

    • [Core] @Indices annotation has no effect (#171)

    🗄 Deprecations

    • 🗄 [Core] EntitySubscriber#accept(Stream) is deprecated (#172)
    • 🗄 [Core] non-final index definitions are deprecated (#176)

    ⬆️ Upgrades

    • [Core] Guava 20.0 (#175)
  • v0.4.4

    October 28, 2016

    🛠 Bugfixes

    • [HLC] Absence of local NTP server silently locks es4j up (#163)
    • 👻 [Core] Use of MultiValueIndex results in an exception (#165)
    • [PostgreSQL] Map type name in PostgreSQL can get too long and trimmed (#168)
    • [Core] Impossible to index non-primitive attributes (#169)
    • [Repository] Exceptionally terminated commands still get result() called (#170)

    🔋 Features

    • [Core] EntitySubscriber (optional) repository capture (#166)
  • v0.4.3

    October 17, 2016

    Backwards-incompatible changes

    • [Core] OSGi BundleCommandSetProvider and BundleEventSetProvider are replaced with a single, automatically installed OSGiEntitiesProvider that scans all bundles (#161)

    🛠 Bugfixes

    • 📦 [Core] A test package was leaked into the main source set (#162)
    • [PostgreSQL] Netty dependency for eventsourcing-postgresql was not OSGi compatible (#158)

    ⬆️ Upgrades

    • [Core] cqengine 2.8.0 (#159)
  • v0.4.2

    September 21, 2016

    🔋 Features

    • [Layout] Map (associative array) type has been added (#152)
    • [Core] Index discovery mechanism is no longer hardcoded (#154)
  • v0.4.1

    September 14, 2016

    Backwards-incompatible changes

    • [Core] Index definition syntax is simplified for most of cases (when query options are not necessary) (#144)

    🛠 Bugfixes

    • [Repository] Command#events can no longer block publishing commands through the repository (#147)
    • [CEP] RFC 3/CEP event layout names were incorrect (#148)
    • [PostgreSQL] PostgreSQL is no longer leaking ResultSet when deserializing arrays (#150)

    ⬆️ Upgrades

    • [Core] cqengine 2.7.1 (#143)

    Misc

    • A process manager implementation example is provided (#146)
  • v0.4.0

    July 15, 2016

    Backwards-incompatible changes

    • 🚚 [Core] Entity, Command and Event are now interfaces, the classes were moved to to StandardEntity, StandardCommand and StandardEvent (#67)
    • [Core] Model#id() has been renamed to Model#getId() for consistency of the interface (#114)
    • [Core] Entity layouts are now constructor + getters driven, allowing for immutable entities (#83, #87)
    • [Layout] new Layout<>(klass) has been replaced with Layout.forClass(klass) (#83)
    • [Core] Command<Result> signature has been changed to Command<State,Result>, Command#events return type has changed to EventStream to hold the state and Command#onCompletion has been renamed to #result (#77, #84)
    • [Core] New index definition syntax via SimpleIndex and MultiValue index (#133)
    • 🚚 [Core] Most of repository implementation related code was moved to com.eventsourcing.repository (#64)
    • [Core] new StandardRepository() now will use localhost NTP server (#76, #66)
    • [Core] Renamed MemoryLockProvider to LocalLockProvider (#69, #70)
    • 🚚 [Core] Journal#commandEventsIterator has been removed (#69)
    • 🚚 [Core] MemoryJournal has been moved to eventsourcing-inmem (#69)
    • [Layout] Layout serialization/deserialization framework can be extended to other byte-oriented encodings (#74)

    🛠 Bugfixes

    • [Core] Plugging in indices did not work (#94)
    • [Core] Entity static initialization can no longer hang the current thread (#65)
    • [H2] MVStoreJournal#journal will no longer into an infinite recursion on 👻 having an exception during CommandTerminatedExceptionally journalling (#82)
    • [Core] OSGi StandardRepository#activate() now waits until repository is started (#92)
    • [Core] byte[] equality did not work in MemoryIndexEngine (#100)
    • ⚡️ [HLC] Fixed initialization of HybridTimestamp and updating with another HybridTimestamp (#112)

    🔋 Features

    • [CEP] Migrated es4j-cep into the project to maintain version parity (#60)
    • [Migrations] Implemented 8/EMT and LayoutMigration to standardize migrations (#69)
    • [Core] EventCausalityEstablished event-command causality indexing has been implemented (#69)
    • 👍 [Core] Better support for Kotlin in Repository (#72)
    • [Queries] Composable model collection queries (#123)
    • ✅ [Queries] LatestAssociatedEntryQuery query has been added (#115)
    • ✅ [Queries] IsLatestEntity query has been added (#117)
    • [Queries] ModelQueries.lookup helper for looking up an entity by ID has been added (#116)
    • [PostgreSQL] Implemented PostgreSQL journal (#79)
    • [PostgreSQL] Implemented PostgreSQL equality and navigable indices (#94, #104)
    • 🔒 [PostgreSQL] Implemented PostgreSQL-based lock provider PostgreSQLLockProvider (#98)
    • [Core] Expose CascadingIndexEngine index decisions through JMX (#94)
    • 👍 [Kotlin] Add basic support for Kotlin (#88, #99)

    Specification compliance

    • [Core] Layout and Property are now 7/LDL compliant (#61)
    • [Repository] AbstractRepository now adheres to 8/EMT and records EntityLayoutIntroduced (#91)
    • 👻 [Repository] AbstractRepository now adheres to the exception reporting specified in 9/RIG (#102)

    ⬆️ Upgrades

    • cqengine 2.7.0 (#135)

    Misc

    • Source and javadoc jars are now included into distribution (#78)
  • v0.3.2

    June 15, 2016

    🔋 Features

    • [Core] Added an API to iterate over command's events (#46)
    • ⚡️ [Core] If a command had a timestamp prior to publishing, the timestamp will not be overriden and repository's timestamp will be updated (#55)
    • ⚡️ [Core] If an event had a timestamp prior to journalling, the timestamp will not be overriden and repository's timestamp will be updated (#56)
    • [Core] Repository#getTimestamp() was added (#55)

    🛠 Bugfixes

    • [HLC] HybridTimestamp now follows the layout prescribed in RFC6/HLC (#47)
    • 🚀 [H2] Current H2 version doesn't export org.h2.mvstore.db in OSGi, making es4j undeployable in OSGi. Own build with a fix is used now (#49)
    • 🛠 [Core] CascadingIndexEngine's self-referencing in OSGi was fixed (#50)
    • [Core] MemoryJournal still recorded normal events even when the command terminated exceptionally (#51)
    • [H2] MVStoreJournal command hash keys were wrongfully overwritten (#54)
    • ✅ Outstanding failing tests were fixed (#52, #53)
  • v0.3.1

    June 10, 2016

    Backwards-incompatible changes

    • 🚚 [Layout] Character type removed as RFC1/ELF no longer defines it (#30)

    🛠 Bugfixes

    • [Layout] UnknownTypeHandler was losing layout type information, according to RFC1/ELF, it should be kept (#42)

    🔋 Features

    • 👍 [Layout] Added support for RFC1/ELF's Timestamp (#41)

    👌 Improvements

    • [H2] Slightly faster MVStoreJournal by avoiding extra reads (tryPut vs put) (#32)

    ⬆️ Upgrades

    • cqengine 2.6.0 (#29)
    • h2 1.4.192 (#33)
  • v0.3.0

    May 19, 2016

    Backwards-incompatible changes

    • EntityHandle is now an interface (#23)

    🔋 Features

    • 🆕 New EntitySubscriber interface to subscribe to subsets of journaled entities. (#22)