Commit Graph

59 Commits

Author SHA1 Message Date
Marius Bogoevici
16aac0c2b4 Set version to 1.2.0.BUILD-SNAPSHOT 2017-02-21 14:53:00 -05:00
Marius Bogoevici
33f54fc758 Release 1.2.0.M2 2017-02-21 14:51:12 -05:00
Marius Bogoevici
e46d7ede73 Register references to child context instead of the bindable proxies
Fix #819
2017-02-21 12:20:08 -05:00
Ilayaperumal Gopinathan
8792423abc Not enforcing EnableAutoConfiguration on aggregate parent
- The aggregate parent configuration now imports the required auto configuration classes such as ChannelBindingAutoConfiguration and EndpointAutoConfiguration
while `@EnableBinding` is still at the parent configuration to be able to share the binding configuration among the child applications
 - Add `ConditionalOnMissingBean` in spring cloud stream auto configuration classes so that if `EnableAutoConfiguration` is enabled at child application classes
they don't get instantiated again
 - Conditionally import EmbeddedServlet auto-configuration when web environment is enabled for parent
 - Add test

Resolves #737
2017-02-16 15:48:52 +00:00
Marius Bogoevici
5cff7ced90 Set version to 1.2.0.BUILD-SNAPSHOT 2017-01-10 17:20:11 -05:00
Marius Bogoevici
f602ae838c Release 1.2.0.M1
Signed-off-by: Marius Bogoevici <mbogoevici@pivotal.io>
2017-01-10 16:35:44 -05:00
Ilayaperumal Gopinathan
38ba0d3941 Update master to 1.2.0
- Update Spring Cloud Dalston
    - update spring-cloud-build to use 1.3.0.BUILD-SNAPSHOT

This resolves #733
2016-12-16 11:55:31 -05:00
Marius Bogoevici
8ac71c7b57 Support flexible bound element types
Fixes #519

Introduces some internal changes to the framework allowing the use
of other types than MessageChannel/SubscribableChannel as bindable
types (e.g. Flux, Observable, KStream, etc.)

- Modify BinderFactory to allow the retrieval and lookup of a
  binder not only by name, but also by binding target type
- Subsequent changes to ChannelBindingService and tests to account
  for the modified signature
- Introduce BindingTargetFactory as the contract for creating bound
  elements
- Remove any references to chanels and bound elements and use
  'binding target' systematically across the board

Reinstate our own Checkstyle checks with a reduced set of rules so that header
  validation can be performed automatically at compile time.

Use ${project.version} for the checkstyle plugin configuration

Renaming some occurences of 'boundElement' to 'bindingTarget'

Renamed a stray occurence of 'channel'

Fix some occurences of String concatenation in the same line after reformatting
2016-12-13 13:19:13 -05:00
Marius Bogoevici
6c861135a3 Improve application aggregation and testability
Fixes #723

- Add support for registering an `AggregateApplication` bean for accessing the
  components from underlying subcontexts
- Testing support and samples

Signed-off-by: Marius Bogoevici <mbogoevici@pivotal.io>

Fix Javadoc
2016-12-04 14:18:38 +05:30
bamboo
cdbc9cd12d [artifactory-release] Next development version 2016-09-21 21:13:47 +00:00
bamboo
d739052c55 [artifactory-release] Release version 1.1.0.RELEASE 2016-09-21 21:13:47 +00:00
bamboo
2537a4df8c [artifactory-release] Next development version 2016-09-07 04:12:36 +00:00
bamboo
ef8d3fde03 [artifactory-release] Release version 1.1.0.RC1 2016-09-07 04:12:36 +00:00
bamboo
1b12f7d856 [artifactory-release] Next development version 2016-08-25 20:17:52 +00:00
bamboo
7b71e07c3a [artifactory-release] Release version 1.1.0.M1 2016-08-25 20:17:52 +00:00
bamboo
5cd15dc300 [artifactory-release] Next development version 2016-08-25 19:10:15 +00:00
bamboo
749191ce20 [artifactory-release] Release version 1.1.0.M1 2016-08-25 19:10:15 +00:00
Marius Bogoevici
bd92af4784 Add AbstractMessageChannelBinder
Handle common aspects of message-channel binders:
- added generic, customizable ReceivingHandler and SendingHandler
- made doBindProducer delegate to a series of template methods
- made doBindConsumer delegate to a series of template methods
- moved partitioning to an interceptor, thus fixing #493

