summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Kai Moritz [Mon, 8 Jul 2024 07:11:06 +0000 (09:11 +0200)]
popular: 1.4.0 - Variant with Sliding Window
Kai Moritz [Tue, 2 Jul 2024 07:18:33 +0000 (09:18 +0200)]
popular: 1.3.2 - Fixed Warning in `PopularStreamProcessorTopologyTest`
Kai Moritz [Sun, 23 Jun 2024 09:47:09 +0000 (11:47 +0200)]
popular: 1.3.2 - RocksDB does nor work in Alpine-Linux
Kai Moritz [Sun, 23 Jun 2024 08:49:14 +0000 (10:49 +0200)]
popular: 1.3.1 - Upgraded JDK-version, Spring Boot & Docker
Kai Moritz [Sat, 22 Jun 2024 17:13:03 +0000 (19:13 +0200)]
popular: 1.3.0 - Messages are written into topic `countings` by default
Kai Moritz [Sat, 22 Jun 2024 15:13:29 +0000 (17:13 +0200)]
popular: 1.3.0 - Changed the type-mapping from `word` to `key`
Kai Moritz [Sat, 22 Jun 2024 11:58:12 +0000 (13:58 +0200)]
popular: 1.3.0 - Removed unused class `UserWord`
Kai Moritz [Sat, 22 Jun 2024 11:15:06 +0000 (13:15 +0200)]
popular: 1.3.0 - Refined output JSON
* Added attribute `type` with fixed value `POPULAR`.
* Renamed attribute `time` to `channel`.
* Adapted test-cases accordingly.
Kai Moritz [Sat, 22 Jun 2024 09:23:25 +0000 (11:23 +0200)]
popular: 1.2.0 - Refined `WindowedWord` (timestamp as string)
* `WindowedWord` only stores the start-time of the window.
* `WindowedWord` stores the seconds-since-epoce as string.
Kai Moritz [Sat, 22 Jun 2024 09:20:38 +0000 (11:20 +0200)]
popular: 1.2.0 - Removed unused parameter in helper-method for tests
Kai Moritz [Thu, 20 Jun 2024 19:50:15 +0000 (21:50 +0200)]
popular: 1.1.1 - Refined output JSON
Kai Moritz [Mon, 17 Jun 2024 20:45:34 +0000 (22:45 +0200)]
popular: 1.1.0 - Implemented supression of intermediate results
Kai Moritz [Mon, 17 Jun 2024 19:53:34 +0000 (21:53 +0200)]
popular: 1.1.0 - Formulated expectations for suppressed results
* Removed result-messages, that will be supressed
* Added additionally messages, that are necessary, to advance the
stream-time and close the window.
Kai Moritz [Mon, 17 Jun 2024 18:43:04 +0000 (20:43 +0200)]
popular: 1.0.0 - Added ``peek()``-operations
Kai Moritz [Sun, 16 Jun 2024 09:48:24 +0000 (11:48 +0200)]
popular: 1.0.0 - Words are counted for tumbling time-windows
Kai Moritz [Sat, 15 Jun 2024 21:22:38 +0000 (23:22 +0200)]
popular: 1.0.0 - Renamed packages and classes -- ALIGN
Kai Moritz [Sat, 15 Jun 2024 21:19:02 +0000 (23:19 +0200)]
popular: 1.0.0 - Renamed packages and classes -- MOVE
Kai Moritz [Sat, 15 Jun 2024 21:12:51 +0000 (23:12 +0200)]
popular: 1.0.0 - Renamed the project to `popular`
Kai Moritz [Sun, 16 Jun 2024 20:33:52 +0000 (22:33 +0200)]
counter: 1.3.1 - Splitted up test in `CounterStreamProcessorTopologyTest`
Kai Moritz [Sun, 16 Jun 2024 19:17:27 +0000 (21:17 +0200)]
counter: 1.3.1 - Refined `CounterStreamProcessor` (DRY for type-mapping)
Kai Moritz [Sun, 16 Jun 2024 19:08:01 +0000 (21:08 +0200)]
counter: 1.3.1 - Refined `CounterStreamProcessor` (serde-config)
* Refactored the creation of the ``JsonSerde``s, that are used to consume
the incomming messages.
* All special ``Serdes``, that are used for incomming and outgoing messages,
are created in separted methods now.
* Removed unnecessary operatorx in the ``Materialized``-configuration for
the state store (the operator is not necessary, because no headers are
present, when deserializing from a store).
Kai Moritz [Sun, 16 Jun 2024 17:57:23 +0000 (19:57 +0200)]
counter: 1.3.1 - Refined/Simplified the type-mapping
* Removed all explicit type-mappings for the internally used types.
* This greatly simplifies the configuration, because it is sufficient to
configure the trusted package to serialize/deserialize all internally
used types.
* To make this possible, the type-mappings for the outgoing messages are
specified with `Produced.with()` in the ``to()``-operation.
Kai Moritz [Sun, 16 Jun 2024 17:38:39 +0000 (19:38 +0200)]
counter: 1.3.1 - Refined `CounterStreamProcessorTopologyTest`
* `CounterStreamProcessorTopologyTest` uses the type-headers to determine
the correct type for the deserialization of the output-data.
* Beforehand, the used types were hard-coded in the test.
Kai Moritz [Sun, 16 Jun 2024 17:18:43 +0000 (19:18 +0200)]
counter: 1.3.1 - Removed the defaults for serialization/deserialization
Kai Moritz [Sun, 16 Jun 2024 16:26:47 +0000 (18:26 +0200)]
counter: 1.3.1 - Cleand code/setup for tests
Kai Moritz [Sat, 8 Jun 2024 17:39:00 +0000 (19:39 +0200)]
counter: 1.3.0 - Fixed possible NPE in `Counter10ApplicationIT`
Kai Moritz [Wed, 5 Jun 2024 21:57:32 +0000 (23:57 +0200)]
counter: 1.3.0 - (GREEN) Fixed the typing for the state-store
Kai Moritz [Wed, 5 Jun 2024 19:44:26 +0000 (21:44 +0200)]
counter: 1.3.0 - (RED) Made `CounterApplicationIT` fail too
* Validate with: `mvn test -Dtest=CounterApplicationI`
* Turning on the caching forces the application, to serialize and
deserialize _every_ message, hence, revealing the bug, that was only
detected by the `CounterStreamProcessorToplogyTest` before, that always
behaves like this.
Kai Moritz [Wed, 5 Jun 2024 19:30:17 +0000 (21:30 +0200)]
counter: 1.3.0 - (RED) Introduced domain-class `User` as key
* _GREEN:_ The `CounterApplicationIT` does _not_ reveal the bug!
* _RED:_ The `CounterStreamProcessorToplogyTest` fails with an exception,
that gives a hint for the cause of the bug.
* The bug is caused by missing type-specifications for the operation
``cout()``.
* Before the introduction of the domain-class `User` everything worked as
expected, because the class `Word` could be specified as default for
the deserialization of the key.
** With the introduction of the domain-class `User` as key of the incoming
messages, the default for the key has to switched to this class, to
enable the application to deserialize incomming keys despite the missing
type mapping.
** Beforehand, the default `Word` covered the missing type information
for the ``count()``-operator.
Kai Moritz [Sat, 8 Jun 2024 10:26:10 +0000 (12:26 +0200)]
counter: 1.2.15 - Inlined the asserting ``Consumer``s
Kai Moritz [Sat, 8 Jun 2024 09:33:53 +0000 (11:33 +0200)]
counter: 1.2.15 - Added assertion for the expected state
Kai Moritz [Sat, 8 Jun 2024 09:01:22 +0000 (11:01 +0200)]
counter: 1.2.15 - Added assertion for the expected final output messages
Kai Moritz [Sat, 8 Jun 2024 08:35:34 +0000 (10:35 +0200)]
counter: 1.2.15 - Added assertion for the expected number of messages
Kai Moritz [Sat, 8 Jun 2024 07:36:43 +0000 (09:36 +0200)]
counter: 1.2.15 - Refined `CounterApplicationIT`
* Preparations for the addition of new tests
* The messages are send only once during `@BeforeAll`
Kai Moritz [Sat, 8 Jun 2024 07:09:37 +0000 (09:09 +0200)]
counter: 1.2.15 - DRY for test-data
Kai Moritz [Thu, 6 Jun 2024 17:47:52 +0000 (19:47 +0200)]
counter: 1.2.15 - Fixed race-condition in `CounterApplicationIT`
Kai Moritz [Wed, 5 Jun 2024 19:00:15 +0000 (21:00 +0200)]
counter: 1.2.15 - Refined `TestData` (explicit key in input-data)
Kai Moritz [Wed, 5 Jun 2024 18:33:31 +0000 (20:33 +0200)]
counter: 1.2.15 - Fixed deprecated parameter for cache-config
Kai Moritz [Wed, 5 Jun 2024 18:29:37 +0000 (20:29 +0200)]
counter: 1.2.15 - Removed logging of type-headers in tests
Kai Moritz [Wed, 5 Jun 2024 16:29:24 +0000 (18:29 +0200)]
counter: 1.2.15 - Cleaned up the serialization configuration
Kai Moritz [Wed, 5 Jun 2024 15:06:30 +0000 (17:06 +0200)]
counter: 1.2.15 - Separated serialization-config into a static method
Kai Moritz [Mon, 27 May 2024 20:28:28 +0000 (22:28 +0200)]
counter: 1.2.15 - `TestData` only holds and asserts the test-data
Kai Moritz [Mon, 27 May 2024 19:25:55 +0000 (21:25 +0200)]
counter: 1.2.15 - `ToplogyTestDriver.close` must always be called
Kai Moritz [Mon, 27 May 2024 20:23:58 +0000 (22:23 +0200)]
counter: 1.2.15 - Made in/out messages in `TestData` immutable
Kai Moritz [Mon, 27 May 2024 19:39:22 +0000 (21:39 +0200)]
counter: 1.2.15 - Refined method-naming in `TestData`
Kai Moritz [Mon, 27 May 2024 19:53:26 +0000 (21:53 +0200)]
counter: 1.2.15 - Refined `TestData.writeInputData(..)`
Kai Moritz [Sun, 26 May 2024 20:59:26 +0000 (22:59 +0200)]
counter: 1.2.15 - Refined `TestData.assertExpectedResult(..)`
Kai Moritz [Sun, 26 May 2024 19:59:55 +0000 (21:59 +0200)]
counter: 1.2.15 - Refined `CounterApplicationIT` (simplified setup)
Kai Moritz [Tue, 14 May 2024 20:25:51 +0000 (22:25 +0200)]
counter: 1.2.14 - Set up type-mappings for JSON-Deserialization
Kai Moritz [Mon, 13 May 2024 20:02:57 +0000 (22:02 +0200)]
counter: 1.2.13 - The tests print out the type-mapping headers
Kai Moritz [Tue, 14 May 2024 19:54:28 +0000 (21:54 +0200)]
counter: 1.2.12 - Renamed `WordCount` into `WordCounter` -- ALIGN
Kai Moritz [Tue, 14 May 2024 19:54:20 +0000 (21:54 +0200)]
counter: 1.2.12 - Renamed `WordCount` into `WordCounter` -- MOVE
Kai Moritz [Mon, 13 May 2024 19:11:38 +0000 (21:11 +0200)]
counter: 1.2.11 - Refactored test-classes (DRY for test-config)
Kai Moritz [Mon, 13 May 2024 17:14:07 +0000 (19:14 +0200)]
counter: 1.2.10 - Replaced helper-class `Message` with `KeyValue`
Kai Moritz [Sun, 12 May 2024 21:30:04 +0000 (23:30 +0200)]
counter: 1.2.9 - Reconfigured tests to receive data as domain-instances
Kai Moritz [Sun, 12 May 2024 16:06:09 +0000 (18:06 +0200)]
counter: 1.2.8 - Reconfigured tests to send data as domain-instances
Kai Moritz [Mon, 13 May 2024 19:04:56 +0000 (21:04 +0200)]
counter: 1.2.7 - Refined bean-naming in `CounterApplicationConfiguration`
Kai Moritz [Sun, 12 May 2024 15:43:29 +0000 (17:43 +0200)]
counter: 1.2.6 - Removed unused explicit references to `ObjectMapper`
Kai Moritz [Sun, 5 May 2024 09:08:27 +0000 (11:08 +0200)]
counter: 1.2.5 - Updated Spring Boot to `3.2.5`
Kai Moritz [Mon, 13 May 2024 18:34:31 +0000 (20:34 +0200)]
counter: 1.2.4 - Headers for type-mapping are not necessary
Kai Moritz [Fri, 17 Feb 2023 13:48:23 +0000 (14:48 +0100)]
coutner: 1.2.3 - Simplified topology, using default-serdes for all steps
- Defined `JsonSerde` as default for keys and values.
- Configured the `JsonDeserializer` for header-based typing.
- Removed the configuration of specific serdes from all steps of the
processor-topology, expect the initial step, that needs a `StringSerde`
for the key.
Kai Moritz [Thu, 16 Feb 2023 16:51:24 +0000 (17:51 +0100)]
counter: 1.2.2. - Simplified topology - better readability
Kai Moritz [Thu, 16 Feb 2023 16:48:52 +0000 (17:48 +0100)]
counter: 1.2.1 - Simplified topology (no serdes needed for materialization)
Kai Moritz [Wed, 15 Feb 2023 07:19:09 +0000 (08:19 +0100)]
counter: 1.2.0 - Service reads/writes using `JsonSerde`
- First working version of a refined topology, that reads and writes
key and value with the `JsonSerde`.
- This topology expects and writes all data as JSON, except the key
of the incomming messages.
- All used Serdes are directly configured in the topology.
Kai Moritz [Sat, 11 Feb 2023 12:02:44 +0000 (13:02 +0100)]
counter: 1.1.11 - Added a test, that is based on `TopologyTestDriver`
- The test reuses `TestData` to asserts the exact same assumptions, as
`CounterApplicationIT`.
- The only difference is, that the message processing is carried out by
the `ToplogyTestDriver` instead of a real Kafka cluster, that is started
along the test-code in the same JVM, as in `CounterApplicationIT`.
Kai Moritz [Wed, 15 Feb 2023 06:51:46 +0000 (07:51 +0100)]
counter: 1.1.10 - Refactored the configuration inito a separated class
Kai Moritz [Tue, 14 Feb 2023 19:17:12 +0000 (20:17 +0100)]
counter: 1.1.9 - Refactored creation of `Properties` as a separate bean
Kai Moritz [Sat, 11 Feb 2023 13:27:15 +0000 (14:27 +0100)]
counter: 1.1.8 - Fixed a `ConcurentModificationException`-bug
Kai Moritz [Tue, 14 Feb 2023 19:03:08 +0000 (20:03 +0100)]
counter: 1.1.7 - Fixed a bug in the assertion-logic for the expected state
- Each combination of a user and a word is a uniq key.
- Since the ordering is only guaranteed for messages, with the same key,
no expectations can be made according the ordering of messages with
different keys!
- This also simplifies the test-logic, because no deserialization is needed
any more to pick the username out of the JSON-data.
Kai Moritz [Mon, 13 Feb 2023 18:00:53 +0000 (19:00 +0100)]
counter: 1.1.6 - Refactored the test-data into a separated class
Kai Moritz [Sat, 11 Feb 2023 14:26:42 +0000 (15:26 +0100)]
counter: 1.1.5 - Fixed a bug in the integration-test `CounterApplicationIT`
- The default store-type creates state, that is stored on disk.
- Hence, only the first run of the test succseeded.
- The bug was fixed by providing an in-memory store-type.
Kai Moritz [Sat, 11 Feb 2023 14:38:03 +0000 (15:38 +0100)]
counter: 1.1.4 - Introduced parameters for the config needed by the test
Kai Moritz [Sat, 11 Feb 2023 06:09:45 +0000 (07:09 +0100)]
counter: 1.1.3 - Implemented an integration test for the old message-format
Kai Moritz [Sat, 11 Feb 2023 05:45:40 +0000 (06:45 +0100)]
counter: 1.1.2 - Moved configuration into `CounterApplication`
Kai Moritz [Sun, 5 Feb 2023 13:31:47 +0000 (14:31 +0100)]
counter: 1.1.1 - Upgraded Spring Boot 2.5.4 -> 3.0.2
Kai Moritz [Thu, 21 Oct 2021 19:49:51 +0000 (21:49 +0200)]
counter: 1.1.0 - Only counts words (splitting is done separately now)
Kai Moritz [Sat, 16 Oct 2021 14:41:09 +0000 (16:41 +0200)]
counter: 1.0.1 - changed default-port and exposed all actuator-endpoints
Kai Moritz [Wed, 1 Sep 2021 20:31:01 +0000 (22:31 +0200)]
wordcount:1.0.0 - counts words, keyed by username and word