Releases: kumuluz/kumuluzee-streaming
v1.2.2
v1.2.1
v1.2.0
We are pleased to announce the release of KumuluzEE Streaming 1.2.0. This release includes ready-to-use JSON Serializer, Deserializer and SerDe. Producers with generic types defined can now also be injected and listeners have been improved with explicit parameter validation.
JSON Serializer, Deserializer and SerDe are useful when you want to transfer objects in JSON format. For example to serialize values of a producer to JSON use the following configuration:
kumuluzee:
streaming:
kafka:
producer:
bootstrap-servers: localhost:9092 # comma separated list of servers
key-serializer: org.apache.kafka.common.serialization.StringSerializer # key serializer for records
value-serializer: com.kumuluz.ee.streaming.kafka.serdes.JsonSerializer # value serializer for records
A producer can then be injected like so:
@Inject
@StreamProducer
private Producer<String, Customer> customerProducer;
Similarly for consumers, note however that type that the record should be deserialized into needs to be defined:
kumuluzee:
streaming:
kafka:
consumer:
bootstrap-servers: localhost:9092 # comma separated list of servers
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # key deserializer for records
value-deserializer: com.kumuluz.ee.streaming.kafka.serdes.JsonDeserializer # value deserializer for records
value-deserializer-type: com.kumuluz.ee.app.models.Customer # type of json deserializer
And the listener:
@StreamListener(topics = {"customer-topic"})
public void onMessage(ConsumerRecord<String, Customer> record) {
// process message ...
}
Injection mechanism have also been improved in this release. As presented earlier, producers can now be injected with generic parameters defined, which improves your codebase and makes development easier. Generic parameters of both producers and consumers are now validated on application startup in order to ensure they match with the configuration. This ensures that your config.yml
matches with the defined injection points so that the errors can be discovered right at the application startup.
We have also supported the well-known KumuluzEE extension disabling mechanism. The streaming extension can now be disabled through configuration.
Features:
- Added JSON Serializer, Deserializer and SerDe
- Added type-safe Producer injection
- Added is enabled mechanism
Enhancements
- Added consumer parameter type validation
- Cleaned up producer initialization logic
v1.1.0
We are pleased to announce the release of KumuluzEE Streaming 1.1.0. This release includes support for configuration overrides through annotations. Kafka client has also been updated and some bugs have been fixed.
Kafka configuration properties can now be overridden by using the @ConfigurationOverride
annotation. For example:
@Inject
@StreamProducer(configOverrides = {@ConfigurationOverride(key = "bootstrap-servers", value = "localhost:9092")})
private Producer orderProducer;
Overrides are supported in @StreamProducer
, @StreamListener
and @StreamProcessor
annotations.
A bug has been fixed that acknowledged single messages incorrectly. We have also enabled injection of producers in @ApplicationScoped
beans.
Features:
- Added support for configuration overrides through annotations
Bugs:
- Fixed single message acknowledgements
- Enabled injection of
Producer
in@ApplicationScoped
beans
v1.0.0
We're happy to announce the KumuluzEE Event Streaming extension v1.0.0 for the KumuluzEE framework.
The extension enables developers to easily integrate their microservices with the Apache Kafka platform, produce and consume events, and build stream processors. All the features can be easily implemented with provided annotations.
We're excited to get the extension into your hands!