Commit Graph

30 Commits

Author SHA1 Message Date
Marius Bogoevici
96f96f7621 Initial implementation of multibinder support
- Addresses #138,#172,#173 with support for multiple binders in an application
- Binders can be of multiple types (e.g. Rabbit or Kafka), as well as multiple binders of the same type connecting to different system (e.g. multiple Rabbit binders connecting to different Rabbit clusters)
- Binders are now created in a separate context, allowing for multiple configurations
- Adds the `spring.cloud.spring.binders` namespace that allows for creating configuration properties for multiple binders
- Add support for default binder, modify Kafka tests to use multiple brokers when running embedded
2015-12-09 11:08:04 -05:00
Marius Bogoevici
c979f1baa8 Add missing @ConfigurationProperties on sample
Required after it became mandatory in Spring Boot:

3740c817d3
https://github.com/spring-projects/spring-boot/issues/3460
2015-10-29 16:38:20 -04:00
bamboo
7dc9f2e324 [artifactory-release] Next development version 2015-10-23 19:34:46 +00:00
bamboo
bd22e119c8 [artifactory-release] Release version 1.0.0.M2 2015-10-23 19:34:44 +00:00
Mark Pollack
1c374eead7 Tidy up maven dependency references to current project version 2015-10-23 15:17:34 -04:00
Ilayaperumal Gopinathan
9a865a56d7 Add per-binding message type-conversion support
- For the message channels being created, set the corresponding `dataType` and `message-converters` based on the `contentType` value set per-binding
   - This is applicable for both direct-binding and the channels that connect to the binder
2015-09-28 10:28:00 -07:00
bamboo
e630998101 [artifactory-release] Next development version 2015-09-11 19:53:41 +00:00
bamboo
83f762a31e [artifactory-release] Release version 1.0.0.BUILD 2015-09-11 19:53:39 +00:00
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