Removed unused manual ack handling
2016-07-18 17:15:49 -04:00
Marius Bogoevici
aef08a28a3 Move tests to AssertJ 2016-06-01 13:10:42 -04:00
Marius Bogoevici
18dc0a707d Implement remainder of Spring Boot Checkstyle code rules
Fixes #532

Implements most of the remaining rules from Spring Boot, except JavaDoc + a few additional ones
2016-05-12 19:19:59 -04:00
Marius Bogoevici
a974ff7773 Checkstyle rules for imports and cleanup
Fixes #529

- enforced Spring Framework ordering rules
- disallowed static imports except for specific classes in test frameworks
2016-05-11 22:13:18 -04:00
Marius Bogoevici
296d710969 Update project version to 1.1.0.BUILD-SNAPSHOT 2016-05-10 19:41:15 -04:00
bamboo
e211a6340d [artifactory-release] Next development version 2016-05-10 13:33:46 +00:00
bamboo
53f1839a82 [artifactory-release] Release version 1.0.0.RELEASE 2016-05-10 13:33:46 +00:00
bamboo
450350f995 [artifactory-release] Next development version 2016-04-26 22:35:07 +00:00
bamboo
f11414230f [artifactory-release] Release version 1.0.0.RC3 2016-04-26 22:35:07 +00:00
bamboo
f9330f1117 [artifactory-release] Next development version 2016-04-07 13:25:26 +00:00
bamboo
727434b732 [artifactory-release] Release version 1.0.0.RC2 2016-04-07 13:25:26 +00:00
Ilayaperumal Gopinathan
7893904e01 Add doc for TestBinder
This resolves #451
2016-04-07 08:29:20 -04:00
bamboo
a9e432645d [artifactory-release] Next development version 2016-03-22 01:27:46 +00:00
bamboo
70a6abbc61 [artifactory-release] Release version 1.0.0.RC1 2016-03-22 01:27:46 +00:00
Marius Bogoevici
f681e2ce91 Setting version to 1.0.0.BUILD-SNAPSHOT 2016-03-21 21:11:25 -04:00
bamboo
98de668170 [artifactory-release] Next development version 2016-03-22 00:44:17 +00:00
bamboo
13daf68697 [artifactory-release] Release version 1.0.0.RC1 2016-03-22 00:44:17 +00:00
Marius Bogoevici
9b0c4bd627 Typesafe consumer and producer configurations
- Change the Binder interface to support ConsumerProperties/ProducerProperties beans and subclasses
- Binders can subclass the property beans to add new supported properties that will be automatically populated
- Spring Cloud Stream will  infer the target type and populate the beans from the environment based on a `spring.cloud.stream.bindings..<bindingName>` prefix
- Remove binder defaults and retain only general binder configurations

TODO: a) decide on instanceIndex/partitionIndex alignment (we do not need both)
b) support `defaultProducer`/`defaultConsumer` properties
c) add leniency control on binding (fail/ignore for unknown properties)
d) add a `requiredProperties` configuration for consumer/producer properties to finely tune the mandatory properties expected to be supported by a bound application

Changes made during review:

- Add support for consumer and producer defaults
- Remove partitionIndex, keeping only instanceIndex
- Fix default properties for Kafka binder
- Move batching properties to Rabbit only
2016-03-15 15:38:30 -04:00
Ilayaperumal Gopinathan
b184f67ee1 Use TestSupportBinder instead of redis binder in integration tests
- Modify the integration tests to verify the usecases per app basis (that uses the TestSupportBinder for its channel binding)
 - Remove redis binder usage in integration tests

