<commit_before>WIP
===

**Backwards-incompatible changes**

* [Core] `Entity`, `Command` and `Event` are now interfaces, the classes were moved to to `StandardEntity`, `StandardCommand` and `StandardEvent` ([#67](https://github.com/eventsourcing/es4j/pull/67))
* [Core] `Model#id()` has been renamed to `Model#getId()` for consistency of
the interface ([#114](https://github.com/eventsourcing/es4j/pull/114))
* [Core] Entity layouts are now constructor + getters driven, allowing
for immutable entities ([#83](https://github.com/eventsourcing/es4j/pull/83), [#87](https://github.com/eventsourcing/es4j/pull/87))
* [Layout] `new Layout<>(klass)` has been replaced with `Layout.forClass(klass)` ([#83](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/77), [#84](https://github.com/eventsourcing/es4j/pull/84))
* [Core] Most of repository implementation related code was moved to `com.eventsourcing.repository` ([#64](https://github.com/eventsourcing/es4j/pull/64))
* [Core] `new StandardRepository()` now will use localhost NTP server ([#76](https://github.com/eventsourcing/es4j/pull/66), [#66](https://github.com/eventsourcing/es4j/pull/76))
* [Core] Renamed `MemoryLockProvider` to `LocalLockProvider` ([#69](https://github.com/eventsourcing/es4j/pull/69), [#70](https://github.com/eventsourcing/es4j/pull/70))
* [Core] `Journal#commandEventsIterator` has been removed ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Core] `MemoryJournal` has been moved to `eventsourcing-inmem` ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Layout] Layout serialization/deserialization framework
can be extended to other byte-oriented encodings ([#74](https://github.com/eventsourcing/es4j/pull/74))

**Bugfixes**

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

**Features**

* [Core] Added a simplified attribute indexing definition API ([#57](https://github.com/eventsourcing/es4j/pull/57))
* [CEP] Migrated es4j-cep into the project to maintain version parity
([#60](https://github.com/eventsourcing/es4j/pull/60))
* [Migrations] Implemented [8/EMT](http://rfc.eventsourcing.com/spec:8/EMT) and `LayoutMigration` to standardize migrations ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Core] `EventCausalityEstablished` event-command causality indexing has been implemented ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Core] Better support for Kotlin in `Repository` ([#72](https://github.com/eventsourcing/es4j/pull/72))
* [Queries] `LatestAssociatedEntryQuery` query has been added ([#115](https://github.com/eventsourcing/es4j/pull/115))
* [Queries] `IsLatestEntity` query has been added ([#117](https://github.com/eventsourcing/es4j/pull/117))
* [Queries] `ModelQueries.lookup` helper for looking up an entity by ID
has been added ([#116](https://github.com/eventsourcing/es4j/pull/116))
* [PostgreSQL] Implemented PostgreSQL journal ([#79](https://github.com/eventsourcing/es4j/pull/79))
* [PostgreSQL] Implemented PostgreSQL equality and navigable indices ([#94](https://github.com/eventsourcing/es4j/pull/94), [#104](https://github.com/eventsourcing/es4j/pull/104))
* [PostgreSQL] Implemented PostgreSQL-based lock provider `PostgreSQLLockProvider` ([#98](https://github.com/eventsourcing/es4j/pull/98))
* [Core] Expose CascadingIndexEngine index decisions through JMX ([#94](https://github.com/eventsourcing/es4j/pull/94))
* [Kotlin] Add basic support for Kotlin ([#88](https://github.com/eventsourcing/es4j/pull/88), [#99](https://github.com/eventsourcing/es4j/pull/99))

**Specification compliance**

* [Core] Layout and Property are now [7/LDL](http://rfc.eventsourcing.com/spec:7/LDL) compliant ([#61](https://github.com/eventsourcing/es4j/pull/61))
* [Repository] `AbstractRepository` now adheres to [8/EMT](http://rfc.eventsourcing.com/spec:8/EMT) and records
`EntityLayoutIntroduced` ([#91](https://github.com/eventsourcing/es4j/pull/91))
* [Repository] `AbstractRepository` now adheres to the exception reporting
specified in [9/RIG](http://rfc.eventsourcing.com/spec:9/RIG) ([#102](https://github.com/eventsourcing/es4j/pull/102))

**Misc**

* Source and javadoc jars are now included into distribution ([#78](https://github.com/eventsourcing/es4j/pull/78))


0.3.2
===

**Features**

* [Core] Added an API to iterate over command's events ([#46](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/56))
* [Core] `Repository#getTimestamp()` was added ([#55](https://github.com/eventsourcing/es4j/pull/55))
<commit_msg>Problem: CHANGELOG is a little bit outdated<commit_after>WIP
===

**Backwards-incompatible changes**

* [Core] `Entity`, `Command` and `Event` are now interfaces, the classes were moved to to `StandardEntity`, `StandardCommand` and `StandardEvent` ([#67](https://github.com/eventsourcing/es4j/pull/67))
* [Core] `Model#id()` has been renamed to `Model#getId()` for consistency of
the interface ([#114](https://github.com/eventsourcing/es4j/pull/114))
* [Core] Entity layouts are now constructor + getters driven, allowing
for immutable entities ([#83](https://github.com/eventsourcing/es4j/pull/83), [#87](https://github.com/eventsourcing/es4j/pull/87))
* [Layout] `new Layout<>(klass)` has been replaced with `Layout.forClass(klass)` ([#83](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/77), [#84](https://github.com/eventsourcing/es4j/pull/84))
* [Core] New index definition syntax via `SimpleIndex` and `MultiValue` index
([#133](https://github.com/eventsourcing/es4j/pull/133))
* [Core] Most of repository implementation related code was moved to `com.eventsourcing.repository` ([#64](https://github.com/eventsourcing/es4j/pull/64))
* [Core] `new StandardRepository()` now will use localhost NTP server ([#76](https://github.com/eventsourcing/es4j/pull/66), [#66](https://github.com/eventsourcing/es4j/pull/76))
* [Core] Renamed `MemoryLockProvider` to `LocalLockProvider` ([#69](https://github.com/eventsourcing/es4j/pull/69), [#70](https://github.com/eventsourcing/es4j/pull/70))
* [Core] `Journal#commandEventsIterator` has been removed ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Core] `MemoryJournal` has been moved to `eventsourcing-inmem` ([#69](https://github.com/eventsourcing/es4j/pull/69))
* [Layout] Layout serialization/deserialization framework
can be extended to other byte-oriented encodings ([#74](https://github.com/eventsourcing/es4j/pull/74))

**Bugfixes**

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

**Features**

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

**Specification compliance**

* [Core] Layout and Property are now [7/LDL](http://rfc.eventsourcing.com/spec:7/LDL) compliant ([#61](https://github.com/eventsourcing/es4j/pull/61))
* [Repository] `AbstractRepository` now adheres to [8/EMT](http://rfc.eventsourcing.com/spec:8/EMT) and records
`EntityLayoutIntroduced` ([#91](https://github.com/eventsourcing/es4j/pull/91))
* [Repository] `AbstractRepository` now adheres to the exception reporting
specified in [9/RIG](http://rfc.eventsourcing.com/spec:9/RIG) ([#102](https://github.com/eventsourcing/es4j/pull/102))

**Upgrades**

* cqengine 2.7.0 ([#135](https://github.com/eventsourcing/es4j/pull/135))

**Misc**

* Source and javadoc jars are now included into distribution ([#78](https://github.com/eventsourcing/es4j/pull/78))


0.3.2
===

**Features**

* [Core] Added an API to iterate over command's events ([#46](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/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](https://github.com/eventsourcing/es4j/pull/56))
* [Core] `Repository#getTimestamp()` was added ([#55](https://github.com/eventsourcing/es4j/pull/55))

{'fraction_non_alphanumeric': 0.1664450722951637, 'fraction_numerical': 0.04296160877513711, 'mean_word_length': 6.058651026392962, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 90, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7003282', 'n_tokens_mistral': 4292, 'n_tokens_neox': 3815, 'n_words': 876}