Commit Graph

62 Commits

Author SHA1 Message Date
Gary Russell
b5aa59e244 Prep work for Kafka Issue #236
See https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/236

- add `none` as a synonym for `HeaderMode.raw`
- add `headers` meaning "use native headers"
- change the default header mode - `null`
- remove `supportsHeadersNatively` - allow binders to chose header mode for each binding
  binders decide their own default when the property is null
- Rabbit will choose `headers` as default (but can be overridden to `none` for a binding)
  `embeddedHeaders` will not be allowed
- Kafka will choose `embeddedHeaders` as default for compatibility with 1.x peer apps
- remove deprecations on header embedding code

Polishing; support fallback

- if the consumer side is configured to support embedded headers,
  binders should look for native headers first and signal their presence
  using the `BinderHeaders.NATIVE_HEADERS_PRESENT` header;
  fall back to embedded headers if it appears the payload might contain
  them
- remove support for XD embedded headers (first byte < 0xff)
- add a quick check for embedded headers by examining the first byte for 0xff
- change the log from error to debug when decoding embedded headers fails

- see the kafka binder PR for a test case with a consumer that can handle all
  message flavors (native, embedded, and no headers).
2017-10-24 14:49:34 -04:00
Laur Aliste
1e7150205f Fix typos in spring-cloud-stream-overview.adoc
- critiical -> critical;
- end 'etc' with a period; also consistently end etc in parentheses with
  'etc.).';
- typo in 'application';
- applicaiton -> application;
2017-10-16 10:43:27 +02:00
John Carey
598fc0b8e7 Fixing @Transformer for ProcessorApplication.
Without explicitly naming the `inputChannel` and `outputChannel`, well get this error on startup org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers
2017-10-10 13:43:05 -03:00
Vinicius Carvalho
171f034a8c Content type redesign
Fixes #992, #1050, #1051, #1052

Adding custom jackson converter with some tests
Adds kryo message converter to replace codec
Checkstyle changes

Removing codec support
- Removed codec dependency from AbstractBinder
- MessageSerializationUtils is almost an empty shell for now, just to
  keep code compiling until we get EmbeddedHeaders interceptors
- Updated Kryo tests

Removing codec module from build
Added a new Annotation for custom converters '@StreamConverter'
Fixed some tests with new expected behavior
Moved broken tests to a temporary package to keep track of progress
Fixed KryoConverter to fail based on headers
Fixed a couple of more tests

Making converters strict to only convert their corresponding contentType
Bypassing conversion for ErrorMessages

* Configuring SI ConfigurableCompositeMessageConverter
 - Moved ContentType related beans into separate configuration
 - Configured SI ConfigurableCompositeMessageConverter to use same
   converters as Stream does (for ServiceActivator)
- TupleConverter should return byte[] as all other converters
- Fixed tests

* Fixes tests
 - Revert to Boot 2.0.0.M3. Snapshots breaking actuator
 - Checkstyle fixes
 - Disable JsonUnmarshalling as a catch all converter

Fixing Schema tests
Fixing Metrics tests
Fixing reactive tests
applying checkstyle fixes

 * Adding new content type tests
 - Fixed ContentTypeInterceptor misusage of default mimeType

Changing contentType doc section
Improving doc section
Last minute polish
Fixing BinderTests to use bytes to compare messages
Applied changes to Base Binders test to use the new contentType handling mechanism
PR review fixes

Renaming StreamConverter -> StreamMessageConverter
2017-10-05 10:35:51 -04:00
Gary Russell
0eab8a5fa7 GH-916: MC Binder Producer Error Infrastructure
Initial Commit for GH-916.

- register a pubsub error channel.
- register and subscribe a bridge handler to bridge it to the global error channel.
- pass the error channel to the implementation so it can wire it into the outbound endpoint.
- destroy the infrastructure when unbinding.

Javadoc Polishing

Add test case.

temp update to SI 4.3.12

GH-802 - Error Handling Documentation

Resolves #802
2017-08-22 12:11:32 -04:00
Vinicius Carvalho
3ca2138a32 Minor doc improvements
- Clarifies where @EnableBinding should be used
 - Explains pubsub nature of @StreamListener and computing consumer of
   other SI annotations
 - Moved a comment in relevant section
2017-08-17 11:04:38 -04:00
Vinicius Carvalho
7cbd005e79 Adding section on cloudfoundry and VCAP_SERVICES for connection factories 2017-08-03 14:34:04 -04:00
Vinicius Carvalho
6339521448 Adds instructions on how to use confluent schema client
Fix #1011

