157 Commits

Author SHA1 Message Date
Artem Bilan
8792bb3dfb Fix URL to SI Idempotent Receiver 2019-03-26 12:31:20 -04:00
Spring Operator
6568be701a URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://bugs.sun.com/view_bug.do?bug_id=6682380 (302) with 1 occurrences migrated to:
  https://bugs.java.com/view_bug.do?bug_id=6682380 ([https](https://bugs.sun.com/view_bug.do?bug_id=6682380) result SSLHandshakeException).
* [ ] http://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html ([https](https://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css with 1 occurrences migrated to:
  https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css ([https](https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css) result 200).
* [ ] http://docs.spring.io/spring-kafka/docs/current/reference/html/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-kafka/docs/current/reference/html/ ([https](https://docs.spring.io/spring-kafka/docs/current/reference/html/) result 200).
* [ ] http://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 with 1 occurrences migrated to:
  https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 ([https](https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700) result 200).
* [ ] http://projects.spring.io/spring-kafka/ with 3 occurrences migrated to:
  https://projects.spring.io/spring-kafka/ ([https](https://projects.spring.io/spring-kafka/) result 200).
* [ ] http://stackoverflow.com/questions/134882/undoing-a-git-rebase with 1 occurrences migrated to:
  https://stackoverflow.com/questions/134882/undoing-a-git-rebase ([https](https://stackoverflow.com/questions/134882/undoing-a-git-rebase) result 200).
* [ ] http://stackoverflow.com/questions/tagged/spring-kafka with 1 occurrences migrated to:
  https://stackoverflow.com/questions/tagged/spring-kafka ([https](https://stackoverflow.com/questions/tagged/spring-kafka) result 200).
* [ ] http://www.enterpriseintegrationpatterns.com/patterns/messaging/IdempotentReceiver.html with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/patterns/messaging/IdempotentReceiver.html ([https](https://www.enterpriseintegrationpatterns.com/patterns/messaging/IdempotentReceiver.html) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://static.springsource.org/spring-kafka/reference (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-kafka/reference ([https](https://static.springsource.org/spring-kafka/reference) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) result 301).
* [ ] http://help.github.com/fork-a-repo/ with 1 occurrences migrated to:
  https://help.github.com/fork-a-repo/ ([https](https://help.github.com/fork-a-repo/) result 301).
* [ ] http://help.github.com/forking/ with 1 occurrences migrated to:
  https://help.github.com/forking/ ([https](https://help.github.com/forking/) result 301).
* [ ] http://www.springsource.com with 2 occurrences migrated to:
  https://www.springsource.com ([https](https://www.springsource.com) result 301).
* [ ] http://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project with 1 occurrences migrated to:
  https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project ([https](https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project) result 302).
* [ ] http://git-scm.com/book/en/Git-Branching-Rebasing with 2 occurrences migrated to:
  https://git-scm.com/book/en/Git-Branching-Rebasing ([https](https://git-scm.com/book/en/Git-Branching-Rebasing) result 302).
* [ ] http://www.springsource.org/node/feed with 1 occurrences migrated to:
  https://www.springsource.org/node/feed ([https](https://www.springsource.org/node/feed) result 302).
2019-03-26 12:30:31 -04:00
Spring Operator
8e72b709b6 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://www.puppycrawl.com/dtds/configuration_1_2.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/configuration_1_2.dtd ([https](https://www.puppycrawl.com/dtds/configuration_1_2.dtd) result 404).
* [ ] http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd) result 404).
2019-03-26 12:08:27 -04:00
Spring Operator
f8ade49443 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 191 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-21 18:59:33 -04:00
Gary Russell
167a029b3f Add gateway links in SIK chapter 2019-03-20 13:31:27 -04:00
Gary Russell
e8cafc1784 GH-847: Support placeholders in @SendTo
Resolves https://github.com/spring-projects/spring-kafka/issues/847

**cherry-pick to 2.1.x**

