Commit Graph

22 Commits

Author SHA1 Message Date
Ilayaperumal Gopinathan
2b1ccc4c7c Support RxJava module
- 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
2015-09-03 11:33:11 -04:00
Marius Bogoevici
86e457fac4 Renamed EnableModule to EnableBinding
* renamed @ModuleChannels to @Bindings
* moved Source, Sink, and Processor to the `org.springframework.cloud.stream.messaging` package
* updated documentation
2015-09-03 07:43:42 -04:00
Marius Bogoevici
bd47560bd5 Add support for direct binding
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
2015-09-02 15:52:19 -04:00
Ilayaperumal Gopinathan
d4425b3a52 Samples cleanup
- Move common properties to samples parent
 - Avoid explicit `ComponentScan` by moving all the classes to the same package
2015-09-02 09:46:47 -07:00
Ilayaperumal Gopinathan
84e5701cc6 Fix Transform sample start class 2015-09-01 23:21:09 -07:00
Eric Bottard
1ce40497c9 Fix copyrights 2015-08-23 15:19:09 +02:00
Ilayaperumal Gopinathan
06762afed2 TimeSource uses default autoStartup=true
- 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
2015-08-19 13:16:33 -07:00
Ilayaperumal Gopinathan
3dac86a18a Remove throws InterruptedException from sample main 2015-08-17 15:21:46 -07:00
Marius Bogoevici
76eb34256e Set autoStartup to false on the TimeSource
Prevents the endpoint from starting before it's bound, thus throwing Dispatcher errors
2015-08-14 15:24:03 -04:00
Dave Syer
e81ed1eace Align dockerization process with spring.io guides
(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.
2015-08-11 09:30:02 +01:00
Mark Fisher
95a34f6ab0 removed auto-startup=FALSE from sample source 2015-08-03 18:30:12 -04:00
Thomas Risberg
2408578c0a Update README.md 2015-07-30 15:32:44 -04:00
Thomas Risberg
65240966e3 Update README.md 2015-07-30 15:27:34 -04:00
Marius Bogoevici
37204febe2 support for binding descriptors per channel name 2015-07-23 11:22:53 -04:00
Marius Bogoevici
1a51c32f59 Renamed spring.cloud.channels to spring.cloud.stream in configuration 2015-07-21 23:22:12 -04:00
Ilayaperumal Gopinathan
06190b1353 Remove spring-xd-module dependency
- Remove `spring-xd-module` dependency from spring-cloud-stream
 - Move `DateFormat` validation class to sample
2015-07-21 17:22:14 -04:00
David Turanski
35b74b00b3 Renamed MessageBus to Binder
- Renamed MessageBus to Binder
- Parameterized Binder interface
- Restored exclusion of spring-xd-codec
2015-07-21 15:34:29 -04:00
Dave Syer
c09b292d79 Use @EnableModule(Channels.class) instead of field declarations
Standard channel interface types of Sink, Source, Processor
are provided, but user can create others with @Input and
@Output MessageChannel methods.

To get the declared channels in an app you can use the
@ModuleChannels qualifier to inject the interface, e.g.
@ModuleChannels(Cafe.class) injects the channels defined
in the Cafe.
2015-07-16 21:44:05 -04:00
Mark Fisher
460bb140f2 fixed source/sink samples' input/output properties 2015-07-16 18:38:37 -04:00
Mark Fisher
23a818d79d streams->stream and other edits 2015-07-16 18:29:00 -04:00
Glenn Renfro
f0f7187892 Code cleanup & port change for source & sink examples 2015-07-16 18:07:26 -04:00
Dave Syer
dafa0773b5 Change streams->stream 2015-07-15 08:25:44 +01:00