This resolves #380
2016-03-04 11:27:27 -05:00
Marius Bogoevici
5670e29776 Test fixes
Class rule for Redis
Do not pass message collector for test input bindings
2016-03-02 11:28:23 -05:00
Mark Fisher
9c3eef49da TestBinding polishing 2016-02-22 17:45:09 -05:00
Marius Bogoevici
6c880726b8 Binder API simplification
Resolves #330

- removes `unbind` from the binder and moves it to the `Binding` instance itself;
- `Binding` is now an interface with a default implementation provided by SCS
- Removed all methods from Binder except for unbind()
- Removed old and unused code
- Removed circular reference between default Binder and Binding implementations
- Removed Binder type
2016-02-22 14:21:03 -05:00
bamboo
0a6fc90f3a [artifactory-release] Next development version 2016-02-04 19:38:45 +00:00
bamboo
082e5e7330 [artifactory-release] Release version 1.0.0.M4 2016-02-04 19:38:44 +00:00
Gary Russell
16e7893e49 scsm-88: Support Dynamic Binding Channel Limits
Required by scsm-88.

If `dynamicDestinations` is not zero length, only dynamically bind if
the channel is is in the list.

Polishing - Test Support for Dynamic Bindings
2016-02-01 22:48:48 -05:00
Mark Fisher
c3758b9dc0 Binder simplification
* removed pub/sub methods from binder
* consumer group is now a parameter of the remaining bindConsumer method

* remove DynamicProducer from Binder
* Move logic to create the dynamic channel to the channel resolver.
* Return bindings from bind methods and use them for unbinding
* Suffix for dlq

Move All Rabbit Binder CleanUp to Test Bindera

More RabbitMQ Binder Test Cleanup

Clean up declarations for remaining tests.

removed BinderUtils

use Redis ZSET for consumer groups

copyright dates

AutoBindDLQ: Single DLQ Per Group When Partitioned

Configure a single DLQ for each group for all partitions.

Add DLX Exchange binding for each original queue routing key, including the partition.

Fix DLQ Binding (Producer Side)

Option was not allowed and the routing key was wrong.

Add test to verify producers can be bound before consumers.

`autoBindDLQ` must be set (or reset) on both sides for success.
2016-01-27 21:59:58 -05:00
bamboo
b869cb8c4b [artifactory-release] Next development version 2015-12-21 17:18:25 +00:00
bamboo
f3d46fc120 [artifactory-release] Release version 1.0.0.M3 2015-12-21 17:18:25 +00:00
Marius Bogoevici
95b3c4e47b Change test binder to always override existing binders 2015-12-09 14:21:09 -05:00
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
bcff75b20b GH-213 Merge Binder SPI into Core
- Moved contents of `spring-cloud-stream-binder-spi` into `spring-cloud-stream`
- Removed `spring-cloud-stream-binder-local` and used local binder implementation for tests exclusively
2015-11-30 17:28:24 -05:00
Gary Russell
a375e61260 XD-3519: Rabbit Taps
- instead of publishing to the default exchange, producers now publish to a topic exchange, to which the main queue is bound
- taps on a stream simply bind a queue to the same exchange with a name including the group for the tapping stream and a
    routing key pattern `#`
 - this means that multiple instances of the same tap stream will compete but multiple tap streams will get a copy
- for partitioned data, a single topic exchange is used, which each partition queue bound with its name as the routing key
 - this means taps on partitioned data see the consolidated messages

Remove unused binder utilities.

Use TopicExchange Always

Use a TopicExchange when binding a pubSub producer for consistency.

Remove Deprecated Binder Method

Add group to BindingProperties

- also fix artifact name in test support pom
- also fix some kafka tests (does not imply that kafka taps work - yet)
2015-11-10 20:25:49 -05:00
bamboo
7dc9f2e324 [artifactory-release] Next development version 2015-10-23 19:34:46 +00:00