# Conflicts:
#	spring-kafka/src/main/java/org/springframework/kafka/config/MethodKafkaListenerEndpoint.java
2018-11-01 16:18:13 -04:00
Eduardo Pinto
f32a1b8002 GH-840: Fix typos in documentation of Filtering Messages and Retrying Deliveries
Fixes GH-840 (https://github.com/spring-projects/spring-kafka/issues/840)

* remove reference to FilteringAcknowledgingMessageListenerAdapter
* remove reference to RetryingAcknowledgingMessageListenerAdapter
2018-10-29 10:13:56 -04:00
Artem Yakshin
aa400fa4b8 Doc polishing, remove connectionFactory
(cherry picked from commit 2502a8fe1c)
2018-10-18 14:52:29 -04:00
Gary Russell
950a9998ee GH-800: Fix Zombie Fencing
Resolves https://github.com/spring-projects/spring-kafka/issues/800

Fix assignment of `transactional.id` to be consistent across consumers.

**cherry-pick to all versions >= 1.3.x**

# Conflicts:
#	spring-kafka/src/main/java/org/springframework/kafka/core/DefaultKafkaProducerFactory.java
#	spring-kafka/src/main/java/org/springframework/kafka/listener/KafkaMessageListenerContainer.java
#	spring-kafka/src/test/java/org/springframework/kafka/listener/TransactionalContainerTests.java
#	src/reference/asciidoc/whats-new.adoc
2018-09-07 16:54:46 -04:00
Gary Russell
db84b14e32 Doc: Partition Assignment
See: https://stackoverflow.com/questions/52077027/kafkalistener-concurrency-multiple-topics/52078148#52078148

**cherry-pick to 2.1.x, 1.3.x**

(cherry picked from commit 9f828a8557)
2018-08-29 11:03:55 -04:00
Gary Russell
ddd4b46071 GH-780: Fix typo 2018-08-18 10:07:45 -04:00
Gary Russell
b9916eee37 GH-780: More 2.0.0 Doc Polishing 2018-08-18 09:44:32 -04:00
Gary Russell
564ffc2856 GH-780: Docs for using the 2.0.0 clients
Resolves https://github.com/spring-projects/spring-kafka/issues/780
2018-08-18 09:28:31 -04:00
Gary Russell
a56469bef5 GH-716: Null Payload Doc Improvements
Fixes https://github.com/spring-projects/spring-kafka/issues/716

Improve documentation - `null` is not necessarily just for tombstone records.

(cherry picked from commit 9ac47f6)
2018-06-26 12:27:28 -04:00
Gary Russell
c731e617da Add licence and notice to all artifacts
**cherry-pick to 2.1.x, 2.0.x, 1.3.x**
2018-06-08 15:21:51 -04:00
Gary Russell
45223425ac GH-693: Add BytesJsonMessageConverter
Resolves https://github.com/spring-projects/spring-kafka/issues/693

**cherry-pick to 2.1.x**
2018-05-30 15:22:51 -04:00
Gary Russell
92c77b329f GH-666: KafkaEmbedded doWithAdmin, addTopics
Resolves https://github.com/spring-projects/spring-kafka/issues/666

Allow arbitrary `AdminClient` operations and adding topics.

Polishing - PR Comments
2018-05-07 11:08:12 -04:00
Gary Russell
dbfa27296a Doc polishing
Fix override for 1.1.0 - scala jars should be in test scope.
2018-05-01 16:21:14 -04:00
Gary Russell
9612e88e49 GH-656: Fix seek on rollback
Fixes https://github.com/spring-projects/spring-kafka/issues/656
Fixes https://github.com/spring-projects/spring-kafka/issues/657

Previously, after a rollback, we only performed a `seek` on the failed record.
We need to seek for all unprocessed records.

Also, when no error handler was provided, and using a batch listener, the
offsets were added to `acks` and incorrectly committed. (#657).

Also, if a `ContainerAwareErrorHandler` "handles" the error, the offsets weren't
committed.

Enhance the tests to verify full seeks.
Add a new test to verify the batch listener doesn't commit after a roll back.

**cherry-pick to 2.1.x, 2.0.x** I will backport to 1.3.x after review.

* Some simple polishing

# Conflicts:
#	spring-kafka/src/main/java/org/springframework/kafka/config/AbstractKafkaListenerContainerFactory.java
#	spring-kafka/src/test/java/org/springframework/kafka/listener/TransactionalContainerTests.java
#	src/reference/asciidoc/whats-new.adoc
2018-04-19 14:25:52 -04:00
Gary Russell
1f3d7cdb3f GH-652: JsonSerializer add null check for Headers
Fixes: https://github.com/spring-projects/spring-kafka/issues/652

Kafka Streams `ChangedSerializer` calls the `Serde` with `null` in `headers`.

**cherry-pick to 2.1.x, 2.0.x, 1.3.x**

(cherry picked from commit ad28b91)
2018-04-18 10:33:26 -04:00
Gary Russell
3706405ee9 GH-634: 1.1.0 Client compatibility
* GH-634: 1.1.0 Client compatibility

Fixes https://github.com/spring-projects/spring-kafka/issues/634

* Revert version

* Fix version check

* Add docs

* Polishing - PR Comments
2018-04-02 16:23:53 -04:00
Nurettin Yilmaz
e77e1efbc5 GH-621: Add KafkaStreams customizer
Fixes spring-projects/spring-kafka#621

Refactor;
- Revert configurer
- Add setters to `StreamsBuilderFactoryBean`
- Create `CompositeKafkaStreamsCustomizer`

Polish, update docs.

* Polishing code style, Docs and Java Docs
2018-04-02 16:06:23 -04:00
Artem Yakshin
202f73cfa4 Change log-compaction url 2018-04-02 09:09:31 -04:00
Gary Russell
be689a3e4a GH-609: Pause/resume polishing; events
Resolves https://github.com/spring-projects/spring-kafka/issues/609

- Provide visibility to the container pause state
- Add pause/resume events

* Polishing - PR Comments

* Checkstyle
2018-03-21 13:43:49 -04:00
Gary Russell
522f6b482d GH-601: @KafkaListener: Support List<Message<Foo>>
Resolves https://github.com/spring-projects/spring-kafka/issues/601
2018-03-16 20:55:32 -04:00
qct
17e255d759 Deprecate JsonDeserializer.DEFAULT_VALUE_TYPE
* rename constant `DEFAULT_VALUE_TYPE` from `spring.json.default.value.type` to `spring.json.value.default.type`

* mark `DEFAULT_KEY_TYPE` and `DEFAULT_VALUE_TYPE` deprecated, introduce a new pair of `KEY_DEFAULT_TYPE` and `VALUE_DEFAULT_TYPE`

* fix javadoc problem, modify `kafka.adoc`

*  use `spring.json.default.value.type` literal instead of constant `DEFAULT_VALUE_TYPE`
2018-03-15 14:46:06 -04:00
Gary Russell
15400928ff SIKGH-198: Add pause/resume to Listener Containers
See: https://github.com/spring-projects/spring-integration-kafka/issues/198
2018-02-21 17:34:15 -05:00
Gary Russell
60f92c87fc Add ChainedKafkaTransactionManager
Enable transaction synchronization without the need for user code to
send the offset(s) to the transaction.
2018-02-20 17:53:29 -05:00
Gary Russell
b25e1441bd GH-563: Add default @KafkaHandler
Resolves https://github.com/spring-projects/spring-kafka/issues/563

Invoke a default handler if no match on payload.

Basically a copy of similar code in Spring AMQP.
2018-02-20 17:32:26 -05:00
Gary Russell
371611191f GH-568: S-I-K Gateways Documentation
Resolves https://github.com/spring-projects/spring-kafka/issues/568

Also fix some PDF overflows.
2018-02-13 14:20:02 -05:00
Zach Olauson
94d4fce893 GH-555: Resolve PPs in EmbeddedKafka topics
Fixes https://github.com/spring-projects/spring-kafka/issues/555

* Update `EmbeddedKafkaContextCustomizer` to resolve property placeholders
* Update `KafkaStreamsTests` to use topic from property
* Add property resolving details to `EmbeddedKafka` javadoc and testing.adoc

* Simple polishing
2018-02-05 11:31:21 -05:00
Gary Russell
5adf2d1224 Add KafkaTemplate Request/Reply support
- Add `AsyncKafkaTemplate` with `sendAndReceive()`
- In `@KafkaListener`, echo the `correlationId` header

* Polishing

- increase timeout on good test
- add exception to future on timeout

* Polishing - allow `@SendTo` expression to return `byte[]`.

* More Polishing - add standard REPLY_TOPIC header and optional REPLY_PARTITION header.

* Improve test - wait for reply container assignment.

When documenting this, we should recommend that users don't start sending
until the reply partitions are assigned.

* Polishing; docs; rename to `ReplyingKafkaTemplate` - Async was misleading since KT is also Async

* Polishing - PR Comments

* Polishing - PR Comments and add `SimpleKafkaHeaderMapper`

* Fix package tangle - move new template to its own package.

* Use binary for REPLY_PARTITION header.

* Polishing - PR comments.

* Rebase and final polishing
2018-02-02 14:08:20 -05:00
Gary Russell
0d09e8db6d Support stateful retry
* Polishing - we don't need to keep RetryStates in a map - in this context it is just
a holder for the message key.
Also PR comments.

* Doc Polishing.
2018-02-02 10:20:08 -05:00
Gary Russell
b1781766d2 GH-537: Configurable log level for offset commits
Resolves https://github.com/spring-projects/spring-kafka/issues/537

Use a `Supplier` to avoid early string concatenation.

Docs

Polishing
2018-01-29 13:09:39 -05:00
pszymczyk
63b2bcb018 Configurable KafkaStreams cleanup execution
542 few minor fixes

Docs, Javadocs
2018-01-29 10:48:19 -05:00
Gary Russell
2526509e86 Doc Copyright to 2018 2018-01-28 14:17:55 -05:00
Gary Russell
cbf67621d7 Doc Fix 2018-01-17 17:51:27 -05:00
Gary Russell
eb4eca22c0 Support local bean reference in @KafkaListener
In the `@KafkaListener` bean post processor, allow property SpEL expressions to
access properties and methods on the bean being post-processed.

* Polishing - change the token to `__listener`.
2018-01-17 17:47:32 -05:00
bistros
f7cabcafb4 Fix KafkaEmbedded sample in Docs 2018-01-10 10:25:01 -05:00
Dimitri Penner
51c84c4b82 GH-527: @KafkaListener: populate converter beans
Fixes https://github.com/spring-projects/spring-kafka/issues/527

* Add test

* Changed listener factory creation order

* Add client id to manualConsumerFactory call

* Refactor to add Converter beans to DefaultFormattingConversionService

* Move addFormatters to afterSingletonsInstantiated

* Add documentation

* Improve documentation
2018-01-05 09:44:53 -05:00
Gary Russell
2f61ebf5b2 Add an option to log container properties
https://stackoverflow.com/questions/47914528/how-to-print-spring-kafka-configurations-in-logs-using-log4j/47914975#comment82800055_47914975

* Polishing - PR Comments
2017-12-21 13:36:05 -05:00
Gary Russell
a39780cae3 GH-518: Add clientIdPrefix to @KafkaListener
Resolves https://github.com/spring-projects/spring-kafka/issues/518

* Polishing - PR Comments
2017-12-20 13:03:53 -05:00
Johnny Lim
185e982ef9 Polish 2017-12-13 10:05:53 -08:00
Gary Russell
cf7304e729 Doc: Remove Duplicate What's New Entry 2017-12-04 12:17:28 -08:00
Gary Russell
a7f4a8999e Doc Fix (Appendix)
Typo and missing blank line.
2017-12-04 08:59:53 -08:00
Gary Russell
a38717acc2 Add link to migration guide to what's new 2017-12-01 11:46:30 -05:00
Artem Bilan
daa4a896ac Fix si-kafka.adoc for the actual dependencies 2017-11-30 16:24:23 -05:00
Artem Bilan
4c1a8ef5d5 GH-479: Update Kafka Streams API and Docs
Fixes: spring-projects/spring-kafka#479
2017-11-30 14:13:26 -05:00
Gary Russell
d2ce4aba1e GH-451: Add Container Stopping Error Handlers
Resolves https://github.com/spring-projects/spring-kafka/issues/451

Add error handlers that stop the container.

Polishing

Polishing - Fix SeekToCurrent Error Handers

These also have to throw an exception to force a rollback if transactions are enabled.

In doing so, I found a bug when using transactions with AckMode.RECORD.

Parts of this commit will need to be back ported.
2017-11-30 12:24:34 -05:00
Gary Russell
7cd53119d3 GH-492: JSON Improvements
Resolves https://github.com/spring-projects/spring-kafka/issues/492

For `StringJsonMessageConverter` and `JsonSerializer`

- Convey type information in Headers using a Jackson type mapper
- Setting `addTypeInfo` to `false` disables this feature

For `StringJsonMessageConverter` (inbound)

- If configured with with the default type mapper, no changes - use the inferred type from the method signature
- If configured with a type mapper where the `TypePrecedence` is not `INFERRED`, use the headers if available.

For `JsonDeserializer`

- use type information from headers, falling back to a default if present

For `JsonSerializer` and `JsonDeserializer`

- provide configuration (e.g. default type) via kafka properties

Polishing - @since

* Fix `DefaultJackson2JavaTypeMapper` JavaDoc do not mention Spring AMQP
2017-11-29 14:00:03 -05:00