Skip to content

Commit

Permalink
Merge pull request #26541 from cescoffier/refactor-redis-packages
Browse files Browse the repository at this point in the history
Restructure the new Redis API to use the Quarkus convention
  • Loading branch information
gsmet authored Jul 4, 2022
2 parents ba93251 + 53ee25e commit 592c489
Show file tree
Hide file tree
Showing 204 changed files with 747 additions and 791 deletions.
16 changes: 8 additions & 8 deletions docs/src/main/asciidoc/redis-reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ With this dependency, you can then inject Redis clients or _datasource_ (high-le

[source,java]
----
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.RedisDataSource;
// ...
@Inject RedisAPI lowLevelClient;
Expand All @@ -70,15 +70,15 @@ You will generally use the latter, except if you need to manage connections your
- a _high-level_ reactive data source: A type-safe, high-level API to interact with Redis.
This API is fully reactive and asynchronous.
It exposes a Mutiny API.
It exposes the `io.quarkus.redis.datasource.api.ReactiveRedisDataSource` interface.
It exposes the `io.quarkus.redis.datasource.ReactiveRedisDataSource` interface.
- a _high-level_ imperative data source: A type-safe, high-level API to interact with Redis.
It is the imperative variant of the reactive data source.
It exposes the `io.quarkus.redis.datasource.api.RedisDataSource` interface.
It exposes the `io.quarkus.redis.datasource.RedisDataSource` interface.

To help you select the suitable API for you, here are some recommendations:

* If you are building an imperative (_classic_) Quarkus application integrating with Redis: use `io.quarkus.redis.datasource.api.RedisDataSource`.
* If you are building a reactive Quarkus application integrating with Redis: use `io.quarkus.redis.datasource.api.RedisReactiveDataSource`.
* If you are building an imperative (_classic_) Quarkus application integrating with Redis: use `io.quarkus.redis.datasource.RedisDataSource`.
* If you are building a reactive Quarkus application integrating with Redis: use `io.quarkus.redis.datasource.RedisReactiveDataSource`.
* If you need fine-grain control, or execute commands in a generic way: use `io.vertx.mutiny.redis.client.RedisAPI`
* If you have existing Vert.x code, use `io.vertx.redis.client.RedisAPI`
* If you need to emit custom commands, you can either use the data sources (reactive or imperative) or the `io.vertx.mutiny.redis.client.Redis`.
Expand Down Expand Up @@ -223,9 +223,9 @@ This API lets you execute Redis commands more conveniently and safely.

For each configured Redis client, two Redis data sources are exposed:

- `io.quarkus.redis.datasource.api.RedisDataSource` - an imperative (blocking) Redis data source.
- `io.quarkus.redis.datasource.RedisDataSource` - an imperative (blocking) Redis data source.
Each operation blocks until a response is received or a timeout is reached
- `io.quarkus.redis.datasource.api.ReactiveRedisDataSource` - a reactive Redis data source returning `Uni<X>` or `Multi<X>`.
- `io.quarkus.redis.datasource.ReactiveRedisDataSource` - a reactive Redis data source returning `Uni<X>` or `Multi<X>`.

If you configured the _default_ Redis client, you could inject the data sources using:

Expand Down Expand Up @@ -256,7 +256,7 @@ The default timeout is configured to 10s.
[NOTE]
.All about delegation
====
The blocking data source (`io.quarkus.redis.datasource.api.RedisDataSource`) is implemented on top of the reactive one (`io.quarkus.redis.datasource.api.ReactiveRedisDataSource`).
The blocking data source (`io.quarkus.redis.datasource.RedisDataSource`) is implemented on top of the reactive one (`io.quarkus.redis.datasource.ReactiveRedisDataSource`).
The `ReactiveRedisDataSource` is implemented on top of the `io.vertx.mutiny.redis.Redis` API.
====

Expand Down
15 changes: 6 additions & 9 deletions docs/src/main/asciidoc/redis.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -98,26 +98,23 @@ With this class, we'll be able to perform the `SET`, `GET` , `DEL`, `KEYS` and `

Create the `src/main/java/org/acme/redis/IncrementService.java` file, with the following content:

[source, java]
[source,java]
----
package org.acme.redis;
import java.util.Arrays;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import io.quarkus.redis.datasource.api.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.keys.KeyCommands;
import io.quarkus.redis.datasource.api.keys.ReactiveKeyCommands;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.keys.KeyCommands;
import io.quarkus.redis.datasource.keys.ReactiveKeyCommands;
import io.quarkus.redis.datasource.string.StringCommands;
import io.smallrye.mutiny.Uni;
@ApplicationScoped
public class IncrementService {
// This quickstart demonstrates both the imperative
// and reactive Redis data sources
// Regular applications will pick one of them.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import io.quarkus.devservices.common.ConfigureUtil;
import io.quarkus.devservices.common.ContainerLocator;
import io.quarkus.redis.client.deployment.RedisBuildTimeConfig.DevServiceConfiguration;
import io.quarkus.redis.client.runtime.config.RedisConfig;
import io.quarkus.redis.runtime.client.config.RedisConfig;
import io.quarkus.runtime.LaunchMode;
import io.quarkus.runtime.configuration.ConfigUtils;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.redis.client.deployment;

import static io.quarkus.redis.client.runtime.config.RedisConfig.DEFAULT_CLIENT_NAME;
import static io.quarkus.redis.runtime.client.config.RedisConfig.DEFAULT_CLIENT_NAME;

import java.util.ArrayList;
import java.util.Collection;
Expand Down Expand Up @@ -34,7 +34,7 @@
import io.quarkus.redis.client.RedisClientName;
import io.quarkus.redis.client.RedisHostsProvider;
import io.quarkus.redis.client.reactive.ReactiveRedisClient;
import io.quarkus.redis.client.runtime.RedisClientRecorder;
import io.quarkus.redis.runtime.client.RedisClientRecorder;
import io.quarkus.smallrye.health.deployment.spi.HealthBuildItem;
import io.quarkus.vertx.deployment.VertxBuildItem;
import io.vertx.redis.client.impl.types.BulkType;
Expand Down Expand Up @@ -164,7 +164,7 @@ static <T> SyntheticBeanBuildItem configureAndCreateSyntheticBean(String name,

@BuildStep
HealthBuildItem addHealthCheck(RedisBuildTimeConfig buildTimeConfig) {
return new HealthBuildItem("io.quarkus.redis.client.runtime.health.RedisHealthCheck",
return new HealthBuildItem("io.quarkus.redis.runtime.client.health.RedisHealthCheck",
buildTimeConfig.healthEnabled);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import static io.quarkus.redis.client.deployment.RedisClientProcessor.REDIS_CLIENT_ANNOTATION;
import static io.quarkus.redis.client.deployment.RedisClientProcessor.configureAndCreateSyntheticBean;
import static io.quarkus.redis.client.runtime.config.RedisConfig.DEFAULT_CLIENT_NAME;
import static io.quarkus.redis.runtime.client.config.RedisConfig.DEFAULT_CLIENT_NAME;

import java.util.Collection;
import java.util.HashSet;
Expand All @@ -22,9 +22,9 @@
import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
import io.quarkus.redis.client.runtime.RedisClientRecorder;
import io.quarkus.redis.datasource.api.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.runtime.client.RedisClientRecorder;
import io.quarkus.vertx.deployment.VertxBuildItem;

public class RedisDatasourceProcessor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

import io.quarkus.redis.client.RedisClientName;
import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.ReactiveRedisDataSource;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

import io.quarkus.redis.client.RedisClientName;
import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import javax.ws.rs.GET;
import javax.ws.rs.Path;

import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.string.StringCommands;

@Path("/inc")
public class IncrementResource {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.redis.client.deployment.RedisTestResource;
import io.quarkus.redis.datasource.api.RedisDataSource;
import io.quarkus.redis.datasource.api.pubsub.PubSubCommands;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.RedisDataSource;
import io.quarkus.redis.datasource.pubsub.PubSubCommands;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.runtime.Startup;
import io.quarkus.test.QuarkusUnitTest;
import io.quarkus.test.common.QuarkusTestResource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.List;

import io.quarkus.redis.datasource.RedisDataSource;
import io.vertx.redis.client.Response;

/**
Expand All @@ -13,7 +14,7 @@
* the <a href="https://redis.io/commands">Redis Commands Page</a>
*
* @deprecated Use {@link io.vertx.mutiny.redis.client.RedisAPI} or
* {@link io.quarkus.redis.datasource.api.RedisDataSource} instead.
* {@link RedisDataSource} instead.
*/
@Deprecated
public interface RedisClient {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package io.quarkus.redis.client.reactive;

import static io.quarkus.redis.client.runtime.VertxRedisClientFactory.DEFAULT_CLIENT;
import static io.quarkus.redis.runtime.client.VertxRedisClientFactory.DEFAULT_CLIENT;

import java.util.List;

import io.quarkus.redis.client.RedisClient;
import io.quarkus.redis.datasource.ReactiveRedisDataSource;
import io.smallrye.mutiny.Uni;
import io.vertx.mutiny.redis.client.Response;

Expand All @@ -15,7 +16,7 @@
* the <a href="https://redis.io/commands">Redis Commands Page</a>
*
* @deprecated Use {@link io.vertx.mutiny.redis.client.RedisAPI} or
* {@link io.quarkus.redis.datasource.api.ReactiveRedisDataSource} instead.
* {@link ReactiveRedisDataSource} instead.
*/
@Deprecated
public interface ReactiveRedisClient {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

public interface Cursor<T> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import io.smallrye.mutiny.Uni;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import java.util.function.Function;

import io.quarkus.redis.datasource.api.bitmap.ReactiveBitMapCommands;
import io.quarkus.redis.datasource.api.geo.ReactiveGeoCommands;
import io.quarkus.redis.datasource.api.hash.ReactiveHashCommands;
import io.quarkus.redis.datasource.api.hyperloglog.ReactiveHyperLogLogCommands;
import io.quarkus.redis.datasource.api.keys.ReactiveKeyCommands;
import io.quarkus.redis.datasource.api.list.ReactiveListCommands;
import io.quarkus.redis.datasource.api.pubsub.ReactivePubSubCommands;
import io.quarkus.redis.datasource.api.set.ReactiveSetCommands;
import io.quarkus.redis.datasource.api.sortedset.ReactiveSortedSetCommands;
import io.quarkus.redis.datasource.api.string.ReactiveStringCommands;
import io.quarkus.redis.datasource.api.transactions.ReactiveTransactionalRedisDataSource;
import io.quarkus.redis.datasource.api.transactions.TransactionResult;
import io.quarkus.redis.datasource.api.transactions.TransactionalRedisDataSource;
import io.quarkus.redis.datasource.bitmap.ReactiveBitMapCommands;
import io.quarkus.redis.datasource.geo.ReactiveGeoCommands;
import io.quarkus.redis.datasource.hash.ReactiveHashCommands;
import io.quarkus.redis.datasource.hyperloglog.ReactiveHyperLogLogCommands;
import io.quarkus.redis.datasource.keys.ReactiveKeyCommands;
import io.quarkus.redis.datasource.list.ReactiveListCommands;
import io.quarkus.redis.datasource.pubsub.ReactivePubSubCommands;
import io.quarkus.redis.datasource.set.ReactiveSetCommands;
import io.quarkus.redis.datasource.sortedset.ReactiveSortedSetCommands;
import io.quarkus.redis.datasource.string.ReactiveStringCommands;
import io.quarkus.redis.datasource.transactions.ReactiveTransactionalRedisDataSource;
import io.quarkus.redis.datasource.transactions.TransactionResult;
import io.quarkus.redis.datasource.transactions.TransactionalRedisDataSource;
import io.smallrye.mutiny.Uni;
import io.vertx.mutiny.redis.client.Command;
import io.vertx.mutiny.redis.client.Redis;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import java.util.Collections;
import java.util.List;

import io.quarkus.redis.datasource.api.codecs.Codec;
import io.quarkus.redis.datasource.codecs.Codec;

public interface RedisCommandExtraArguments {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import java.util.function.Consumer;

import io.quarkus.redis.datasource.api.bitmap.BitMapCommands;
import io.quarkus.redis.datasource.api.geo.GeoCommands;
import io.quarkus.redis.datasource.api.hash.HashCommands;
import io.quarkus.redis.datasource.api.hyperloglog.HyperLogLogCommands;
import io.quarkus.redis.datasource.api.keys.KeyCommands;
import io.quarkus.redis.datasource.api.list.ListCommands;
import io.quarkus.redis.datasource.api.pubsub.PubSubCommands;
import io.quarkus.redis.datasource.api.set.SetCommands;
import io.quarkus.redis.datasource.api.sortedset.SortedSetCommands;
import io.quarkus.redis.datasource.api.string.StringCommands;
import io.quarkus.redis.datasource.api.transactions.TransactionResult;
import io.quarkus.redis.datasource.api.transactions.TransactionalRedisDataSource;
import io.quarkus.redis.datasource.bitmap.BitMapCommands;
import io.quarkus.redis.datasource.geo.GeoCommands;
import io.quarkus.redis.datasource.hash.HashCommands;
import io.quarkus.redis.datasource.hyperloglog.HyperLogLogCommands;
import io.quarkus.redis.datasource.keys.KeyCommands;
import io.quarkus.redis.datasource.list.ListCommands;
import io.quarkus.redis.datasource.pubsub.PubSubCommands;
import io.quarkus.redis.datasource.set.SetCommands;
import io.quarkus.redis.datasource.sortedset.SortedSetCommands;
import io.quarkus.redis.datasource.string.StringCommands;
import io.quarkus.redis.datasource.transactions.TransactionResult;
import io.quarkus.redis.datasource.transactions.TransactionalRedisDataSource;
import io.vertx.mutiny.redis.client.Command;
import io.vertx.mutiny.redis.client.Response;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api;
package io.quarkus.redis.datasource;

import java.util.ArrayList;
import java.util.Collections;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.quarkus.redis.datasource.api.bitmap;
package io.quarkus.redis.datasource.bitmap;

import java.util.ArrayList;
import java.util.List;

import io.quarkus.redis.datasource.api.RedisCommandExtraArguments;
import io.quarkus.redis.datasource.RedisCommandExtraArguments;

public class BitFieldArgs implements RedisCommandExtraArguments {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api.bitmap;
package io.quarkus.redis.datasource.bitmap;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.quarkus.redis.datasource.api.bitmap;
package io.quarkus.redis.datasource.bitmap;

import java.util.List;

Expand Down
Loading

0 comments on commit 592c489

Please sign in to comment.