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.
* Allow Kafka Streams state store creation when using process/transform method in DSL
* Add unit test for state store
* Address code review comments
* Add author and javadocs
* Integration test fixing for state store
* Polishing
When StreamListener methods are contained in a top level non-public class, Kafka
Streams binder throws an IllegalAccessException. Fixing it by making it accessible.
Resolves#348
Gary caught a grammatical goof and pointed out some content that can be removed, because Kafka now has a feature it didn't use to have. That prompted me to rewrite the leader paragraph above that content, too.
Thanks, Gary.
Now that the abstract binder makes its event publisher available to subclasses,
use it, if present, instead of the application context.
In most cases, they will be the same object, but the user might override the
publisher.
Resolves#336
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/330
- allow override of binder-wide `replicationFactor` for each binding
- allow specific partition/replica configuration
- allow setting `NewTopic.configs()` properties, similar to the consumer and producer
- use a new `AdminClient` for provisioning (and `close()` it) instead of keeping a long-lived connection open.