- 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
- Since the ChannelBindingAdapter is `SmartLifecycle` bean and it starts before
the message producing time source adapter we can remove explicit `autoStartup=false` for TimeSource sample
- Since `ChannelBindingAdapter` implements `SmartLifecycle`, it is expected to start with the highest precedence when the lifecycle beans are started.
- Remove `autoStartup` from `ChannelBindingProperties`
- This property was used by the CBARunner to start the CBA if autoStartup is true
- Since all the lifecycle beans (inbound/outbound channel adapters) are started with appropriate phase and autoStartup flag the ChannelBindingProperties's autoStartup isn't needed.
- Change `remoteRepository` option to `remoteRepositories` that accepts comma separated string values.
- AetherModuleResolver would expect set of remote repositories and create `RemoteRepository` list
for the given set.
Use String[] for remoteRepositories
- This will let spring boot's ConfigurationProperties handle the properties
and use the Map<String,String> for remoteProperties in AetherModuleResolver
- Generate ID for the map
It's important not to depend on something heavyweight like a Binder
in a BeanPostProcessor. The usual trick (as implemented here) is
to do a lazy lookup of the thing that is eventually injected in the
post processes beans.
Fixes gh-82