Commit Graph

994 Commits

Author SHA1 Message Date
Soby Chacko
ae445e73ac Spring Boot 2.1 upgrade related changes
* Instead of redefining `BinderTypeRegistry` as a bean in several tests, properly use spring.binders
  to define mock binders and then choose a default binder in tests in case of multiple binders in
  same spring.binders file.
* Remove `BindingServiceConfiguration` in `EnableBinding` and introduce it as a proper
  Spring Boot autoconfiguration class. Added `BindingServiceConfiguration` to spring.factories.
* Move `BinderFactory` bean into `BindingServiceConfiguration` and add `ConditionalOnMissingBean`
  on it so that downstream users can define new `BinderFactory` beans as part of autoconfiguration.
* Remove `ConditionalOnMissingBean` from the `BinderTypeRegistry` bean in `BinderFactoryConfiguration`
  as we don't expect this bean to be overridden.
* Remove previously added property `spring.main.allow-bean-definition-overriding` in several tests.
* Since web/actuator is optional now, remove unncecessarily setting server.port to `0` in tests
* Ensure that `BindersHealthIndicatorAutoConfiguration` is autoconfigured after `BindingServiceConfiguration`
  so that it has a `BinderFactory` available.
* Remove redefining `ServerController` bean in `SchemaServerConfiguration` as this is already created through
  component scanning and causing the bean overriding exceptions.
* Tests cleanup and polishing.

Resolves #1429, #1430
2018-08-10 11:27:11 -04:00
Soby Chacko
85b34be733 Spring Boot 2.1 - further updates
Update more tests with bean overriding errors where they try to override the `BinderTypeRegistry` bean.
This is not very common in end user applications unless they are trying to define a new binder type.
If that is indeed the case, then they have to set `spring.main.allow-bean-definition-overriding` to `true`.

Remove where we define the bean `integrationArgumentResolverMessageConverter` in `ContentTypeConfiguration`
as this causes a conflict with the same bean from Spring Integration and thus causing bean overriding exception.
Insted of creating this through `@Bean`, manually register the bean after removing it from `BeanDefinitionRegistry`.
2018-08-07 17:24:42 -04:00
Soby Chacko
cb105ab0ec Upgrade Spring Cloud Build to 2.1.0
This upgrades to Spring Boot 2.1.0
Fix tests where the beans need to get overridden
Minor cleaning up
Polishing

Resolves #1426
2018-08-07 19:47:13 +02:00
Gary Russell
fa1b6257d5 KGH-309: Allow override of partition count
See: https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/309

Provide binders with access to the output channel so it can override the
partition count on the `PartitioningInterceptor` if it detects that the
actual partition count is different to that configured in the producer properties.

Resolves #1421
2018-07-25 20:02:16 +02:00
Soby Chacko
daccfb5e58 Properties propagation in custom environment
Currently when the binder configuration provide properties in a custom environment,
Spring Cloud Stream does not include any beans from the outer context.
This change will ensure that in such cases, the binder context will have access
to the outer context as a non-parent bean.

Resolves #1420
Resolves #1423
2018-07-25 16:29:53 +02:00
Oleg Zhurakousky
3bfe1775af GH-1418 Fixed binding visualization bug
Resolves #1418
2018-07-17 18:43:18 +02:00
Oleg Zhurakousky
f7ba212b82 GH-1417 Fixed default contentType in doc
Resolves #1417
2018-07-16 09:23:49 +02:00
Oleg Zhurakousky
1f5f8da787 Added SpelExpressionConverterConfiguration to BindingServiceConfiguration 2018-07-10 16:37:02 +02:00
Oleg Zhurakousky
37ecae4ab7 GH-1412 Ensured SpelExpressionConverterConfiguration present in multi-binder
Ensured that SpelExpressionConverterConfiguration is always present in the AC regardless of single or multi-binder application configuration
Polishing

Resolves #1412
2018-07-09 19:54:55 -04:00
Soby Chacko
66cfdffad9 Autoconfigure optimization
Add spring-boot-autoconfigure-processor to spring-cloud-stream
and spring-cloud-stream-reactive modules for auto configuration optimization.

