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
- 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
- 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
- Add `prefix` based module configuration properties
- Add default properties in `application.yml`
- Move the properties into separate `ConfigurationProperties` bean rather than being inside `Configuration` bean
(And with existing Spring Cloud projects.) Uses a maven plugin to
build the image. It can be pushed manually, or else using
-Ddocker.image.prefix=<path_to_repo>. Removes some of the hard-coded
host names and stuff that came with the old version.