Bump spinach from 0.2 to 0.3 in /examples (#1032)
Bump spinach from 0.2 to 0.3 in /examples (#1032)

Bumps [spinach](https://github.com/mp911de/spinach) from 0.2 to 0.3.
<details>
<summary>Release notes</summary>

*Sourced from [spinach's releases](https://github.com/mp911de/spinach/releases).*

> ## 0.3
> ## SocketAddressSupplier API
> 
> The SocketAddressSupplier API allows to control the used
> connection points/SocketAddresses for initial connection and reconnection.
> The use case for controlling the source and sequence of
> connection points are failover and cluster node discovery.
> 
> The API exposes a factory for `SocketAddressSupplier`s which accepts
> a `RedisURI`. By default, multiple addresses are utilized in with RoundRobin.
> 
> The predefined methods can be found in the `SocketAddressSupplierFactory.Factories` enum:
> - `ROUND_ROBIN`: Cyclic use of multiple addresses specified by the `RedisURI`
> - `HELLO_CLUSTER`: Uses `ROUND_ROBIN` for the initial connect. Once a connection is
>   established the mechanism obtains the cluster nodes using the `HELLO`
>   command _AT STARTUP_. Periodical scheduling/updating is currently not implemented.
>   This can be however achieved by implementing an own factory
>   that calls the `reloadNodes()` method periodically/on demand.
> 
> New mechanisms can be implemented by implementing the
> `SocketAddressSupplier`/`SocketAddressSupplierFactory` interfaces.
> 
> Submit your mechanism by opening a Pull-Request if you want to contribute to spinach.
> 
> ```
> DisqueClient client = new DisqueClient();
> 
> DisqueConnection<String, String> connection = client.connect(new Utf8StringCodec(), disqueURI,
>                 SocketAddressSupplierFactory.Factories.ROUND_ROBIN);
> 
> 
> DisqueConnection<String, String> connection = client.connect(new Utf8StringCodec(), disqueURI,
>                 SocketAddressSupplierFactory.Factories.HELLO_CLUSTER);
> ```
> 
> ## QueueListener API
> 
> Spinach allows a push pattern to obtain jobs from Disque. The QueueListener API
> introduces a listener/notification style by utilizing rx-java Observables.
> The QueueListener API exposes an `Observable<Job>` that emits jobs.
> The jobs can be processed asynchronously by applying transformations
> or `doOnNext` steps. Each `Observable<Job>` allocates at the time
> of subscription resources. The resources are released when unsubscribing
> from the subscription.
> 
> ```
> QueueListenerFactory<String, String> queueListenerFactory = QueueListenerFactory.create(disqueURI,
>             new Utf8StringCodec(), "queue");  // 1
> 
> Observable<Job<String, String>> getjobs = queueListenerFactory.getjobs(); // 2
></table> ... (truncated)
</details>
<details>
<summary>Changelog</summary>

*Sourced from [spinach's changelog](https://github.com/mp911de/spinach/blob/master/RELEASE-NOTES.md).*

>               spinach 0.3 RELEASE NOTES
> 
> 
> SocketAddressSupplier API
> -------------------------
> 
> The SocketAddressSupplier API allows to control the used
> connection points/SocketAddresses for initial connection and reconnection.
> The use case for controlling the source and sequence of
> connection points are failover and cluster node discovery.
> 
> The API exposes a factory for `SocketAddressSupplier`s which accepts
> a `RedisURI`. By default, multiple addresses are utilized in with RoundRobin.
> 
> The predefined methods can be found in the `SocketAddressSupplierFactory.Factories` enum:
> 
> * `ROUND_ROBIN`: Cyclic use of multiple addresses specified by the `RedisURI`
> * `HELLO_CLUSTER`: Uses `ROUND_ROBIN` for the initial connect. Once a connection is
>    established the mechanism obtains the cluster nodes using the `HELLO`
>    command *AT STARTUP*. Periodical scheduling/updating is currently not implemented.
>    This can be however achieved by implementing an own factory
>    that calls the `reloadNodes()` method periodically/on demand.
> 
> New mechanisms can be implemented by implementing the
> `SocketAddressSupplier`/`SocketAddressSupplierFactory` interfaces.
> 
> Submit your mechanism by opening a Pull-Request if you want to contribute to spinach.
> 
> 
> ```
> DisqueClient client = new DisqueClient();
> 
> DisqueConnection<String, String> connection = client.connect(new Utf8StringCodec(), disqueURI,
>                 SocketAddressSupplierFactory.Factories.ROUND_ROBIN);
> 
> 
> DisqueConnection<String, String> connection = client.connect(new Utf8StringCodec(), disqueURI,
>                 SocketAddressSupplierFactory.Factories.HELLO_CLUSTER);
> ```
> 
> QueueListener API
> -----------------
> 
> Spinach allows a push pattern to obtain jobs from Disque. The QueueListener API
> introduces a listener/notification style by utilizing rx-java Observables.
> The QueueListener API exposes an `Observable<Job>` that emits jobs.
> The jobs can be processed asynchronously by applying transformations
> or `doOnNext` steps. Each `Observable<Job>` allocates at the time
> of subscription resources. The resources are released when unsubscribing
> from the subscription.
></table> ... (truncated)
</details>
<details>
<summary>Commits</summary>

- [`0b02fbc`](https://github.com/mp911de/spinach/commit/0b02fbcd3688b9b857906fde22da2a76972657ed) [maven-release-plugin] prepare release 0.3
- [`1608d33`](https://github.com/mp911de/spinach/commit/1608d33351200c038d6a11a9aca3ccfa6c7313c4) Improve test stability
- [`af07f39`](https://github.com/mp911de/spinach/commit/af07f3960a6bc79c2626a0086a43917c88392774) Fix site name and copies
- [`f3467b7`](https://github.com/mp911de/spinach/commit/f3467b7844c97b8f899e5418a41971a486f507f8) Prepare release
- [`e61d5cb`](https://github.com/mp911de/spinach/commit/e61d5cbb1dee677bdcc71a9d32f9e3d9d808e561) Upgrade netty to 4.0.34.Final, use lettuce 3.4.1 release instead of snapshot
- [`da1a9eb`](https://github.com/mp911de/spinach/commit/da1a9eb98fc503d2b6e15287503cc665ece36f3e) Update release notes
- [`0574f58`](https://github.com/mp911de/spinach/commit/0574f58da88616aeab5f6d71a82548791bc9ff8f) Add factory methods and client resources, upgrade to lettuce 3.4
- [`cee5bdb`](https://github.com/mp911de/spinach/commit/cee5bdb871264d4d72dcf85d5b8c9f21e1cf9e2b) Fix addjob documentation about timeout/TTL [#21](https://github-redirect.dependabot.com/mp911de/spinach/issues/21)
- [`e0932b8`](https://github.com/mp911de/spinach/commit/e0932b86049b68915065715405a3f3ecca52d86f) Polishing
- [`80542ad`](https://github.com/mp911de/spinach/commit/80542ad5c3f5cb0591f8233fa77f236c6cf86138) Implement QSTAT command [#20](https://github-redirect.dependabot.com/mp911de/spinach/issues/20)
- Additional commits viewable in [compare view](https://github.com/mp911de/spinach/compare/0.2...0.3)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=biz.paluch.redis:spinach&package-manager=maven&previous-version=0.2&new-version=0.3)](https://dependabot.com/compatibility-score.html?dependency-name=biz.paluch.redis:spinach&package-manager=maven&previous-version=0.2&new-version=0.3)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
rnorth/test-containers,testcontainers/testcontainers-java,testcontainers/testcontainers-java,outofcoffee/testcontainers-java,outofcoffee/testcontainers-java,rnorth/test-containers,outofcoffee/testcontainers-java,testcontainers/testcontainers-java,rnorth/test-containers