Resolves #1410
Resolves #1411
2018-07-06 12:44:55 +02:00
Oleg Zhurakousky
eea20befc3 GH-1405 added RetryTemplate qualifier (#1406)
* GH-1405 added RetryTemplate qualifier

Added @StreamRetryTemplate qualifier annotation
Resolves #1405

* GH-1405 renamed field to >
2018-07-03 13:44:28 -04:00
Oleg Zhurakousky
028245b703 GH-1408 removed unnecessary dot in property name
Resolves GH-1408
2018-07-03 17:19:25 +02:00
Oleg Zhurakousky
3558dd71d2 GH-1402 added Spring Cloud Function dependency
Resolves #1402
2018-07-03 11:08:40 -04:00
Soby Chacko
dae35f2dbf Next update: 2.1.0.BUILD-SNAPSHOT 2018-06-27 13:53:31 -04:00
Soby Chacko
79a09791cd 2.1.0.M1 Release 2018-06-27 13:45:15 -04:00
Soby Chacko
a82c906913 Remove error.destination property
Remove the ability to bind global error channel directly to a broker destination through error.destination property.
The preferred way to consume error messages in a brokder destination is through the binder specific DLQ mechanism.
Global error channel may still be consumed by a ServiceActivator or StreamListener, but it is not bound to a broker destination.

Remove the internal bridge channel from the global error channel that is used for content type conversion.
Remove tests associated with this feature.
Deprecate class `SingleBindingTargetBindable` as this is not used by the framework any longer.
Docs polishing.

Resolves #1398
Resolves #1401
Resolves #1269
2018-06-27 09:11:50 -04:00
Oleg Zhurakousky
9626b5881c GH-1399 Added support for listener container customizer
This work is basically parsing out some rabbit specific work from https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/pull/145 into a an AbstractMessageChannelBinder

Resolves #1399
Resolves #1400
2018-06-26 12:01:52 -04:00
Oleg Zhurakousky
819542d9e0 GH-1234 Fixed broken test
Resolves #1234
2018-06-25 23:24:24 -04:00
jmaxwell
e3393b98ca GH-1301 Add conversion to Flux Message Payload.
Resolves #1301
Resolves #1302
2018-06-25 23:09:29 -04:00
Oleg Zhurakousky
d8b1b7036b General code cleanup 2018-06-25 23:03:50 -04:00
Oleg Zhurakousky
ed228dae59 polishing 2018-06-25 18:09:22 -04:00
Oleg Zhurakousky
da9658ef1f GH-1359 Added support for property precedence
Ensured that default property only takes affect if the actual binding property is not set.
For example if "spring.cloud.stream.bindings.output.producer.partitionCount=4" and "spring.cloud.stream.default.producer.partitionCount=1" are both set
the actual binidng property (i.e., 4)  should take precedence

Resolves #1359
2018-06-25 17:06:34 -04:00
Oleg Zhurakousky
9f3f49eff0 Revert "Prevent SpringBootApplication starting to overlap with user defined Application."
This reverts commit 66b7d8dbe4.
2018-06-18 13:44:33 -04:00
Oleg Zhurakousky
f3a18e6e83 GH-1384 Set application's context as binder context
Set application's context as binder context once the binder is initialized to ensure identical behavior in i multi-environment scenarios.
Resolves #1384
Resolves #1357
2018-06-18 08:19:58 -04:00
Guilherme Blanco
66b7d8dbe4 Prevent SpringBootApplication starting to overlap with user defined Application.
Fixes #1391
Resolves #1393
2018-06-15 14:20:46 -04:00
Oleg Zhurakousky
3ebea011bf GH-1389 Added support for output binding control
Added missing support for visualization and control of output binding
Resolves #1389
2018-06-13 19:59:54 -04:00
Oleg Zhurakousky
146576d368 GH-1385 Enhance bean registration error
Enhanced bean registration error message in the event  multiple bindings point to the same destination
Resolves #1385
Resolves #1390
2018-06-13 14:33:51 -04:00
Artem Bilan
8f5b63ef84 GH-1387: Make PartitioningInterceptor as public
Fixes spring-cloud/spring-cloud-stream#1387

To be able to distinguish the `PartitioningInterceptor` in the
`MessageChannel` and remove it from the interceptor it would be better
to have its class as `public`

In some use-case like AWS Kinesis Binder it is important do not have
an SCSt partitioning logic, since the whole functionality is done
on the target system.

**Cherry-pick to 2.0.x**
2018-06-08 13:51:03 -04:00
Sabby Anandan
f1dbea98dc Add SCSt's data integration journey
Address review comments

Resolves #1358
Resolves #1373
2018-05-15 17:22:06 +02:00
Gary Russell
1b57c91713 Add useNativeDecoding Consumer Property
Fixes https://github.com/spring-cloud/spring-cloud-stream/issues/1369

Also fix a couple of typos and bugs in code snippets that broke syntax highlighting in Atom.

Resolves #1370
2018-05-15 15:30:40 +02:00
Soby Chacko
624a25fc92 Remove RxJava components from the reactive module
Remove all the deprecated RxJava components from spring-cloud-stream-reactive module in favor
of using Project Reactor based types.

Fixes #1378
Resolves #1379
2018-05-15 15:26:34 +02:00
Oleg Zhurakousky
66254ca9f6 GH-1272 Removal of parent/child context
Initial removal of parent/child context for Binders. This commit contains bare minimum of what's required while still supporting 'the old way'.
Basically implementor of a binder must do the following things:
- name your configuration file as the usual boot 'spring.factories` (no more spring.binders)
- add name attribute to the `@Bean` which declares the actual binders (e.g., `@Bean('rabbit')`)

This PR ensures that the existing functionality (the use of spring.binders) is preserved.

Resolves #1272
Resolves #1361

polishing
2018-04-27 11:04:21 -04:00
Oleg Zhurakousky
7be8ea59e9 Polishing, formatting
Resolves #1366
2018-04-27 08:55:19 +02:00
Soby Chacko
61bce52722 Native multiple input binding changes
If the binder implementation enables native multiple input binding, skip individual
consumer binding per binding target (for example - from a comma separated targets
provided as input destination property).

By default, native multiple input binding is disabled at the core framework level
and the binder implementation explicitly needs to override that to enable it.

Fixes #1365

Chaning the boolean flag for multiple input binding to multiplex
2018-04-27 08:53:32 +02:00
Oleg Zhurakousky
92f6d4556c GH-1354 Added version header to Metric Message
Resolves #1354
Resolves #1356

polishing
2018-04-13 17:32:05 +02:00
Artem Bilan
d459ebdf4a Fix NOTE typo in the Core Doc
**Cherry-pick to 2.0.x**
2018-04-12 14:30:56 -04:00
Oleg Zhurakousky
baa2581725 Post-release update to 2.1.0.BUILD-SNAPSHOT 2018-04-06 14:48:33 -04:00
Oleg Zhurakousky
e6cff0c6e6 2.0.0.RELEASE 2018-04-06 13:54:04 -04:00
Oleg Zhurakousky
22e2401a51 Updated to Spring Cloud Build 2.0.0.RELEASE 2018-04-06 12:37:24 -04:00
Oleg Zhurakousky
8373e135f4 GH-1351 changed to Step meters
GH-1351 added interval field to Applicationmetrics

Resolves #1351
Resolves #1352
2018-04-06 12:32:37 -04:00
Oleg Zhurakousky
6d29ade3bf GH-1256 Polishing Health Indicator section
Resolves #1344
Resolves #1256
2018-04-06 09:45:09 -04:00
Soby Chacko
f4e7b2fce7 Revise health indicator docs
Resolves #1256

Addressing PR review comments
2018-04-06 09:38:45 -04:00
Soby Chacko
35a771a352 Revise Schema Registry docs
Resolves #1311
Resolves #1343

Addressing PR review comments

Addressing PR review comments

Addressing PR review comments

Addressing PR review comments
2018-04-06 09:35:06 -04:00
Oleg Zhurakousky
d012a7da17 GH-1248 Updated Programming Model section
GH-1248 Removed 'Accessing Bound Channels' section

GH-1248 Removed 'Aggregation' section

Resolves #1248
Resolves #1348
Resolves #1346
2018-04-06 09:32:04 -04:00
Oleg Zhurakousky
b8711066e2 GH-1294 Fixed NPE in AvroSchemaRegistryClientMessageConverter
The NPE was a result of not following defensive programming practices and that is fixed.
Also, we already support both reader and writer schema being null where new ReflectDatumReader(type) is used in getDatumReader(..)  operation.
That said there may still be conditions which are not supported and that is okay since in the end it's a MessageConverter and as such it is one
of the extension points of the framework allowing user to provide a custom one follwing instructions in 'User-defined Message Converters' of the reference guide.

Resolves #1294
2018-04-02 16:47:46 -04:00
Sabby Anandan
1142136fca Adjust image-width 2018-04-02 08:23:56 -07:00
Oleg Zhurakousky
f5fb5b35a6 Polishing error-handling doc section 2018-04-02 10:44:39 -04:00
Oleg Zhurakousky
819b3047d5 GH-1335 Provided more clarity in Error Handling section
Resolves #1335
2018-04-01 12:05:26 -04:00
Sabby Anandan
9b0a646da4 Add visual representation for custom vs. global error handling 2018-03-31 12:12:00 -07:00
Oleg Zhurakousky
a48739e905 GH-1332 Fixed ClassCastException
Removed casting to byte[] in SendingHandler.serializeAndEmbedHeadersIfApplicable(..)

Resolves #1332
2018-03-30 16:57:38 -04:00