* Application ID resolution for kafka streams binder
Avoid the need to rely on group property for application id.
First, check binding specific application id, if not look at defaults.
If nothing works, fall back to the default application id set by the
boot auto configuration.
Modify tests.
Update docs.
Resolves#448
* Addressing PR review comments
* Minor polishing
* Addressing PR review comments
There are duplicate code in various binder configurations where we register missing beans.
Consolidate them into a common class that implements ImportBeanDefinitionRegistrar and then
import this class in the binder configurations.
Resolves#445
There is a common piece of code repeated in both producer and consumer
configuration where it is populating the bootstrap server configuration.
Refactoring into a common method.
Resolves#208
Allow applications to configure default values for extended prducer and
consumer properties across multiple bindings in order to avoid repetition.
Address the changes in both Kafka and Kafka Streams binders.
Add integration test to verify both binding specific and default extended properties.
Resolves#444
Requires https://github.com/spring-cloud/spring-cloud-stream/pull/1477
(to address core changes made in regards to Boot 2.1)
Ensure that KafkaStreamsBinderSupportAutoConfiguration runs
after BindingServiceConfiguration from core.
When kafka streams binder is used in the context of a custom environment, possibly
for a multi binder use case, it is unable to query the outer context as the normal
parent context is absent. This change will ensure that the binder context has access
to the outer context so that it can use any beans it needs from it in KStream or KTable
binder configuration.
Resolves#411
Providing access to the underlying StreamBuilderFactoryBean by making the bean name
deterministic. Eariler, the binder was using UUID to make the stream builder factory
bean names unique in the event of multiple StreamListeners. Switching to use the
method name instead to keep the StreamBuilder factory beans unique while providing
a deterministic way to giving it programmatic access.
Polishing docs
Fixes#396
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/373
When a consumer is multiplexed, configure the container to listen to multiple topics.
Also for the polled consumer.
When using a DLQ, determine the queue name from the topic in the failed record (unless
an explicit DLQ name has been provisioned - in which case, the same DLQ will be used
for all topics.
Resolves#383
* When running interactive queries against multiple instances under the same application id,
ensure that the application can retrieve the proper instance that is hosting the queried state store
* Introduce a new API level service called InteractiveQueryServices
* Perform refactoring to support this enhancement
* Deprecate QueryableStoreRegistry in 2.1.0 in favor of InteractiveQueryServices
Resolves#369
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/339
- support regex patterns for consumer destinations to consume from multiple topics
- `enableDlq` is not available in this mode
As well as the test case, tested with a boot app...
```
spring.cloud.stream.bindings.input.destination=kbgh339.*
spring.cloud.stream.kafka.bindings.input.consumer.destination-is-pattern=true
```
and
```
2018-04-30 15:12:49.718 : partitions assigned: [kbgh339a-0]
2018-04-30 15:17:46.585 : partitions revoked: [kbgh339a-0]
2018-04-30 15:17:46.655 : partitions assigned: [kbgh339a-0, kbgh339b-0]
```
after adding a new topic matching the pattern.
Doc polishing.
DLQ handling needs to be adjusted in kafka streams binder due to the multiplexing of input topics.
This commit changes it accordingly in KStream and KTable binders.
Add tests to verify.
Fixes https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/360
`producer-configuration` and `consumer-configuration` improperly appear in content-assist.
These are methods used by the binders to get merged configuration data (boot and binder).
Rename the methods and add `producerProperties` and `consumerProperties` to allow
configuration.