Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion mkdocs/docs/en/changelog/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ hide:
- navigation
---

## 1.2.6
## 1.2.7

Added:

- Allow `CompletableFuture<RecordMetadata>` and `Deferred<RecordMetadata>` results in `@KafkaPublisher` in Kotlin

### 1.2.6

Fixed:

Expand Down
67 changes: 31 additions & 36 deletions mkdocs/docs/en/documentation/kafka.md
Original file line number Diff line number Diff line change
Expand Up @@ -674,7 +674,7 @@ in order to send messages to any topic it is supposed to create a method with th
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {
void send(ProducerRecord<String, String> record);
}
Expand All @@ -683,7 +683,7 @@ in order to send messages to any topic it is supposed to create a method with th
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {
fun send(record: ProducerRecord<String, String>)
}
Expand All @@ -699,7 +699,7 @@ to create such contracts:
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand All @@ -710,7 +710,7 @@ to create such contracts:
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand Down Expand Up @@ -819,7 +819,7 @@ Allows `value` and `key` (optional) and `headers` (optional) to be sent from `Pr
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand All @@ -830,7 +830,7 @@ Allows `value` and `key` (optional) and `headers` (optional) to be sent from `Pr
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand All @@ -842,50 +842,45 @@ Can be received as the result of a `RecordMetadata` operation:

===! ":fontawesome-brands-java: `Java`"

Can be also obtained as the result of a `Future<RecordMetadata>` or `CompletionStage<RecordMetadata>` operation:

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
RecordMetadata send(String value);

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Future<RecordMetadata> send(String value);

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
CompletionStage<RecordMetadata> sendStage(V value);
}
```

=== ":simple-kotlin: `Kotlin`"

Can be also obtained as the result of a `suspend` or `Future<RecordMetadata>` or `CompletionStage<RecordMetadata>` or `Deferred<RecordMetadata>` operation:

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): RecordMetadata
}
```

Can be obtained as the result of a `Future<RecordMetadata>` or `CompletionStage<RecordMetadata>` operation:

===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Future<RecordMetadata> send(String value);
suspend fun sendSuspend(value: V): RecordMetadata

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
CompletionStage<RecordMetadata> sendStage(V value);
}
```

=== ":simple-kotlin: `Kotlin`"
fun send(value: String): Future<RecordMetadata>

```kotlin
@@KafkaPublisher("kafka.someProducer")
interface MyPublisher {
@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): CompletionStage<RecordMetadata>

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): Future<RecordMetadata>
fun send(value: String): Deferred<RecordMetadata>
}
```

Expand All @@ -894,7 +889,7 @@ It is possible to send `ProducerRecord` with or without `Callback` and combine t
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

void send(ProducerRecord<String, String> record, Callback callback);
Expand All @@ -904,7 +899,7 @@ It is possible to send `ProducerRecord` with or without `Callback` and combine t
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {

fun send(record: ProducerRecord<String, String>, callback: Callback)
Expand All @@ -919,7 +914,7 @@ Tags should be set on `ProducerRecord` or `key`/`value` parameters of methods:
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyKafkaProducer {

void send(ProducerRecord<@Tag(MyTag1.class) String, @Tag(MyTag2.class) String> record);
Expand All @@ -932,7 +927,7 @@ Tags should be set on `ProducerRecord` or `key`/`value` parameters of methods:
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyKafkaProducer {

fun send(record: ProducerRecord<@Tag(MyTag1::class) String, @Tag(MyTag2::class) String>)
Expand All @@ -947,7 +942,7 @@ If you want to serialize as Json, you should use `@Json` annotation:
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyKafkaProducer {

@Json
Expand All @@ -963,7 +958,7 @@ If you want to serialize as Json, you should use `@Json` annotation:
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyKafkaProducer {

@Json
Expand Down Expand Up @@ -996,7 +991,7 @@ It is required to first create a regular `KafkaProducer` and then use it to crea
===! ":fontawesome-brands-java: `Java`"

```java
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
public interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand All @@ -1012,7 +1007,7 @@ It is required to first create a regular `KafkaProducer` and then use it to crea
=== ":simple-kotlin: `Kotlin`"

```kotlin
@@KafkaPublisher("kafka.someProducer")
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
Expand Down
8 changes: 7 additions & 1 deletion mkdocs/docs/ru/changelog/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ hide:
- navigation
---

## 1.2.6
## 1.2.7

Добавлено:

- Добавлена поддержка `CompletableFuture<RecordMetadata>` и `Deferred<RecordMetadata>` возвращаемых значений в `@KafkaPublisher` для Kotlin

### 1.2.6

Исправлено:

Expand Down
12 changes: 11 additions & 1 deletion mkdocs/docs/ru/documentation/kafka.md
Original file line number Diff line number Diff line change
Expand Up @@ -1151,7 +1151,8 @@ public interface BaseKafkaRecordsHandler<K, V> {

=== ":simple-kotlin: `Kotlin`"

Можно получать как результат операции `RecordMetadata` либо иметь модификатор `suspend`:
Можно получать как результат операции `RecordMetadata` либо иметь модификатор `suspend` либо `Future<RecordMetadata>` либо `CompletionStage<RecordMetadata>` либо `Deferred<RecordMetadata>`:

```kotlin
@KafkaPublisher("kafka.someProducer")
interface MyPublisher {
Expand All @@ -1161,6 +1162,15 @@ public interface BaseKafkaRecordsHandler<K, V> {

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
suspend fun sendSuspend(value: V): RecordMetadata

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): Future<RecordMetadata>

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): CompletionStage<RecordMetadata>

@KafkaPublisher.Topic("kafka.someProducer.someTopic")
fun send(value: String): Deferred<RecordMetadata>
}
```

Expand Down