Commit Graph

215 Commits

Author SHA1 Message Date
Marius Bogoevici
6ad3ca5f84 Add option for the resolver and module-launcher to operate in offline mode 2015-09-06 16:16:36 -04:00
Dave Syer
94639cb72e Some javadocs for clarifying meaning of properties 2015-09-05 10:34:28 +01:00
Mark Fisher
b39c609fb0 renamed port properties 2015-09-04 09:47:50 -04:00
Marius Bogoevici
e82bfe6c91 Add support for Kafka in Cloud Foundry
- use the VCAP properties to find brokers and ports

Corrections to pom, renamed zkAddress to zkNodes
2015-09-04 09:47:47 -04:00
Ilayaperumal Gopinathan
13ba4271d6 Use JarLauncher for module launcher 2015-09-03 15:41:19 -07:00
Marius Bogoevici
ac0a4ed529 Added test for regular Lifecycle beans 2015-09-03 17:46:32 -04:00
Ilayaperumal Gopinathan
28a23c90a0 Start/Stop lifecycle components after bind/unbinding
- Explicit call is needed to start/stop the non-smart lifecycle components after bind/unbinding

Avoid recursive calls to applicationContext.start()
2015-09-03 17:11:57 -04:00
Marius Bogoevici
b8ffa630f7 Use the binding value to determine binding target
Remove 'topic:' prefix for topics

Reverted sample change, added test
2015-09-03 16:44:57 -04: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
Dave Syer
0debc7aec3 Remove 'local' starter 2015-09-03 15:00:14 +01:00
Dave Syer
f41836e53b Add starters for main binder types 2015-09-03 08:17:57 -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
0fd1e37a8f Aligns the classloader creation strategy of the aggregated module with the regular modules
- application classpath URLs are added to the launched aggregated module as well
2015-09-02 22:49:20 -04:00
Marius Bogoevici
b9af844ce0 Disable aggregate test until Rabbit rule is available 2015-09-02 16:05:04 -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
Marius Bogoevici
80391fa876 Set extension classloader as parent for the module classloader 2015-09-02 15:19:22 -04:00
Eric Bottard
3561ac4aa2 Copy parent URLs when creating CL 2015-09-02 14:59:32 -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
Marius Bogoevici
3eeeaec160 XD-3445 Fix Kafka Binder
- add autoconfiguration support and missing configuration properties
- add version in pom.xml
- fix dependency on spring-cloud-stream-binder-test
2015-08-31 22:37:45 -04:00
Dave Syer
610cf5608d Apply same autoconfig rules for redis as rabbit 2015-08-29 10:49:20 +01:00
Dave Syer
9b4c12b517 Fix ordering for rabbit autoconfig 2015-08-29 10:44:03 +01:00
Ilayaperumal Gopinathan
b60ccd1427 Re-add bean conditions for cloud config
- 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
2015-08-28 12:33:09 -07:00
Mark Fisher
6a5137a0c3 add @ConfigurationPropertiesBinding to Converter
This is required due to the changes in boot related to this issue:
https://github.com/spring-projects/spring-boot/issues/2669
2015-08-28 10:55:23 -04:00
Mark Fisher
6a1787ffe3 polishing 2015-08-27 15:57:07 -04:00
Eric Bottard
74d85cd9d2 Use the full Environment for module args
Rename to ModuleLaunchRequest

Add documentation for the format

Move request construction

Document launcher order

Fix empty args case

Update docs
2015-08-27 15:43:42 -04:00
Ilayaperumal Gopinathan
cf470b6d6f Make binding key case insensitive
- 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
2015-08-27 08:16:41 -07:00
Ilayaperumal Gopinathan
a4aede7589 Fix doc typo 2015-08-26 18:33:02 -07:00
Ilayaperumal Gopinathan
0a927b6711 Update documentation
- 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
2015-08-26 14:25:01 -04:00
Ilayaperumal Gopinathan
7663372062 ModuleRunner enhancements
- 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
2015-08-26 11:26:57 +02:00
Marius Bogoevici
83123c3b97 Pre-register default bindings for channels
- 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
2015-08-25 16:00:33 -07:00
Mark Fisher
6de7f7cb33 avoid dots in producer property keys 2015-08-25 13:57:59 -04:00
David Turanski
31168b6f5b minor changes to @Ignored test 2015-08-24 12:29:16 -04:00
Eric Bottard
1ce40497c9 Fix copyrights 2015-08-23 15:19:09 +02:00
Ilayaperumal Gopinathan
1e8989a45a Remove cloud connector dependencies from S-C-S
- 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
2015-08-22 12:40:38 -04:00
Ilayaperumal Gopinathan
b3bc9c9673 Fix RedisService cloud configuration
- Remove `@ConditionalOnMissingBean` on RedisConnectionFactory
2015-08-22 00:17:24 -07:00
Marius Bogoevici
d243036db7 Fix extra apostrophe 2015-08-21 18:26:49 -04:00
Marius Bogoevici
397ef6f557 Simplify Travis setup and disable snapshot publishing
- remove conditionals for the PR process
- stop Travis from publishing snapshots
2015-08-21 17:59:33 -04:00
Ilayaperumal Gopinathan
4109949a92 Use the required autoconfiguration in test
- Instead of using `@EnableAutoConfiguration` use `PropertyPlaceholderAutoConfiguration` which is all required for the property resolution
2015-08-21 13:15:47 -07:00
Mark Fisher
bd0b3f294f polishing 2015-08-21 11:31:45 -04:00
Marius Bogoevici
08f898cb22 Use application.name in default binding name
Enable autoconfiguration so property placeholders are handled
2015-08-21 11:23:07 -04:00
Ilayaperumal Gopinathan
56469353b3 Autoconfigure rabbitCloud before rabbit auto-config
- This ordering is required to avoid having 2 beans created for rabbit `ConnectionFactory`
2015-08-21 07:59:23 -07:00
Marius Bogoevici
2e4fd84f93 Add Channel Interceptor Support tests
Add binding tests for Source, Sink, Processor and arbitrary interfaces
2015-08-21 11:30:19 +02:00
Ilayaperumal Gopinathan
b0beec8548 Annotate channelbinding properties instead of autoconfig
- Autowire `ChannelBindingProperties` into `ChannelBindingConfiguration` via
`@EnableConfigurationProperties` support
  - This change removes explicit `@AutoConfiguration` for ChannelBindingProperties
2015-08-21 11:06:27 +02:00
Ilayaperumal Gopinathan
44bf181ff0 AutoConfigure redisCloud before redis auto-config 2015-08-20 17:48:49 -07:00
Ilayaperumal Gopinathan
55591889e1 Add auto-config for Local binder
- 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
2015-08-20 15:08:17 +02:00
Marius Bogoevici
1c57a85a52 Allow method parameters as target for @Input and @Output
So that they can qualify @Bean method arguments
2015-08-19 21:42:12 -04:00
Eric Bottard
2ab2d5c1a9 Add a converter String->Expression 2015-08-19 16:29:36 -04:00
Mark Fisher
a20d151217 default matcher timeout is now 5 seconds 2015-08-19 16:23:50 -04:00
Eric Bottard
645b49129d Make immediate receive the default 2015-08-19 16:23:50 -04:00