Commit Graph

235 Commits

Author SHA1 Message Date
Mark Fisher
cc71d66445 fixed doc typo: missing semicolon in code sample 2015-09-30 13:14:48 -04:00
Marius Bogoevici
deecae93a6 Allow configuration of Kafka embedded headers in the bus 2015-09-29 20:50:19 -04:00
Ilayaperumal Gopinathan
1a1ebe7b78 type conversion: address review comments
Fix supports check on FromMessageConverter: make sure the targetType is on the LHS

Fix PojoToStringMessageConverter: handle message payload tuple separately so that the tupleToString converter is set
2015-09-29 20:46:17 -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
Ilayaperumal Gopinathan
638c18e490 Add message converters
- These are the message converters being used in Spring XD; porting them in S-C-S
2015-09-28 10:27:39 -07:00
Ilayaperumal Gopinathan
e92f9d3683 Add spring-cloud-stream-tuple project
- This is a temporary location for the `tuple` project and would eventually be moved to something like `spring-data-commons`
    - Note: This project currently removes `batch` package from the tuple project in XD
 - The corresponding test classes are yet to be moved.
2015-09-28 10:23:14 -07:00
Marius Bogoevici
10c1f5051c Typesafe BindingProperties
- Create BindingProperties and Converter to replace the current Map-based logic
2015-09-25 08:57:16 -07:00
Marius Bogoevici
9ab7f24f2c Basic support for Kafka on Lattice 2015-09-14 10:02:53 -04: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
Mark Pollack
edd36c4990 Update snapshot deps to milestone deps 2015-09-11 10:36:04 -04:00
Ilayaperumal Gopinathan
bb326ec32f Minor cleanup 2015-09-10 19:41:36 -07:00
Marius Bogoevici
d9c4f949c0 Add support for including/excluding dependencies when launching a module
- adding includes/excludes properties for modules
- includes and their transitive deps are mandatory, excludes can be pattern-based
- supports both individual module launch and aggregation

Allow exclusions to apply to all artifacts

Fixing classloading issues when LaunchedUrlClassloader is used with JARs from the Maven repository

Javadoc enhancements
2015-09-10 18:27:08 -07:00
Marius Bogoevici
745a4bd2dd Use 'args.aggregate' for aggregate parameters 2015-09-10 16:58:24 -04:00
Dave Syer
62c232f785 Updgrade Spring Integration to stable version 2015-09-10 15:44:52 -04:00
Dave Syer
4c6dd3c393 Add a default poller for Spring Integration
Useful for simple implementations of @EnableModule(Source) without
having to specify a poller explicitly
2015-09-10 14:19:19 -04:00
Marius Bogoevici
f4f6cb509d Add per-binding configuration for partitioning
- consumer and producer partitioning properties are defined per-binding
- unit tests
- Kafka binding fixes for partitioning
2015-09-09 21:09:49 -07:00
Marius Bogoevici
e003141336 Ensure that Boot dependencies are inherited from Spring Cloud Parent 2015-09-09 09:40:28 -04:00
Dave Syer
9b2b6d0df1 Use AnnotatedElementUtils to extend the reach of BindingBeansRegistrar
The annotation metadata coming into an ImportBeanDefinitionRegistrar does not
include overrides or inherrited/merged attributes from meta-annotated custom
annotations. This change makes it possible to extend @EnableBinding if
users want to do that.

Per https://jira.spring.io/browse/SPR-13448
2015-09-09 09:46:42 +01:00
Marius Bogoevici
139d6a5c6a Add support for 'args.*' 2015-09-07 15:52:29 -04:00
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