Moving confluent config to its own section
2017-07-31 14:47:46 -04:00
Ilayaperumal Gopinathan
eadcfd26ae Clarify doc on bindable components
Resolves #1019
2017-07-27 09:59:33 -04:00
Marius Bogoevici
2910d27e09 Improve support for disabling TestSupportBinderAutoConfiguration
Fixes #573

- Split TestSupportBinderAutoConfiguration into separate configs
  for the binder, binderfactory and message collector.
  This enables to address the testBinder as a regular binder when
  autoconfiguration is disabled, and to ensure that the message
  collector is available when the autoconfiguration is disabled.
- reorganize tests to use the default autoconfiguration options
- add documentation for disabling test binder autoconfiguration
2017-07-17 12:32:32 -04:00
Ilayaperumal Gopinathan
c06baa17cd Polishing 2017-07-16 23:21:32 +05:30
nitishasgekar
de286f5e6a Removed reference to PollableChannel
Removed reference to PollableChannel as per https://github.com/spring-cloud/spring-cloud-stream/issues/436#issuecomment-205430607
2017-07-16 23:10:22 +05:30
Soby Chacko
9935822eaf Adding docs for StreamEmitter
Fix #997
2017-07-07 13:23:39 -04:00
Marius Bogoevici
25be13a89f Fix Aggregate Source documentation
Fixes #987
2017-06-16 13:51:38 -04:00
Henryk Konsek
8b202aac2f Fixed documentation typo. 2017-05-12 09:26:46 +02:00
Marius Bogoevici
6bdca86660 Minor: line ending doc 2017-04-11 18:37:40 -04:00
Marius Bogoevici
98ca7f978a Update metrics sample
Fix #918
2017-04-11 18:09:28 -04:00
Marius Bogoevici
d6fe841a63 Align the exporter and the trigger name
Fix #903

Use 'application' as the trigger name consistently.

Since 'application' would be a too generic name for
the Exporter bean, use a BeanPostProcessor to install
the exporter in the `MetricExporters` bean.

Additional updates

- rename binding to `applicationMetrics` (we can decide later how
  the channel is named)
- remove the default setting for `spring.metrics.export`
- Improve documentation

Fix #904

Docs updates

Properly escape asciidoc control characters
2017-04-10 15:37:52 -04:00
Marius Bogoevici
ec05e6cf44 Fix metrics properties prefix
Fixes #900
2017-04-06 11:19:43 -04:00
Marius Bogoevici
8f3e448f07 Schema support documentation polishing 2017-04-03 18:47:06 -04:00
Vinicius Carvalho
44f66543d0 Adding improved section on schema evolution support
Fix #898
2017-04-03 18:46:51 -04:00
Marius Bogoevici
d17e70ddaf Metrics refactoring
- Change the metrics channel name to `applicationMetricsChannel`
- Update documentation
- Remove `instanceIndex` to reduce coupling to
  Spring Cloud Stream semantics and because it can be sent via
  the `properties` metadata set
2017-03-31 17:33:58 -04:00
Marius Bogoevici
c5632cd5f3 Add reference to Kryo 2017-03-31 10:45:12 -04:00
Marius Bogoevici
334ed57c00 Update test binder documentation
Fix #867

* Switch to Spring Boot 1.4 and later configuration
* Add artifact reference
* Remove @DirtiesContext and autowired BinderFactory field
2017-03-31 10:30:48 -04:00
Vinicius Carvalho
7438fde088 Changing metrics channel name to align with boot 2017-03-31 15:48:09 +05:30
Vinicius Carvalho
9fdd7f9fc5 Metrics: rename applicationName to key
Fix #879
2017-03-27 12:16:03 -04:00
Vinicius Carvalho
d78adea895 Avoiding duplicate entries on properties map
Fix #859

Instead of sending out all matching relaxed properties
we now pick up one single canonical format and send
the data to consumers using it.

Formatting settings
2017-03-18 19:13:17 -04:00
Ilayaperumal Gopinathan
8e87f2bece Add doc for using errorChannel subscription
Resolves #849
2017-03-15 16:17:04 -04:00
Vinicius Carvalho
e05d5e03bd Initial metrics implementation 2017-03-13 18:13:27 -04:00
Ilayaperumal Gopinathan
567bdb4b2c Clarify content type conversion in doc
Resolves #797
2017-03-13 13:47:52 -04:00
Vinicius Carvalho
4cd9b0c3ec Introducing caching
Fix #832 #752

