- Add a way to enable `RxJava` module
- Add `EnableRxJavaModule` annotation that inherits `EnableModule` for `Processor` type.
- It also registers the custom `MessageHandler` that sets up RxJava `Observable/Subscriber` to process the incoming message reactively.
- Introduce `RxJavaProcessor` that is expected to be implemented by the module author with the input/output being `Observable`. This processor is autowired into the message handler registered above.
- Add moving average sample
Add project `spring-cloud-stream-rxjava`
- This project extends `spring-cloud-stream` so that any RxJava processing module would have this as a dependency
* renamed @ModuleChannels to @Bindings
* moved Source, Sink, and Processor to the `org.springframework.cloud.stream.messaging` package
* updated documentation
and refactor channel proxy behaviour
- Remove DirectChannelProxyFactory;
- Proxies create channels as necessary, including support for PollableChannels;
- Channel beans are using the bean factory methods for the proxies;
- Coordinate bind/unbind across a context through the internal Bindable interface;
- Add support for embedding modules as independent child contexts of the main module, wrapped in a Bindable interface;
- Add support for channel name namespacing;
- Use a shared channel registry (consulted by the proxies) to create direct bindings;
Restrict the use of SharedChannelRegistry to aggregation
Fixed copyrights
Polishing based on comments from the previous branch
Tweaks
- namespacing takes into account module index, so multiple modules with the same class can partiticipate
- fix how properties are passes to parent/child
- Split ChannelBindingLifecycle from ChannelBindingAdapter and register it with each child;
Javadoc updates
Pass only prefixed properties
Actually use the filtering method
Lifecycle simplifications
- Removing BindableChannelWrapper and UnbindOnCloseApplicationListener and relying on ChannelBindingListener solely;
- Some code cleanup
Further simplifications
More cleanup
Remove BindableUtils, rename ChannelBindingAdapter
Minor improvements
Addressing some comments, renaming, etc
More polishing
- Re-add `@ConditionalOnMissingBean` to connection factory beans in cloud configurations
- This is needed at least for CF case where auto-reconfiguration sets up connection factory beans
- Use `TreeMap` for channel bindings and set case insensitive comparator for the tree map.
- This way binding key (typically channel name) can be looked up case insensitively
- update steps to run the `s-c-s-module-launcher` on standalone, docker and lattice
- update recent changes into readme
- Fix docker compose to use the common binding name so that `time | log` works
Remove explicit cloud profile for lattice run
Remove tap reference
Remove explicit server.port for docker-compose
Update port mapping for docker run
- Move the launcher property `modules` to `ModuleLauncherProperties`
- This will make the `ModuleRunner` to be `Component` bean only; Also, it only needs to enable the configuration properties of `ModuleLauncherProperties`
Separate module resolver/launcher properties
Add validator dependency to module launcher
- This allows resolution of any binding properties specified with `_` instead of `.`
- remove cast and check for ConfigurableEnvironment
- remove the duplicate defaulting channel binding code
Remove unused import
- Remove lattice and cf connector dependencies from core S-C-S and binder
- The idea is to have these dependencies defined in s-c-s-modules so that they
are specified in one place and make the module run on local/cloud environment in a
self contained manner
- Keep the `spring-cloud-core` dependency to binder so that the Cloud configuration
is used to get the appropriate services for the redis/rabbit binder
- Autowire `ChannelBindingProperties` into `ChannelBindingConfiguration` via
`@EnableConfigurationProperties` support
- This change removes explicit `@AutoConfiguration` for ChannelBindingProperties
- Make `local` binder compile dependency as optional
- Add `local` binder auto configuration
- This imports local binder properties and binder
- Add `spring.factories` to enable auto configuration when this archive
is on the classpath