Skip to content

Commit 244ad73

Browse files
committed
Add Java examples to stream filtering page
1 parent ec2b37c commit 244ad73

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

docs/stream-filtering.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,21 @@ The following example causes RabbitMQ to deliver only messages for which **all**
455455
* the application property key `region` is `emea`
456456

457457
<Tabs groupId="languages">
458+
<TabItem value="java" label="Java">
459+
```java
460+
Consumer consumer = connection.consumerBuilder()
461+
.stream().filter()
462+
.userId("John".getBytes(UTF_8))
463+
.subject("&p:Order")
464+
.property("region", "emea")
465+
.stream().builder()
466+
.queue("my-queue")
467+
.messageHandler((ctx, msg ) -> {
468+
// message processing
469+
})
470+
.build();
471+
```
472+
</TabItem>
458473

459474
<TabItem value="Erlang" label="Erlang">
460475
```erlang
@@ -694,6 +709,22 @@ The following example causes RabbitMQ to deliver only messages for which **all**
694709
* the application provided key `region` is `emea`
695710

696711
<Tabs groupId="languages">
712+
<TabItem value="Java" label="Java">
713+
```java
714+
Consumer consumer = connection.consumerBuilder()
715+
.stream().filter()
716+
.sql("properties.user_id = 'John' AND " +
717+
"properties.subject LIKE 'Order%' AND " +
718+
"region = 'emea'")
719+
.stream().builder()
720+
.queue("my-queue")
721+
.messageHandler((ctx, msg ) -> {
722+
// message processing
723+
})
724+
.build();
725+
```
726+
</TabItem>
727+
697728

698729
<TabItem value="Erlang" label="Erlang">
699730
```erlang
@@ -776,6 +807,27 @@ The following example provides a complex SQL filter expression that queries even
776807
* the order must be of high priority or high price or be submitted by a premium customer
777808

778809
<Tabs groupId="languages">
810+
<TabItem value="Java" label="Java">
811+
```java
812+
Consumer consumer = connection.consumerBuilder()
813+
.stream()
814+
// This Bloom filter will be evaluated server-side per chunk (Stage 1).
815+
.filterValues("order.created")
816+
.filter()
817+
// This complex SQL filter expression will be evaluted server-side
818+
// per message at stage 2.
819+
.sql("p.subject = 'order.created' AND " +
820+
"p.creation_time > UTC() - 3600000 AND " +
821+
"region IN ('AMER', 'EMEA', 'APJ') AND " +
822+
"(h.priority > 4 OR price >= 99.99 OR premium_customer = TRUE)")
823+
.stream().builder()
824+
.queue("my-queue")
825+
.messageHandler((ctx, msg ) -> {
826+
// message processing
827+
})
828+
.build();
829+
```
830+
</TabItem>
779831

780832
<TabItem value="Erlang" label="Erlang">
781833
```erlang

0 commit comments

Comments
 (0)