Fix invalid Javadoc references.

See #2175
This commit is contained in:
Mark Paluch
2021-09-27 10:02:08 +02:00
parent 5166950b2b
commit 54feba95a9
87 changed files with 164 additions and 212 deletions

View File

@@ -44,7 +44,7 @@ public abstract class BatchStrategies {
* A {@link BatchStrategy} using a single {@code KEYS} and {@code DEL} command to remove all matching keys.
* {@code KEYS} scans the entire keyspace of the Redis database and can block the Redis worker thread for a long time
* on large keyspaces.
* <p/>
* <p>
* {@code KEYS} is supported for standalone and clustered (sharded) Redis operation modes.
*
* @return batching strategy using {@code KEYS}.
@@ -56,7 +56,7 @@ public abstract class BatchStrategies {
/**
* A {@link BatchStrategy} using a {@code SCAN} cursors and potentially multiple {@code DEL} commands to remove all
* matching keys. This strategy allows a configurable batch size to optimize for scan batching.
* <p/>
* <p>
* Note that using the {@code SCAN} strategy might be not supported on all drivers and Redis operation modes.
*
* @return batching strategy using {@code SCAN}.

View File

@@ -19,9 +19,9 @@ import org.springframework.data.redis.connection.RedisConnection;
/**
* A {@link BatchStrategy} to be used with {@link RedisCacheWriter}.
* <p/>
* <p>
* Mainly used to clear the cache.
* <p/>
* <p>
* Predefined strategies using the {@link BatchStrategies#keys() KEYS} or {@link BatchStrategies#scan(int) SCAN}
* commands can be found in {@link BatchStrategies}.
*

View File

@@ -39,7 +39,7 @@ import org.springframework.util.ReflectionUtils;
/**
* {@link org.springframework.cache.Cache} implementation using for Redis as underlying store.
* <p/>
* <p>
* Use {@link RedisCacheManager} to create {@link RedisCache} instances.
*
* @author Christoph Strobl

View File

@@ -362,6 +362,7 @@ public class RedisCacheConfiguration {
* <ul>
* <li>{@link String} to {@link byte byte[]} using UTF-8 encoding.</li>
* <li>{@link SimpleKey} to {@link String}</li>
* </ul>
*
* @param registry must not be {@literal null}.
*/

View File

@@ -32,10 +32,10 @@ import org.springframework.util.Assert;
/**
* {@link org.springframework.cache.CacheManager} backed by a {@link RedisCache Redis} cache.
* <p />
* <p>
* This cache manager creates caches by default upon first write. Empty caches are not visible on Redis due to how Redis
* represents empty data structures.
* <p />
* <p>
* Caches requiring a different {@link RedisCacheConfiguration} than the default configuration can be specified via
* {@link RedisCacheManagerBuilder#withInitialCacheConfigurations(Map)}.
*
@@ -170,7 +170,7 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
* <dt>locking</dt>
* <dd>disabled</dd>
* <dt>batch strategy</dt>
* <dd>{@link BatchStrategy#keys() KEYS}</dd>
* <dd>{@link BatchStrategies#keys()}</dd>
* <dt>cache configuration</dt>
* <dd>{@link RedisCacheConfiguration#defaultCacheConfig()}</dd>
* <dt>initial caches</dt>
@@ -423,7 +423,7 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
/**
* Disable in-flight {@link org.springframework.cache.Cache} creation for unconfigured caches.
* <p />
* <p>
* {@link RedisCacheManager#getMissingCache(String)} returns {@literal null} for any unconfigured
* {@link org.springframework.cache.Cache} instead of a new {@link RedisCache} instance. This allows eg.
* {@link org.springframework.cache.support.CompositeCacheManager} to chime in.

View File

@@ -113,7 +113,7 @@ public class BitFieldSubCommands implements Iterable<BitFieldSubCommand> {
}
/**
* Obtain a new {@link BitFieldIncrByBuilder} for creating and adding a {@link BitFieldIncrby} sub command.
* Obtain a new {@link BitFieldIncrByBuilder} for creating and adding a {@link BitFieldIncrBy} sub command.
*
* @param type must not be {@literal null}.
* @return
@@ -125,7 +125,7 @@ public class BitFieldSubCommands implements Iterable<BitFieldSubCommand> {
/**
* Create new {@link BitFieldSubCommands} adding given {@link BitFieldIncrBy} to the sub commands.
*
* @param get must not be {@literal null}.
* @param incrBy must not be {@literal null}.
* @return
*/
protected BitFieldSubCommands incr(BitFieldIncrBy incrBy) {

View File

@@ -56,7 +56,7 @@ public interface ReactiveClusterServerCommands extends ReactiveServerCommands {
* Get time unix timestamp of last successful {@link #bgSave()} operation in seconds.
*
* @param node must not be {@literal null}.
* @return @return {@link Mono} wrapping unix timestamp.
* @return {@link Mono} wrapping unix timestamp.
* @throws IllegalArgumentException when {@code node} is {@literal null}.
* @see RedisServerCommands#lastSave()
*/
@@ -108,7 +108,6 @@ public interface ReactiveClusterServerCommands extends ReactiveServerCommands {
* <li>cpu utilization</li>
* <li>replication</li>
* </ul>
* <p>
*
* @param node must not be {@literal null}.
* @return {@link Mono} wrapping server information.

View File

@@ -17,8 +17,6 @@ package org.springframework.data.redis.connection;
import static org.springframework.data.redis.connection.RedisGeoCommands.*;
import org.springframework.data.redis.domain.geo.GeoReference;
import org.springframework.data.redis.domain.geo.GeoShape;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -43,6 +41,8 @@ import org.springframework.data.redis.connection.ReactiveRedisConnection.KeyComm
import org.springframework.data.redis.connection.ReactiveRedisConnection.MultiValueResponse;
import org.springframework.data.redis.connection.ReactiveRedisConnection.NumericResponse;
import org.springframework.data.redis.connection.RedisGeoCommands.GeoRadiusCommandArgs.Flag;
import org.springframework.data.redis.domain.geo.GeoReference;
import org.springframework.data.redis.domain.geo.GeoShape;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@@ -1279,7 +1279,7 @@ public interface ReactiveGeoCommands {
/**
* Sets the geoset {@literal key}. Constructs a new command instance with all previously configured properties.
*
* @param member must not be {@literal null}.
* @param reference must not be {@literal null}.
* @return a new {@link GeoSearchCommand} with {@literal key} applied.
*/
public GeoSearchCommand at(GeoReference<ByteBuffer> reference) {
@@ -1292,7 +1292,7 @@ public interface ReactiveGeoCommands {
/**
* Sets the geoset {@literal key}. Constructs a new command instance with all previously configured properties.
*
* @param member must not be {@literal null}.
* @param key must not be {@literal null}.
* @return a new {@link GeoSearchCommand} with {@literal key} applied.
*/
public GeoSearchCommand in(ByteBuffer key) {
@@ -1370,7 +1370,7 @@ public interface ReactiveGeoCommands {
/**
* Sets the geoset {@literal key}. Constructs a new command instance with all previously configured properties.
*
* @param member must not be {@literal null}.
* @param reference must not be {@literal null}.
* @return a new {@link GeoSearchStoreCommand} with {@literal key} applied.
*/
public GeoSearchStoreCommand at(GeoReference<ByteBuffer> reference) {
@@ -1383,7 +1383,7 @@ public interface ReactiveGeoCommands {
/**
* Sets the geoset {@literal key}. Constructs a new command instance with all previously configured properties.
*
* @param member must not be {@literal null}.
* @param key must not be {@literal null}.
* @return a new {@link GeoSearchStoreCommand} with {@literal key} applied.
*/
public GeoSearchStoreCommand in(ByteBuffer key) {
@@ -1396,7 +1396,7 @@ public interface ReactiveGeoCommands {
/**
* Sets the geoset {@literal destKey}. Constructs a new command instance with all previously configured properties.
*
* @param member must not be {@literal null}.
* @param destKey must not be {@literal null}.
* @return a new {@link GeoSearchStoreCommand} with {@literal destKey} applied.
*/
public GeoSearchStoreCommand storeAt(ByteBuffer destKey) {

View File

@@ -93,7 +93,7 @@ public interface ReactiveKeyCommands {
/**
* Applies {@code replace}. Constructs a new command instance with all previously configured properties.
*
* @param key must not be {@literal null}.
* @param replace
* @return a new {@link CopyCommand} with {@literal replace} applied.
*/
public CopyCommand replace(boolean replace) {

View File

@@ -830,7 +830,7 @@ public interface ReactiveListCommands {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param commands must not be {@literal null}.

View File

@@ -34,7 +34,7 @@ public interface ReactivePubSubCommands {
/**
* Creates a subscription for this connection. Connections can have multiple {@link ReactiveSubscription}s.
* <p/>
* <p>
* Use {@link #createSubscription(SubscriptionListener)} to get notified when the subscription completes.
*
* @return the subscription.
@@ -77,7 +77,7 @@ public interface ReactivePubSubCommands {
* Subscribes the connection to the given {@code channels}. Once subscribed, a connection enters listening mode and
* can only subscribe to other channels or unsubscribe. No other commands are accepted until the connection is
* unsubscribed.
* <p />
* <p>
* Note that cancellation of the {@link Flux} will unsubscribe from {@code channels}.
*
* @param channels channel names, must not be {@literal null}.
@@ -89,7 +89,7 @@ public interface ReactivePubSubCommands {
* Subscribes the connection to all channels matching the given {@code patterns}. Once subscribed, a connection enters
* listening mode and can only subscribe to other channels or unsubscribe. No other commands are accepted until the
* connection is unsubscribed.
* <p />
* <p>
* Note that cancellation of the {@link Flux} will unsubscribe from {@code patterns}.
*
* @param patterns channel name patterns, must not be {@literal null}.

View File

@@ -96,7 +96,6 @@ public interface ReactiveServerCommands {
* <li>cpu utilization</li>
* <li>replication</li>
* </ul>
* <p>
*
* @return {@link Mono} wrapping server information.
* @see <a href="https://redis.io/commands/info">Redis Documentation: INFO</a>

View File

@@ -576,7 +576,7 @@ public interface ReactiveSetCommands {
/**
* Creates a new {@link SMIsMemberCommand} given one or more {@literal values}.
*
* @param value must not be {@literal null}.
* @param values must not be {@literal null}.
* @return a new {@link SMIsMemberCommand} for a {@literal value}.
*/
public static SMIsMemberCommand values(List<ByteBuffer> values) {

View File

@@ -276,7 +276,7 @@ public interface ReactiveStringCommands {
/**
* Applies {@link Expiration}. Constructs a new command instance with all previously configured properties.
*
* @param options must not be {@literal null}.
* @param expiration must not be {@literal null}.
* @return a new {@link GetExCommand} with {@link Expiration} applied.
*/
public GetExCommand withExpiration(Expiration expiration) {

View File

@@ -29,7 +29,7 @@ import org.springframework.util.ObjectUtils;
* {@link #subscribe(ByteBuffer...) channels} and {@link #pSubscribe(ByteBuffer...) patterns}. It provides access to the
* {@link ChannelMessage} {@link #receive() stream} that emits only messages for channels and patterns registered in
* this {@link ReactiveSubscription}.
* <p />
* <p>
* A reactive Redis connection can have multiple subscriptions. If two or more subscriptions subscribe to the same
* target (channel/pattern) and one unsubscribes, then the other one will no longer receive messages for the target due
* to how Redis handled Pub/Sub subscription.
@@ -103,7 +103,7 @@ public interface ReactiveSubscription {
/**
* Retrieve the message stream emitting {@link Message messages}. The resulting message stream contains only messages
* for subscribed and registered {@link #getChannels() channels} and {@link #getPatterns() patterns}.
* <p />
* <p>
* Stream publishing uses {@link reactor.core.publisher.ConnectableFlux} turning the stream into a hot sequence.
* Emission is paused if there is no demand. Messages received in that time are buffered. This stream terminates
* either if all subscribers unsubscribe or if this {@link Subscription} is {@link #cancel() is terminated}.

View File

@@ -1540,7 +1540,7 @@ public interface ReactiveZSetCommands {
* Applies a {@link Duration timeout}. Constructs a new command instance with all previously configured properties.
*
* @param timeout value.
* @param timeout must not be {@literal null}.
* @param timeUnit must not be {@literal null}.
* @return a new {@link BZPopCommand} with {@link Duration timeout} applied.
*/
public BZPopCommand blockingFor(long timeout, TimeUnit timeUnit) {

View File

@@ -67,8 +67,7 @@ public class RedisClusterConfiguration implements RedisConfiguration, ClusterCon
* clusterHostAndPorts[0] = 127.0.0.1:23679
* clusterHostAndPorts[1] = 127.0.0.1:23680 ...
* </code>
*
* <pre>
* </pre>
*
* @param clusterNodes must not be {@literal null}.
*/

View File

@@ -218,7 +218,7 @@ public interface RedisListCommands {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param sourceKey must not be {@literal null}.

View File

@@ -27,9 +27,9 @@ import org.springframework.util.StringUtils;
/**
* Value object which may or may not contain a Redis password.
* <p/>
* <p>
* If a password is present, {@code isPresent()} will return {@code true} and {@code get()} will return the value.
* <p/>
* <p>
* The password is stored as character array.
*
* @author Mark Paluch
@@ -109,7 +109,7 @@ public class RedisPassword {
/**
* Map the password using a {@link Function} and return a {@link Optional} containing the mapped value.
* <p/>
* <p>
* Absent passwords return a {@link Optional#empty()}.
*
* @param mapper must not be {@literal null}.
@@ -124,7 +124,7 @@ public class RedisPassword {
/**
* Adopt the password to {@link Optional} containing the password value.
* <p/>
* <p>
* Absent passwords return a {@link Optional#empty()}.
*
* @return the {@link Optional} containing the password value.

View File

@@ -67,8 +67,7 @@ public class RedisSentinelConfiguration implements RedisConfiguration, SentinelC
*
* <pre>
* sentinelHostAndPorts[0] = 127.0.0.1:23679 sentinelHostAndPorts[1] = 127.0.0.1:23680 ...
*
* <pre>
* </pre>
*
* @param sentinelHostAndPorts must not be {@literal null}.
* @since 1.5

View File

@@ -115,7 +115,6 @@ public interface RedisServerCommands {
* <li>cpu utilization</li>
* <li>replication</li>
* </ul>
* <p>
*
* @return {@literal null} when used in pipeline / transaction.
* @see <a href="https://redis.io/commands/info">Redis Documentation: INFO</a>

View File

@@ -87,9 +87,8 @@ public interface RedisStreamCommands {
}
/**
* Append the given {@link MapRecord record} to the stream stored at {@link Record#getStream()}. <br />
* If you prefer manual id assignment over server generated ones make sure to provide an id via
* {@link Record#withId(RecordId)}.
* Append the given {@link MapRecord record} to the stream stored at {@code Record#getStream}. If you prefer manual id
* assignment over server generated ones make sure to provide an id via {@code Record#withId}.
*
* @param record the {@link MapRecord record} to append.
* @return the {@link RecordId id} after save. {@literal null} when used in pipeline / transaction.
@@ -100,9 +99,8 @@ public interface RedisStreamCommands {
}
/**
* Append the given {@link MapRecord record} to the stream stored at {@link Record#getStream()}. <br />
* If you prefer manual id assignment over server generated ones make sure to provide an id via
* {@link Record#withId(RecordId)}.
* Append the given {@link MapRecord record} to the stream stored at {@code Record#getStream}. If you prefer manual id
* assignment over server generated ones make sure to provide an id via {@code Record#withId}.
*
* @param record the {@link MapRecord record} to append.
* @param options additional options (eg. {@literal MAXLEN}). Must not be {@literal null}, use

View File

@@ -59,7 +59,7 @@ public interface RedisStringCommands {
/**
* Return the value at {@code key} and expire the key by applying {@link Expiration}.
* <p />
* <p>
* Use {@link Expiration#seconds(long)} for {@code EX}. <br />
* Use {@link Expiration#milliseconds(long)} for {@code PX}. <br />
* Use {@link Expiration#unixTimestamp(long, TimeUnit)} for {@code EXAT | PXAT}. <br />
@@ -385,29 +385,21 @@ public interface RedisStringCommands {
/**
* Do not set any additional command argument.
*
* @return
*/
UPSERT,
/**
* {@code NX}
*
* @return
*/
SET_IF_ABSENT,
/**
* {@code XX}
*
* @return
*/
SET_IF_PRESENT;
/**
* Do not set any additional command argument.
*
* @return
*/
public static SetOption upsert() {
return UPSERT;
@@ -415,8 +407,6 @@ public interface RedisStringCommands {
/**
* {@code XX}
*
* @return
*/
public static SetOption ifPresent() {
return SET_IF_PRESENT;
@@ -424,8 +414,6 @@ public interface RedisStringCommands {
/**
* {@code NX}
*
* @return
*/
public static SetOption ifAbsent() {
return SET_IF_ABSENT;

View File

@@ -29,7 +29,6 @@ public interface RedisTxCommands {
/**
* Mark the start of a transaction block. <br>
* Commands will be queued and can then be executed by calling {@link #exec()} or rolled back using {@link #discard()}
* <p>
*
* @see <a href="https://redis.io/commands/multi">Redis Documentation: MULTI</a>
*/

View File

@@ -577,7 +577,7 @@ public interface RedisZSetCommands {
* @param key must not be {@literal null}.
* @param score the score.
* @param value the value.
* @param args must not be {@literal null} use {@link ZAddArgs#none()} instead.
* @param args must not be {@literal null} use {@link ZAddArgs#empty()} instead.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.5
* @see <a href="https://redis.io/commands/zadd">Redis Documentation: ZADD</a>
@@ -604,7 +604,7 @@ public interface RedisZSetCommands {
*
* @param key must not be {@literal null}.
* @param tuples must not be {@literal null}.
* @param args must not be {@literal null} use {@link ZAddArgs#none()} instead.
* @param args must not be {@literal null} use {@link ZAddArgs#empty()} instead.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.5
* @see <a href="https://redis.io/commands/zadd">Redis Documentation: ZADD</a>
@@ -1308,7 +1308,6 @@ public interface RedisZSetCommands {
/**
* Union sorted {@code sets}.
*
* @param destKey must not be {@literal null}.
* @param sets must not be {@literal null}.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6
@@ -1320,7 +1319,6 @@ public interface RedisZSetCommands {
/**
* Union sorted {@code sets}.
*
* @param destKey must not be {@literal null}.
* @param sets must not be {@literal null}.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6

View File

@@ -72,17 +72,17 @@ public interface SortParameters {
Boolean isAlphabetic();
/**
* Returns the pattern (if set) for sorting by external keys (<tt>BY</tt>). Can be null if nothing is specified.
* Returns the pattern (if set) for sorting by external keys ({@code BY}). Can be null if nothing is specified.
*
* @return <tt>BY</tt> pattern. {@literal null} if not set.
* @return {@code BY} pattern. {@literal null} if not set.
*/
@Nullable
byte[] getByPattern();
/**
* Returns the pattern (if set) for retrieving external keys (<tt>GET</tt>). Can be null if nothing is specified.
* Returns the pattern (if set) for retrieving external keys ({@code GET}). Can be null if nothing is specified.
*
* @return <tt>GET</tt> pattern. {@literal null} if not set.
* @return {@code GET} pattern. {@literal null} if not set.
*/
@Nullable
byte[][] getGetPattern();

View File

@@ -144,7 +144,7 @@ public interface StringRedisConnection extends RedisConnection {
* @param replace whether to replace existing keys.
* @return {@literal null} when used in pipeline / transaction.
* @see <a href="https://redis.io/commands/copy">Redis Documentation: COPY</a>
* @see RedisKeyCommands#copy(byte[], byte[])
* @see RedisKeyCommands#copy(byte[], byte[], boolean)
*/
Boolean copy(String sourceKey, String targetKey, boolean replace);
@@ -1224,7 +1224,7 @@ public interface StringRedisConnection extends RedisConnection {
* @param key must not be {@literal null}.
* @param score must not be {@literal null}.
* @param value must not be {@literal null}.
* @param args must not be {@literal null} use {@link ZAddArgs#none()} instead.
* @param args must not be {@literal null} use {@link ZAddArgs#empty()} instead.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.5
* @see <a href="https://redis.io/commands/zadd">Redis Documentation: ZADD</a>
@@ -1249,7 +1249,7 @@ public interface StringRedisConnection extends RedisConnection {
*
* @param key must not be {@literal null}.
* @param tuples must not be {@literal null}.
* @param args must not be {@literal null} use {@link ZAddArgs#none()} instead.
* @param args must not be {@literal null} use {@link ZAddArgs#empty()} instead.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.5
* @see <a href="https://redis.io/commands/zadd">Redis Documentation: ZADD</a>
@@ -1792,7 +1792,6 @@ public interface StringRedisConnection extends RedisConnection {
/**
* Union sorted {@code sets}.
*
* @param destKey must not be {@literal null}.
* @param sets must not be {@literal null}.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6
@@ -1804,7 +1803,6 @@ public interface StringRedisConnection extends RedisConnection {
/**
* Union sorted {@code sets}.
*
* @param destKey must not be {@literal null}.
* @param sets must not be {@literal null}.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6
@@ -1935,7 +1933,7 @@ public interface StringRedisConnection extends RedisConnection {
*
* @param key must not be {@literal null}.
* @param range must not be {@literal null}.
* @param range can be {@literal null}.
* @param limit can be {@literal null}.
* @return
* @since 1.6
* @see <a href="https://redis.io/commands/zrangebylex">Redis Documentation: ZRANGEBYLEX</a>
@@ -1971,12 +1969,12 @@ public interface StringRedisConnection extends RedisConnection {
}
/**
* Get all the elements in {@link Range} from the sorted set at {@literal key} in reversed lexicographical ordering. Result is
* limited via {@link Limit}.
* Get all the elements in {@link Range} from the sorted set at {@literal key} in reversed lexicographical ordering.
* Result is limited via {@link Limit}.
*
* @param key must not be {@literal null}.
* @param range must not be {@literal null}.
* @param range can be {@literal null}.
* @param limit must not be {@literal null}.
* @return
* @since 2.4
* @see <a href="https://redis.io/commands/zrevrangebylex">Redis Documentation: ZREVRANGEBYLEX</a>

View File

@@ -17,7 +17,7 @@ package org.springframework.data.redis.connection;
/**
* Listener for subscription notifications.
* <p/>
* <p>
* Subscription notifications are reported by Redis as confirmation for subscribe and unsubscribe operations for
* channels and patterns.
*

View File

@@ -33,7 +33,7 @@ import org.springframework.util.Assert;
/**
* Redis client configuration for jedis. This configuration provides optional configuration elements such as
* {@link SSLSocketFactory} and {@link JedisPoolConfig} specific to jedis client features.
* <p/>
* <p>
* Providing optional elements allows a more specific configuration of the client:
* <ul>
* <li>Whether to use SSL</li>
@@ -46,7 +46,6 @@ import org.springframework.util.Assert;
* <li>Connect {@link Duration timeout}</li>
* <li>Read {@link Duration timeout}</li>
* </ul>
* <p />
*
* @author Mark Paluch
* @author Christoph Strobl
@@ -152,7 +151,7 @@ public interface JedisClientConfiguration {
/**
* Enable connection-pooling.
* <p />
* <p>
* Applies only to single node Redis. Sentinel and Cluster modes use always connection-pooling regardless of the
* pooling setting.
*

View File

@@ -702,7 +702,7 @@ public class JedisConnectionFactory implements InitializingBean, DisposableBean,
/**
* Indicates the use of a connection pool.
* <p />
* <p>
* Applies only to single node Redis. Sentinel and Cluster modes use always connection-pooling regardless of the
* pooling setting.
*

View File

@@ -40,7 +40,7 @@ import org.springframework.data.redis.connection.stream.StreamRecords;
/**
* Converters for Redis Stream-specific types.
* <p/>
* <p>
* Converters typically convert between value objects/argument objects retaining the actual types of values (i.e. no
* serialization/deserialization happens here).
*

View File

@@ -64,7 +64,7 @@ public class DefaultLettucePool implements LettucePool, InitializingBean {
public DefaultLettucePool() {}
/**
* Uses the {@link Config} and {@link RedisClient} defaults for configuring the connection pool
* Uses the {@link GenericObjectPoolConfig} defaults for configuring the connection pool
*
* @param hostName The Redis host
* @param port The Redis port

View File

@@ -864,7 +864,7 @@ public class LettuceConnectionFactory
* Returns the native {@link AbstractRedisClient} used by this instance. The client is initialized as part of
* {@link #afterPropertiesSet() the bean initialization lifecycle} and only available when this connection factory is
* initialized.
* <p/>
* <p>
* Depending on the configuration, the client can be either {@link RedisClient} or {@link RedisClusterClient}.
*
* @return the native {@link AbstractRedisClient}. Can be {@literal null} if not initialized.
@@ -881,7 +881,7 @@ public class LettuceConnectionFactory
* Returns the native {@link AbstractRedisClient} used by this instance. The client is initialized as part of
* {@link #afterPropertiesSet() the bean initialization lifecycle} and only available when this connection factory is
* initialized. Throws {@link IllegalStateException} if not yet initialized.
* <p/>
* <p>
* Depending on the configuration, the client can be either {@link RedisClient} or {@link RedisClusterClient}.
*
* @return the native {@link AbstractRedisClient}.

View File

@@ -23,13 +23,13 @@ import java.util.concurrent.CompletionStage;
/**
* Defines a provider for Lettuce connections.
* <p />
* <p>
* This interface is typically used to encapsulate a native factory which returns a {@link StatefulConnection
* connection} of on each invocation.
* <p/>
* <p>
* Connection providers may create a new connection on each invocation or return pooled instances. Each obtained
* connection must be released through its connection provider to allow disposal or release back to the pool.
* <p/>
* <p>
* Connection providers are usually associated with a {@link io.lettuce.core.codec.RedisCodec} to create connections
* with an appropriate codec.
*

View File

@@ -42,11 +42,11 @@ import org.springframework.util.Assert;
/**
* {@link LettuceConnectionProvider} with connection pooling support. This connection provider holds multiple pools (one
* per connection type and allocation type (synchronous/asynchronous)) for contextualized connection allocation.
* <p />
* <p>
* Each allocated connection is tracked and to be returned into the pool which created the connection. Instances of this
* class require {@link #destroy() disposal} to de-allocate lingering connections that were not returned to the pool and
* to close the pools.
* <p />
* <p>
* This provider maintains separate pools due to the allocation nature (synchronous/asynchronous). Asynchronous
* connection pooling requires a non-blocking allocation API. Connections requested asynchronously can be returned
* synchronously and vice versa. A connection obtained synchronously is returned to the synchronous pool even if

View File

@@ -254,7 +254,7 @@ class LettuceReactiveSubscription implements ReactiveSubscription {
* Create a message stream from connect {@link Function}. Multiple calls to this method are lock-free synchronized.
* The first successful caller creates the actual stream. Other concurrent callers that do not pass the
* synchronization use the stream created by the first successful caller.
* <p/>
* <p>
* The stream registers a disposal function upon subscription for external {@link #terminate() termination}.
*
* @param connectFunction

View File

@@ -25,7 +25,7 @@ import org.springframework.lang.Nullable;
/**
* Lettuce-specific {@link ScanCursor} extension that maintains the cursor state that is required for stateful-scanning
* across a Redis Cluster.
* <p/>
* <p>
* The cursor state uses Lettuce's stateful {@link io.lettuce.core.ScanCursor} to keep track of scanning progress.
*
* @author Mark Paluch

View File

@@ -42,7 +42,7 @@ import org.springframework.util.NumberUtils;
/**
* Converters for Redis Stream-specific types.
* <p/>
* <p>
* Converters typically convert between value objects/argument objects retaining the actual types of values (i.e. no
* serialization/deserialization happens here).
*

View File

@@ -94,7 +94,7 @@ public interface ByteBufferRecord extends MapRecord<ByteBuffer, ByteBuffer, Byte
/**
* Convert a binary {@link MapRecord} into an {@link ObjectRecord}.
*
* @param source must not be {@literal null}.
* @param mapper must not be {@literal null}.
* @return new instance of {@link ByteRecord}.
*/
@SuppressWarnings({ "unchecked", "rawtypes" })

View File

@@ -29,7 +29,6 @@ import org.springframework.util.Assert;
* <p>
* As the rest of the APIs, if the underlying connection is pipelined or queued/in multi mode, all methods will return
* {@literal null}.
* <p>
*
* @author Costin Leau
* @author Christoph Strobl

View File

@@ -159,7 +159,7 @@ public interface BoundListOperations<K, V> extends BoundKeyOperations<K> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at the bound key, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param from must not be {@literal null}.
@@ -177,7 +177,7 @@ public interface BoundListOperations<K, V> extends BoundKeyOperations<K> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at the bound key, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param from must not be {@literal null}.

View File

@@ -92,7 +92,6 @@ public interface BoundSetOperations<K, V> extends BoundKeyOperations<K> {
/**
* Check if set at at the bound key contains one or more {@code values}.
*
* @param key must not be {@literal null}.
* @param objects
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6

View File

@@ -174,7 +174,6 @@ public interface BoundValueOperations<K, V> extends BoundKeyOperations<K> {
/**
* Return the value at the bound key and delete the key.
*
* @param key must not be {@literal null}.
* @return {@literal null} when key does not exist or used in pipeline / transaction.
* @see <a href="https://redis.io/commands/getdel">Redis Documentation: GETDEL</a>
* @since 2.6

View File

@@ -164,7 +164,6 @@ public interface BoundZSetOperations<K, V> extends BoundKeyOperations<K> {
/**
* Get {@code count} random elements with their score from set at the bound key.
*
* @param key must not be {@literal null}.
* @param count nr of members to return.
* @return empty {@link List} if {@code key} does not exist or {@literal null} when used in pipeline / transaction.
* @throws IllegalArgumentException if count is negative.
@@ -551,7 +550,7 @@ public interface BoundZSetOperations<K, V> extends BoundKeyOperations<K> {
/**
* Diff sorted {@code sets} and store result in destination {@code destKey}.
*
* @param otherKeys must not be {@literal null}.
* @param otherKey must not be {@literal null}.
* @param destKey must not be {@literal null}.
* @return {@literal null} when used in pipeline / transaction.
* @since 2.6

View File

@@ -21,7 +21,7 @@ import java.util.List;
* Mapper translating Redis bulk value responses (typically returned by a sort query) to actual objects. Implementations
* of this interface do not have to worry about exception or connection handling.
* <p>
* Typically used by {@link RedisTemplate} <tt>sort</tt> methods.
* Typically used by {@link RedisTemplate} {@code sort} methods.
*
* @author Costin Leau
*/

View File

@@ -20,11 +20,11 @@ import org.springframework.data.util.CloseableIterator;
/**
* Cursor abstraction to scan over the keyspace or elements within a data structure using a variant of a {@code SCAN}
* command.
* <p />
* <p>
* Using a Java 8 {@link #stream() java.util.stream.Stream} allows to apply additional
* {@link java.util.stream.Stream#filter(java.util.function.Predicate) filters} and {@link java.util.stream.Stream#limit(long) limits} to
* the underlying {@link Cursor}.
* <p />
* {@link java.util.stream.Stream#filter(java.util.function.Predicate) filters} and
* {@link java.util.stream.Stream#limit(long) limits} to the underlying {@link Cursor}.
* <p>
* Make sure to {@link CloseableIterator#close() close} the cursor when done as this allows implementations to clean up
* any resources they need to keep open to iterate over elements (eg. by using a try-with-resource statement).
*

View File

@@ -19,7 +19,7 @@ import org.springframework.data.redis.hash.HashMapper;
/**
* Function that returns a {@link HashMapper} for a given {@link Class type}.
* <p/>
* <p>
* Implementors of this interface can return a generic or a specific {@link HashMapper} implementation, depending on the
* serialization strategy for the requested {@link Class target type}.
*

View File

@@ -277,7 +277,7 @@ public interface ListOperations<K, V> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param from must not be {@literal null}.
@@ -303,7 +303,7 @@ public interface ListOperations<K, V> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param sourceKey must not be {@literal null}.
@@ -329,7 +329,7 @@ public interface ListOperations<K, V> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param sourceKey must not be {@literal null}.

View File

@@ -209,7 +209,7 @@ public interface ReactiveListOperations<K, V> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param from must not be {@literal null}.
@@ -234,7 +234,7 @@ public interface ReactiveListOperations<K, V> {
* Atomically returns and removes the first/last element (head/tail depending on the {@code from} argument) of the
* list stored at {@code sourceKey}, and pushes the element at the first/last element (head/tail depending on the
* {@code to} argument) of the list stored at {@code destinationKey}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param sourceKey must not be {@literal null}.

View File

@@ -23,7 +23,7 @@ import org.springframework.data.redis.connection.ReactiveRedisConnection;
* Generic callback interface for code that wants to use the same {@link ReactiveRedisConnection} avoiding connection
* allocation overhead upon each Template API method call. Allows to execute any number of operations on a single
* {@link ReactiveRedisConnection}, using any type and number of commands.
* <p />
* <p>
* This is particularly useful for issuing multiple calls on the same connection.
*
* @param <T>
@@ -36,7 +36,7 @@ public interface ReactiveRedisSessionCallback<K, V, T> {
/**
* Gets called by {@link ReactiveRedisOperations#executeInSession(ReactiveRedisSessionCallback)} with an active Redis
* connection. Does not need to care about activating or closing the {@link ReactiveRedisConnection}.
* <p />
* <p>
* Allows for returning a result object created within the callback, i.e. a domain object or a collection of domain
* objects.
*

View File

@@ -49,10 +49,10 @@ import org.springframework.util.ClassUtils;
/**
* Central abstraction for reactive Redis data access implementing {@link ReactiveRedisOperations}.
* <p/>
* <p>
* Performs automatic serialization/deserialization between the given objects and the underlying binary data in the
* Redis store.
* <p/>
* <p>
* Note that while the template is generified, it is up to the serializers/deserializers to properly convert the given
* Objects to and from binary data.
*

View File

@@ -105,7 +105,7 @@ public interface ReactiveSetOperations<K, V> {
* Check if set at {@code key} contains one or more {@code values}.
*
* @param key must not be {@literal null}.
* @param values
* @param objects
* @return
* @since 2.6
* @see <a href="https://redis.io/commands/smismember">Redis Documentation: SMISMEMBER</a>

View File

@@ -533,7 +533,7 @@ public interface ReactiveZSetOperations<K, V> {
* Diff sorted {@code sets} and store result in destination {@code destKey}.
*
* @param key must not be {@literal null}.
* @param otherKeys must not be {@literal null}.
* @param otherKey must not be {@literal null}.
* @param destKey must not be {@literal null}.
* @return
* @since 2.6

View File

@@ -29,8 +29,8 @@ import org.springframework.lang.Nullable;
public interface RedisClusterCallback<T> {
/**
* Gets called by {@link RedisClusterTemplate} with an active Redis connection. Does not need to care about activating
* or closing the connection or handling exceptions.
* Gets called by {@link ClusterOperations} with an active Redis connection. Does not need to care about activating or
* closing the connection or handling exceptions.
*
* @param connection never {@literal null}.
* @return

View File

@@ -87,8 +87,7 @@ public class RedisKeyValueTemplate extends KeyValueTemplate {
* }
* }, RedisSession.class);
* </code>
*
* <pre>
* </pre>
*
* @param callback provides the to retrieve entity ids. Must not be {@literal null}.
* @param type must not be {@literal null}.

View File

@@ -58,7 +58,7 @@ public interface RedisOperations<K, V> {
*
* @param <T> return type
* @param action callback object that specifies the Redis action. Must not be {@literal null}.
* @return a result object returned by the action or <tt>null</tt>
* @return a result object returned by the action or {@literal null}
*/
@Nullable
<T> T execute(RedisCallback<T> action);
@@ -69,7 +69,7 @@ public interface RedisOperations<K, V> {
*
* @param <T> return type
* @param session session callback. Must not be {@literal null}.
* @return result object returned by the action or <tt>null</tt>
* @return result object returned by the action or {@literal null}
*/
@Nullable
<T> T execute(SessionCallback<T> session);
@@ -502,7 +502,6 @@ public interface RedisOperations<K, V> {
/**
* Mark the start of a transaction block. <br>
* Commands will be queued and can then be executed by calling {@link #exec()} or rolled back using {@link #discard()}
* <p>
*
* @see <a href="https://redis.io/commands/multi">Redis Documentation: MULTI</a>
*/
@@ -580,7 +579,6 @@ public interface RedisOperations<K, V> {
*
* @param destination the channel to publish to, must not be {@literal null}.
* @param message message to publish
* @return the number of clients that received the message
* @see <a href="https://redis.io/commands/publish">Redis Documentation: PUBLISH</a>
*/
void convertAndSend(String destination, Object message);
@@ -626,8 +624,9 @@ public interface RedisOperations<K, V> {
<HK, HV> HashOperations<K, HK, HV> opsForHash();
/**
* Returns the operations performed on hash values bound to the given key. * @param <HK> hash key (or field) type
* Returns the operations performed on hash values bound to the given key.
*
* @param <HK> hash key (or field) type
* @param <HV> hash value type
* @param key Redis key
* @return hash operations bound to the given key.

View File

@@ -59,21 +59,21 @@ import org.springframework.util.CollectionUtils;
/**
* Helper class that simplifies Redis data access code.
* <p/>
* <p>
* Performs automatic serialization/deserialization between the given objects and the underlying binary data in the
* Redis store. By default, it uses Java serialization for its objects (through {@link JdkSerializationRedisSerializer}
* ). For String intensive operations consider the dedicated {@link StringRedisTemplate}.
* <p/>
* <p>
* The central method is execute, supporting Redis access code implementing the {@link RedisCallback} interface. It
* provides {@link RedisConnection} handling such that neither the {@link RedisCallback} implementation nor the calling
* code needs to explicitly care about retrieving/closing Redis connections, or handling Connection lifecycle
* exceptions. For typical single step actions, there are various convenience methods.
* <p/>
* <p>
* Once configured, this class is thread-safe.
* <p/>
* <p>
* Note that while the template is generified, it is up to the serializers/deserializers to properly convert the given
* Objects to and from binary data.
* <p/>
* <p>
* <b>This is the central class in Redis support</b>.
*
* @author Costin Leau
@@ -83,7 +83,6 @@ import org.springframework.util.CollectionUtils;
* @author Mark Paluch
* @author Denis Zavedeev
* @author ihaohong
*
* @param <K> the Redis key type against which the template works (usually a String)
* @param <V> the Redis value type against which the template works
* @see StringRedisTemplate
@@ -412,7 +411,7 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
/**
* Sets whether to expose the Redis connection to {@link RedisCallback} code. Default is "false": a proxy will be
* returned, suppressing <tt>quit</tt> and <tt>disconnect</tt> calls.
* returned, suppressing {@code quit} and {@code disconnect} calls.
*
* @param exposeConnection
*/

View File

@@ -35,7 +35,7 @@ import org.springframework.util.Assert;
/**
* Utility to provide a {@link HashMapper} for Stream object conversion.
* <p/>
* <p>
* This utility can use generic a {@link HashMapper} or adapt specifically to {@link ObjectHashMapper}'s requirement to
* convert incoming data into byte arrays. This class can be subclassed to override template methods for specific object
* mapping strategies.

View File

@@ -20,13 +20,12 @@ import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.StringRedisConnection;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* String-focused extension of RedisTemplate. Since most operations against Redis are String based, this class provides
* a dedicated class that minimizes configuration of its more generic {@link RedisTemplate template} especially in terms
* of serializers.
* <p/>
* <p>
* Note that this template exposes the {@link RedisConnection} used by the {@link RedisCallback} as a
* {@link StringRedisConnection}.
*

View File

@@ -80,8 +80,8 @@ import org.springframework.util.comparator.NullSafeComparator;
* &#64;Id String id;
* String firstname;
*
* List<String> nicknames;
* List<Person> coworkers;
* List&lt;String&gt; nicknames;
* List&lt;Person&gt; coworkers;
*
* Address address;
* &#64;Reference Country nationality;

View File

@@ -24,7 +24,7 @@ package org.springframework.data.redis.core.index;
public interface IndexDefinitionRegistry {
/**
* Add given {@link RedisIndexSetting}.
* Add given {@link IndexDefinition}.
*
* @param indexDefinition must not be {@literal null}.
*/

View File

@@ -1,6 +1,6 @@
/**
* Core package for integrating <a href="https://redis.io">Redis</a> with Spring concepts.
* <p/>
* <p>
* Provides template support and callback for low-level access.
*/
@org.springframework.lang.NonNullApi

View File

@@ -128,7 +128,7 @@ public class Expiration {
/**
* Obtain an {@link Expiration} that indicates to keep the existing one. Eg. when sending a {@code SET} command.
* <p />
* <p>
* <strong>NOTE: </strong>Please follow the documentation of the individual commands to see if {@link #keepTtl()} is
* applicable.
*

View File

@@ -59,10 +59,9 @@ import com.fasterxml.jackson.databind.ser.std.DateSerializer;
* {@link ObjectMapper} based {@link HashMapper} implementation that allows flattening. Given an entity {@code Person}
* with an {@code Address} like below the flattening will create individual hash entries for all nested properties and
* resolve complex types into simple types, as far as possible.
* <p/>
* <p>
* Flattening requires all property names to not interfere with JSON paths. Using dots or brackets in map keys or as
* property names is not supported using flattening. The resulting hash cannot be mapped back into an Object.
* <p/>
* <h3>Example</h3>
*
* <pre class="code">

View File

@@ -123,7 +123,7 @@ public class ObjectHashMapper implements HashMapper<Object, byte[], byte[]> {
}
/**
* Return a shared default {@value ObjectHashMapper} instance, lazily building it once needed.
* Return a shared default {@link ObjectHashMapper} instance, lazily building it once needed.
* <p>
* <b>NOTE:</b> We highly recommend constructing individual {@link ObjectHashMapper} instances for customization
* purposes. This accessor is only meant as a fallback for code paths which need simple type coercion but cannot

View File

@@ -56,11 +56,11 @@ import org.springframework.util.ObjectUtils;
* Container providing a stream of {@link ChannelMessage} for messages received via Redis Pub/Sub listeners. The stream
* is infinite and registers Redis subscriptions. Handles the low level details of listening, converting and message
* dispatching.
* <p />
* <p>
* Note the container allocates a single connection when it is created and releases the connection on
* {@link #destroy()}. Connections are allocated eagerly to not interfere with non-blocking use during application
* operations. Using reactive infrastructure allows usage of a single connection due to channel multiplexing.
* <p />
* <p>
* This class is thread-safe and allows subscription by multiple concurrent threads.
*
* @author Mark Paluch
@@ -166,7 +166,7 @@ public class ReactiveRedisMessageListenerContainer implements DisposableBean {
* {@link Mono} completes. Messages and channel names are treated as {@link String}. The message stream subscribes
* lazily to the Redis channels and unsubscribes if the inner {@link org.reactivestreams.Subscription} is
* {@link org.reactivestreams.Subscription#cancel() cancelled}.
* <p/>
* <p>
* The returned {@link Mono} completes once the connection has been subscribed to the given {@link Topic topics}. Note
* that cancelling the returned {@link Mono} can leave the connection in a subscribed state.
*
@@ -209,7 +209,7 @@ public class ReactiveRedisMessageListenerContainer implements DisposableBean {
* {@link Mono} completes. Messages, pattern, and channel names are treated as {@link String}. The message stream
* subscribes lazily to the Redis channels and unsubscribes if the inner {@link org.reactivestreams.Subscription} is
* {@link org.reactivestreams.Subscription#cancel() cancelled}.
* <p/>
* <p>
* The returned {@link Mono} completes once the connection has been subscribed to the given {@link Topic topics}. Note
* that cancelling the returned {@link Mono} can leave the connection in a subscribed state.
*

View File

@@ -43,13 +43,13 @@ import org.springframework.util.StringUtils;
* Message listener adapter that delegates the handling of messages to target listener methods via reflection, with
* flexible message type conversion. Allows listener methods to operate on message content types, completely independent
* from the Redis API.
* <p/>
* <p>
* Make sure to call {@link #afterPropertiesSet()} after setting all the parameters on the adapter.
* <p/>
* <p>
* Note that if the underlying "delegate" is implementing {@link MessageListener}, the adapter will delegate to it and
* allow an invalid method to be specified. However if it is not, the method becomes mandatory. This lenient behavior
* allows the adapter to be used uniformly across existing listeners and message POJOs.
* <p/>
* <p>
* Modeled as much as possible after the JMS MessageListenerAdapter in Spring Framework.
* <p>
* By default, the content of incoming Redis messages gets extracted before being passed into the target listener
@@ -93,7 +93,6 @@ import org.springframework.util.StringUtils;
* @author Thomas Darimont
* @author Christoph Strobl
* @author Mark Paluch
* @see org.springframework.jms.listener.adapter.MessageListenerAdapter
*/
public class MessageListenerAdapter implements InitializingBean, MessageListener {

View File

@@ -1,6 +0,0 @@
/**
* Redis specific implementation of repository support
*/
@org.springframework.lang.NonNullApi
@org.springframework.lang.NonNullFields
package org.springframework.data.redis.repository;

View File

@@ -40,11 +40,11 @@ import org.springframework.util.StringUtils;
/**
* Mapper for Query-by-Example examples to an actual query.
* <p/>
* <p>
* This mapper creates a {@link RedisOperationChain} for a given {@link Example} considering exact matches,
* {@link PropertyValueTransformer value transformations} and {@link MatchMode} for indexed simple and nested type
* properties. {@link java.util.Map} and {@link java.util.Collection} properties are not considered.
* <p/>
* <p>
* Example matching is limited to case-sensitive and exact matches only.
*
* @author Mark Paluch

View File

@@ -38,7 +38,7 @@ import org.springframework.util.Assert;
/**
* Repository fragment implementing Redis {@link QueryByExampleExecutor Query-by-Example} operations.
* <p/>
* <p>
* This executor uses {@link ExampleQueryMapper} to map {@link Example}s into {@link KeyValueQuery} to execute its query
* methods.
*

View File

@@ -21,7 +21,7 @@ import org.springframework.util.Assert;
/**
* Serialization context for reactive use.
* <p />
* <p>
* This context provides {@link SerializationPair}s for key, value, hash-key (field), hash-value and {@link String}
* serialization and deserialization.
*

View File

@@ -45,7 +45,7 @@ import org.springframework.util.ObjectUtils;
/**
* Simple {@link Executor} based {@link StreamMessageListenerContainer} implementation for running {@link Task tasks} to
* poll on Redis Streams.
* <p />
* <p>
* This message container creates long-running tasks that are executed on {@link Executor}.
*
* @author Mark Paluch

View File

@@ -41,7 +41,7 @@ import org.springframework.util.ErrorHandler;
/**
* Abstraction used by the framework representing a message listener container. <strong>Not</strong> meant to be
* implemented externally.
* <p/>
* <p>
* Once created, a {@link StreamMessageListenerContainer} can subscribe to a Redis Stream and consume incoming
* {@link Record messages}. {@link StreamMessageListenerContainer} allows multiple stream read requests and returns a
* {@link Subscription} handle per read request. Cancelling the {@link Subscription} terminates eventually background
@@ -79,16 +79,16 @@ import org.springframework.util.ErrorHandler;
* <strong>Note: Using {@link ReadOffset#latest()} bears the chance of dropped messages as messages can arrive in the
* time during polling is suspended. Use messagedId's as offset or {@link ReadOffset#lastConsumed()} to minimize the
* chance of message loss.</strong>
* <p/>
* <p>
* {@link StreamMessageListenerContainer} requires a {@link Executor} to fork long-running polling tasks on a different
* {@link Thread}. This thread is used as event loop to poll for stream messages and invoke the
* {@link StreamListener#onMessage(Record) listener callback}.
* <p/>
* <p>
* {@link StreamMessageListenerContainer} tasks propagate errors during stream reads and
* {@link StreamListener#onMessage(Record) listener notification} to a configurable {@link ErrorHandler}. Errors stop a
* {@link Subscription} by default. Configuring a {@link Predicate} for a {@link StreamReadRequest} allows conditional
* subscription cancelling or continuing on all errors.
* <p/>
* <p>
* See the following example code how to use {@link StreamMessageListenerContainer}:
*
* <pre class="code">
@@ -158,10 +158,9 @@ public interface StreamMessageListenerContainer<K, V extends Record<K, ?>> exten
* Register a new subscription for a Redis Stream. If the {@link StreamMessageListenerContainer#isRunning() is already
* running} the {@link Subscription} will be added and run immediately, otherwise it'll be scheduled and started once
* the container is actually {@link StreamMessageListenerContainer#start() started}.
* <p/>
* Errors during {@link org.springframework.data.redis.connection.RedisStreamCommands.StreamMessage} retrieval lead to
* {@link Subscription#cancel() cancellation} of the underlying task.
* <p/>
* <p>
* Errors during {@link Record} retrieval lead to {@link Subscription#cancel() cancellation} of the underlying task.
* <p>
* On {@link StreamMessageListenerContainer#stop()} all {@link Subscription subscriptions} are cancelled prior to
* shutting down the container itself.
*
@@ -178,13 +177,13 @@ public interface StreamMessageListenerContainer<K, V extends Record<K, ?>> exten
* Register a new subscription for a Redis Stream. If the {@link StreamMessageListenerContainer#isRunning() is already
* running} the {@link Subscription} will be added and run immediately, otherwise it'll be scheduled and started once
* the container is actually {@link StreamMessageListenerContainer#start() started}.
* <p/>
* <p>
* Every message must be acknowledged using
* {@link org.springframework.data.redis.core.StreamOperations#acknowledge(Object, String, String...)} after
* processing.
* <p/>
* <p>
* Errors during {@link Record} retrieval lead to {@link Subscription#cancel() cancellation} of the underlying task.
* <p/>
* <p>
* On {@link StreamMessageListenerContainer#stop()} all {@link Subscription subscriptions} are cancelled prior to
* shutting down the container itself.
*
@@ -204,11 +203,11 @@ public interface StreamMessageListenerContainer<K, V extends Record<K, ?>> exten
* Register a new subscription for a Redis Stream. If the {@link StreamMessageListenerContainer#isRunning() is already
* running} the {@link Subscription} will be added and run immediately, otherwise it'll be scheduled and started once
* the container is actually {@link StreamMessageListenerContainer#start() started}.
* <p/>
* <p>
* Every message is acknowledged when received.
* <p/>
* <p>
* Errors during {@link Record} retrieval lead to {@link Subscription#cancel() cancellation} of the underlying task.
* <p/>
* <p>
* On {@link StreamMessageListenerContainer#stop()} all {@link Subscription subscriptions} are cancelled prior to
* shutting down the container itself.
*
@@ -227,13 +226,13 @@ public interface StreamMessageListenerContainer<K, V extends Record<K, ?>> exten
* Register a new subscription for a Redis Stream. If the {@link StreamMessageListenerContainer#isRunning() is already
* running} the {@link Subscription} will be added and run immediately, otherwise it'll be scheduled and started once
* the container is actually {@link StreamMessageListenerContainer#start() started}.
* <p/>
* <p>
* Errors during {@link Record} are tested against test {@link StreamReadRequest#getCancelSubscriptionOnError()
* cancellation predicate} whether to cancel the underlying task.
* <p/>
* <p>
* On {@link StreamMessageListenerContainer#stop()} all {@link Subscription subscriptions} are cancelled prior to
* shutting down the container itself.
* <p />
* <p>
* Errors during {@link Record} retrieval are delegated to the given {@link StreamReadRequest#getErrorHandler()}.
*
* @param streamRequest must not be {@literal null}.

View File

@@ -42,7 +42,7 @@ import org.springframework.util.Assert;
/**
* A receiver to consume Redis Streams using reactive infrastructure.
* <p/>
* <p>
* Once created, a {@link StreamReceiver} can subscribe to a Redis Stream and consume incoming {@link Record records}.
* Consider a {@link Flux} of {@link Record} infinite. Cancelling the {@link org.reactivestreams.Subscription}
* terminates eventually background polling. Records are converted using {@link SerializationPair key and value
@@ -84,7 +84,7 @@ import org.springframework.util.Assert;
* {@link StreamReceiver} propagates errors during stream reads and deserialization as terminal error signal by default.
* Configuring a {@link StreamReceiverOptions#getResumeFunction() resume function} allows conditional resumption by
* dropping the record or by propagating the error to terminate the subscription.
* <p/>
* <p>
* See the following example code how to use {@link StreamReceiver}:
*
* <pre class="code">
@@ -144,7 +144,7 @@ public interface StreamReceiver<K, V extends Record<K, ?>> {
* Starts a Redis Stream consumer that consumes {@link Record records} from the {@link StreamOffset stream}. Records
* are consumed from Redis and delivered on the returned {@link Flux} when requests are made on the Flux. The receiver
* is closed when the returned {@link Flux} terminates.
* <p/>
* <p>
* Every record must be acknowledged using
* {@link org.springframework.data.redis.connection.ReactiveStreamCommands#xAck(ByteBuffer, String, String...)}
*
@@ -158,7 +158,7 @@ public interface StreamReceiver<K, V extends Record<K, ?>> {
* Starts a Redis Stream consumer that consumes {@link Record records} from the {@link StreamOffset stream}. Records
* are consumed from Redis and delivered on the returned {@link Flux} when requests are made on the Flux. The receiver
* is closed when the returned {@link Flux} terminates.
* <p/>
* <p>
* Every record is acknowledged when received.
*
* @param consumer consumer group, must not be {@literal null}.
@@ -173,7 +173,7 @@ public interface StreamReceiver<K, V extends Record<K, ?>> {
* Starts a Redis Stream consumer that consumes {@link Record records} from the {@link StreamOffset stream}. Records
* are consumed from Redis and delivered on the returned {@link Flux} when requests are made on the Flux. The receiver
* is closed when the returned {@link Flux} terminates.
* <p/>
* <p>
* Every record must be acknowledged using
* {@link org.springframework.data.redis.core.ReactiveStreamOperations#acknowledge(Object, String, String...)} after
* processing.

View File

@@ -19,10 +19,9 @@ import java.time.Duration;
/**
* The {@link Subscription} is the link to the actual running {@link Task}.
* <p />
* <p>
* Due to the asynchronous nature of the {@link Task} execution a {@link Subscription} might not immediately become
* active. {@link #isActive()} provides an answer if the underlying {@link Task} is already running.
* <p />
*
* @author Mark Paluch
* @since 2.2

View File

@@ -102,7 +102,7 @@ public interface RedisList<E> extends RedisCollection<E>, List<E>, BlockingDeque
* Atomically returns and removes the first element of the list stored at the bound key, and pushes the element at the
* first/last element (head/tail depending on the {@link Direction destinationPosition} argument) of the list stored
* at {@link RedisList destination}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param destination must not be {@literal null}.
@@ -127,7 +127,7 @@ public interface RedisList<E> extends RedisCollection<E>, List<E>, BlockingDeque
* Atomically returns and removes the first element of the list stored at the bound key, and pushes the element at the
* first/last element (head/tail depending on the {@link Direction destinationPosition} argument) of the list stored
* at {@link RedisList destination}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param destination must not be {@literal null}.
@@ -161,7 +161,7 @@ public interface RedisList<E> extends RedisCollection<E>, List<E>, BlockingDeque
* Atomically returns and removes the last element of the list stored at the bound key, and pushes the element at the
* first/last element (head/tail depending on the {@link Direction destinationPosition} argument) of the list stored
* at {@link RedisList destination}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param destination must not be {@literal null}.
@@ -186,7 +186,7 @@ public interface RedisList<E> extends RedisCollection<E>, List<E>, BlockingDeque
* Atomically returns and removes the last element of the list stored at the bound key, and pushes the element at the
* first/last element (head/tail depending on the {@link Direction destinationPosition} argument) of the list stored
* at {@link RedisList destination}.
* <p/>
* <p>
* <b>Blocks connection</b> until element available or {@code timeout} reached.
*
* @param destination must not be {@literal null}.

View File

@@ -38,7 +38,7 @@ import org.springframework.lang.Nullable;
* {@link Properties} extension for a Redis back-store. Useful for reading (and storing) properties inside a Redis hash.
* Particularly useful inside a Spring container for hooking into Spring's property placeholder or
* {@link org.springframework.beans.factory.config.PropertiesFactoryBean}.
* <p/>
* <p>
* Note that this implementation only accepts Strings - objects of other type are not supported.
*
* @see Properties

View File

@@ -33,7 +33,7 @@ import org.springframework.data.redis.core.ZSetOperations.TypedTuple;
/**
* Redis ZSet (or sorted set (by weight)). Acts as a {@link SortedSet} based on the given priorities or weights
* associated with each item.
* <p/>
* <p>
* Since using a {@link Comparator} does not apply, a ZSet implements the {@link SortedSet} methods where applicable.
*
* @author Costin Leau

View File

@@ -1,9 +1,9 @@
/**
* Package providing implementations for most of the {@code java.util} collections on top of Redis.
* <p/>
* <p>
* For indexed collections, such as {@link java.util.List}, {@link java.util.Queue} or {@link java.util.Deque} consider
* {@link org.springframework.data.redis.support.collections.RedisList}.
* <p/>
* <p>
* For collections without duplicates the obvious candidate is
* {@link org.springframework.data.redis.support.collections.RedisSet}. Use
* {@link org.springframework.data.redis.support.collections.RedisZSet} if a certain order is required.

View File

@@ -1,6 +0,0 @@
/**
* Classes supporting the Redis packages, such as collection or atomic counters.
*/
@org.springframework.lang.NonNullApi
@org.springframework.lang.NonNullFields
package org.springframework.data.redis.support;

View File

@@ -38,7 +38,7 @@ public final class ByteUtils {
/**
* Concatenate the given {@code byte} arrays into one, with overlapping array elements included twice.
* <p />
* <p>
* The order of elements in the original arrays is preserved.
*
* @param array1 the first array.
@@ -56,7 +56,7 @@ public final class ByteUtils {
/**
* Concatenate the given {@code byte} arrays into one, with overlapping array elements included twice. Returns a new,
* empty array if {@code arrays} was empty and returns the first array if {@code arrays} contains only a single array.
* <p />
* <p>
* The order of elements in the original arrays is preserved.
*
* @param arrays the arrays.