Adds caching capabilities to the converter. Remote calls to the
registry, Schema Parsing and toString were very expensive operations
that are now being cached

Adds a decorator to the registryClient that allows caching of remote
invocations.

Fixing review comments
2017-03-08 12:45:19 -05:00
Ilayaperumal Gopinathan
841e05b266 Add note on aggregate application doc
Resolves #785

Fix review comments
2017-03-06 11:42:45 -05:00
Marius Bogoevici
db25c9948e Add back router example, fixes 2017-03-03 17:37:15 -05:00
Ilayaperumal Gopinathan
e029d4954e Doc for binding dynamic destinations
Resolves #710

Add simple example
2017-03-03 17:37:15 -05:00
Ilayaperumal Gopinathan
347cac75f2 Doc for non self-contained aggregate application
Resolves #818
2017-03-02 10:13:25 +00:00
Ilayaperumal Gopinathan
6d53625acd Doc for schema server REST endpoint /schema/format
Resolves #828
2017-02-23 12:07:51 +05:30
Marius Bogoevici
02fdd7c9dd Add Documentation for @StreamListener Dispatching
Fixes #820

Addressing PR comments
2017-02-21 12:13:52 -05:00
Martijn Haex
fe85d180b5 Fix typo for transforming a String message to uppercase. 2017-02-08 12:57:07 -05:00
Gary Russell
851d717349 GH-773: Doc Polishing
Resolves #773

Ctor Autowiring and missing end of note.
2017-02-03 09:36:43 -05:00
Ilayaperumal Gopinathan
e93a03f792 Update doc for PartitionKeyExtractorClass
- update info on how to access application context

This resolves #631

Update selector binding property doc
2017-01-23 14:18:38 -05:00
Gary Russell
2b66b661df Fix Incorrect Docs for consumer.maxAttempts
It is an absolute number of attempts, not the number of retries.
2017-01-21 17:43:07 -05:00
Marius Bogoevici
2abac42eba Update to Reactor 3.0.4
Fixes #751

- Use Reactor 3.0.4.RELEASE
- Remove Scheduler implementations that were introduced for fixes
- Shade `io.reactivex:rxjava-reactive-streams` classes to replace removed RxJava1 adapter support

Signed-off-by: Marius Bogoevici <mbogoevici@pivotal.io>
2017-01-05 15:52:09 -05:00
Marius Bogoevici
3d81411f93 Schema deletion additional changes
- fix typo
- Return METHOD_NOT_ALLOWED if schema deletion is disabled
- Tests dirty context to avoid cross-chatter

Signed-off-by: Marius Bogoevici <mbogoevici@pivotal.io>
2016-12-21 17:03:11 -05:00
Ilayaperumal Gopinathan
5d1cef2715 Add support for schema deletion
- Add REST endpoints for schema deletion
   - by subject, format, version
   - by subject
   - by id

 - Add tests

Resolves #716

Update doc
2016-12-21 17:03:02 -05:00
Ilayaperumal Gopinathan
46fa71d3a5 Add doc for aggregate application namespace prefix
This resolves #747
2016-12-20 19:59:09 +05:30
Marius Bogoevici
b3a0f2c2e1 Add support for defaults at binding level
Fixes #446

Supports properties prefixed with `spring.cloud.stream.default`
for specifying default values for large number of channels or
for dynamically generated channels.

Note: this does not cover binding specific properties,
as the property objects are created under binder's control
but the same technique can be applied there.

Rework default property binding

Minor: javadoc

Updated documentation
2016-12-12 09:30:42 +05:30
Toshiaki Maki
0ca7573cc5 Fix broken MessageConverter definition
Fix wrong argument in setSchemaLocation
2016-11-23 09:15:09 -05:00
Toshiaki Maki
a97c7b204e Fix wrong artifact 2016-11-22 01:57:21 +09:00
Marius Bogoevici
8595d094c9 Fix wrongly pasted line in doc 2016-11-18 10:59:31 -05:00
Vinicius Carvalho
18c894689c Fixes for MySQL and Postgresql
Renamed Table from Schema to SCHEMA_REPOSITORY to avoid potential reserved word clashes with some databases

Postgresql GH-696 requires transactional semantics even for reading operations when using Lob columns

Removed dependency to h2 database. A database driver is now explicitly required when running the server

Resolves #696 and #697
2016-11-18 10:50:02 -05:00