Skip to content

Commit 639607b

Browse files
authored
Merge pull request #662 from AVSystem/deprecate-redis
Deprecate commons-redis
2 parents 6dce0ab + 686ebe9 commit 639607b

File tree

10 files changed

+32
-57
lines changed

10 files changed

+32
-57
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ on:
1616

1717
env:
1818
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19-
REDIS_VERSION: 6.2.12
2019

2120
jobs:
2221
build:
@@ -52,12 +51,6 @@ jobs:
5251
- name: Setup sbt
5352
uses: sbt/setup-sbt@v1
5453

55-
- name: Cache Redis
56-
uses: actions/cache@v2
57-
with:
58-
path: ./redis-${{ env.REDIS_VERSION }}
59-
key: ${{ runner.os }}-redis-cache-v2-${{ env.REDIS_VERSION }}
60-
6154
- name: Setup Node.js
6255
uses: actions/setup-node@v2
6356
with:
@@ -69,9 +62,6 @@ jobs:
6962
mongodb-version: 7.0
7063
mongodb-replica-set: test-rs
7164

72-
- name: Setup Redis
73-
run: ./install-redis.sh
74-
7565
- name: Check that workflows are up to date
7666
run: sbt '++ ${{ matrix.scala }}' githubWorkflowCheck
7767

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
[`OptRef`](http://avsystem.github.io/scala-commons/api/com/avsystem/commons/misc/OptRef.html) (implemented as value
3434
classes)
3535
* [Components](docs/Components.md) and Dependency Injection library
36-
* `commons-redis` - [Scala driver for Redis](docs/RedisDriver.md)
36+
* `commons-redis` (DEPRECATED) - [Scala driver for Redis](docs/RedisDriver.md)
3737
* `commons-macros` contains implementations of macros used in other modules and reusable macro utilities:
3838
* `MacroCommons` trait with several convenience functions for implementing macros
3939
* `TypeClassDerivation` - implements infrastructure for automatic type class derivation

docs/RedisDriver.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Redis driver
22

3+
**⚠️ WARNING: This module is deprecated and scheduled for removal in a future release.
4+
It has not been actively tested since v2.21.0. Please migrate to an alternative solution. **
5+
36
`commons-redis` - Scala driver for Redis
47

58
```scala

install-redis.sh

Lines changed: 0 additions & 9 deletions
This file was deleted.

project/Commons.scala

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,9 @@ object Commons extends ProjectGroup("commons") {
7373

7474
githubWorkflowTargetTags ++= Seq("v*"),
7575

76-
githubWorkflowEnv ++= Map(
77-
"REDIS_VERSION" -> "6.2.12",
78-
),
7976
githubWorkflowArtifactUpload := false,
8077
githubWorkflowJavaVersions := Seq(JavaSpec.temurin("17"), JavaSpec.temurin("21")),
8178
githubWorkflowBuildPreamble ++= Seq(
82-
WorkflowStep.Use(
83-
UseRef.Public("actions", "cache", "v2"),
84-
name = Some("Cache Redis"),
85-
params = Map(
86-
"path" -> "./redis-${{ env.REDIS_VERSION }}",
87-
"key" -> "${{ runner.os }}-redis-cache-v2-${{ env.REDIS_VERSION }}"
88-
)
89-
),
9079
WorkflowStep.Use(
9180
UseRef.Public("actions", "setup-node", "v2"),
9281
name = Some("Setup Node.js"),
@@ -100,10 +89,6 @@ object Commons extends ProjectGroup("commons") {
10089
"mongodb-replica-set" -> "test-rs",
10190
)
10291
),
103-
WorkflowStep.Run(
104-
List("./install-redis.sh"),
105-
name = Some("Setup Redis"),
106-
)
10792
),
10893

10994
githubWorkflowPublishTargetBranches := Seq(RefPredicate.StartsWith(Ref.Tag("v"))),
@@ -337,6 +322,8 @@ object Commons extends ProjectGroup("commons") {
337322
"io.monix" %% "monix" % monixVersion,
338323
),
339324
Test / parallelExecution := false,
325+
Compile / scalacOptions += "-Wconf:cat=deprecation:is", // only inform about deprecations due to scheduled removal
326+
Test / skip := true,
340327
)
341328

342329
lazy val hocon = mkSubProject

redis/src/main/scala/com/avsystem/commons/redis/RedisClusterClient.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.avsystem.commons
22
package redis
33

4-
import org.apache.pekko.actor.{ActorSystem, Props}
5-
import org.apache.pekko.pattern.ask
6-
import org.apache.pekko.util.Timeout
74
import com.avsystem.commons.concurrent.RetryStrategy
85
import com.avsystem.commons.redis.RawCommand.Level
96
import com.avsystem.commons.redis.RedisClusterClient.{AskingPack, CollectionPacks}
@@ -12,16 +9,19 @@ import com.avsystem.commons.redis.actor.ClusterMonitoringActor.{GetClient, GetCl
129
import com.avsystem.commons.redis.actor.RedisConnectionActor.PacksResult
1310
import com.avsystem.commons.redis.commands.{Asking, SlotRange}
1411
import com.avsystem.commons.redis.config.{ClusterConfig, ExecutionConfig}
15-
import com.avsystem.commons.redis.exception._
12+
import com.avsystem.commons.redis.exception.*
1613
import com.avsystem.commons.redis.monitoring.ClusterStateObserver
17-
import com.avsystem.commons.redis.protocol._
14+
import com.avsystem.commons.redis.protocol.*
1815
import com.avsystem.commons.redis.util.DelayedFuture
16+
import org.apache.pekko.actor.{ActorSystem, Props}
17+
import org.apache.pekko.pattern.ask
18+
import org.apache.pekko.util.Timeout
1919

2020
import java.util.concurrent.atomic.AtomicInteger
2121
import scala.annotation.tailrec
2222
import scala.collection.mutable
2323
import scala.collection.mutable.ArrayBuffer
24-
import scala.concurrent.duration._
24+
import scala.concurrent.duration.*
2525

2626
/**
2727
* Redis client implementation for Redis Cluster deployments. Internally, it uses single [[RedisNodeClient]] instance
@@ -45,6 +45,7 @@ import scala.concurrent.duration._
4545
* @param config client configuration - [[ClusterConfig]]
4646
* @param clusterStateObserver optional observer for monitoring client's state and connections - [[ClusterStateObserver]]
4747
*/
48+
@deprecated("Redis driver is scheduled for removal. It has not been actively tested since v2.21.0. Use a different library, e.g. redisson.", "2.21.0")
4849
final class RedisClusterClient(
4950
val seedNodes: Seq[NodeAddress] = List(NodeAddress.Default),
5051
val config: ClusterConfig = ClusterConfig(),

redis/src/main/scala/com/avsystem/commons/redis/RedisConnectionClient.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.avsystem.commons
22
package redis
33

4-
import org.apache.pekko.actor.{ActorSystem, Props}
5-
import org.apache.pekko.pattern.ask
64
import com.avsystem.commons.concurrent.RetryStrategy
75
import com.avsystem.commons.redis.RawCommand.Level
86
import com.avsystem.commons.redis.actor.RedisConnectionActor.PacksResult
97
import com.avsystem.commons.redis.actor.RedisOperationActor.OpResult
108
import com.avsystem.commons.redis.actor.{RedisConnectionActor, RedisOperationActor}
119
import com.avsystem.commons.redis.config.{ConfigDefaults, ConnectionConfig, ExecutionConfig}
1210
import com.avsystem.commons.redis.exception.ClientStoppedException
11+
import org.apache.pekko.actor.{ActorSystem, Props}
12+
import org.apache.pekko.pattern.ask
1313

1414
/**
1515
* Redis client that uses a single, non-reconnectable connection.
@@ -24,6 +24,7 @@ import com.avsystem.commons.redis.exception.ClientStoppedException
2424
* If you simply need a single-connection, reconnectable client, use [[RedisNodeClient]] with connection pool size
2525
* configured to 1.
2626
*/
27+
@deprecated("Redis driver is scheduled for removal. It has not been actively tested since v2.21.0. Use a different library, e.g. redisson.", "2.21.0")
2728
final class RedisConnectionClient(
2829
val address: NodeAddress = NodeAddress.Default,
2930
val config: ConnectionConfig = ConnectionConfig(),

redis/src/main/scala/com/avsystem/commons/redis/RedisExecutor.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.avsystem.commons
22
package redis
33

4-
import java.io.Closeable
5-
64
import com.avsystem.commons.redis.config.ExecutionConfig
75

6+
import java.io.Closeable
7+
88
/**
99
* Base trait for Redis clients with ability to execute [[RedisBatch]]es.
1010
*/
@@ -54,6 +54,7 @@ trait RedisNodeExecutor extends RedisKeyedExecutor with RedisOpExecutor
5454
*/
5555
trait RedisConnectionExecutor extends RedisNodeExecutor
5656

57+
@deprecated("Redis driver is scheduled for removal. It has not been actively tested since v2.21.0. Use a different library, e.g. redisson.", "2.21.0")
5758
abstract class RedisClient extends RedisExecutor with Closeable {
5859
def initialized: Future[this.type]
5960
}

redis/src/main/scala/com/avsystem/commons/redis/RedisNodeClient.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
package com.avsystem.commons
22
package redis
33

4-
import java.util.concurrent.ConcurrentLinkedDeque
5-
import java.util.concurrent.atomic.AtomicLong
6-
7-
import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem, Props}
8-
import org.apache.pekko.pattern.ask
9-
import org.apache.pekko.util.Timeout
104
import com.avsystem.commons.concurrent.RunInQueueEC
115
import com.avsystem.commons.redis.actor.ConnectionPoolActor.QueuedConn
126
import com.avsystem.commons.redis.actor.RedisConnectionActor.PacksResult
137
import com.avsystem.commons.redis.actor.RedisOperationActor.OpResult
148
import com.avsystem.commons.redis.actor.{ConnectionPoolActor, RedisConnectionActor, RedisOperationActor}
159
import com.avsystem.commons.redis.config.{ConfigDefaults, ConnectionConfig, ExecutionConfig, NodeConfig}
1610
import com.avsystem.commons.redis.exception.{ClientStoppedException, NodeInitializationFailure, NodeRemovedException, TooManyConnectionsException}
11+
import org.apache.pekko.actor.{Actor, ActorRef, ActorSystem, Props}
12+
import org.apache.pekko.pattern.ask
13+
import org.apache.pekko.util.Timeout
1714

15+
import java.util.concurrent.ConcurrentLinkedDeque
16+
import java.util.concurrent.atomic.AtomicLong
1817
import scala.collection.mutable.ArrayBuffer
19-
import scala.concurrent.duration._
18+
import scala.concurrent.duration.*
2019

2120
/**
2221
* Redis client implementation for a single Redis node using a connection pool. Connection pool size is constant
2322
* and batches and operations are distributed over connections using round-robin scheme. Connections are automatically
2423
* reconnected upon failure (possibly with an appropriate delay, see [[config.NodeConfig NodeConfig]] for details).
2524
*/
25+
@deprecated("Redis driver is scheduled for removal. It has not been actively tested since v2.21.0. Use a different library, e.g. redisson.", "2.21.0")
2626
final class RedisNodeClient(
2727
val address: NodeAddress = NodeAddress.Default,
2828
val config: NodeConfig = NodeConfig(),

redis/src/main/scala/com/avsystem/commons/redis/config/config.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package com.avsystem.commons
22
package redis.config
33

4-
import java.net.InetSocketAddress
5-
import org.apache.pekko.io.Inet
6-
import org.apache.pekko.util.Timeout
74
import com.avsystem.commons.concurrent.RetryStrategy
8-
import com.avsystem.commons.concurrent.RetryStrategy._
5+
import com.avsystem.commons.concurrent.RetryStrategy.*
96
import com.avsystem.commons.redis.actor.RedisConnectionActor.{DebugListener, DevNullListener}
107
import com.avsystem.commons.redis.{NodeAddress, RedisBatch, RedisOp}
8+
import org.apache.pekko.io.Inet
9+
import org.apache.pekko.util.Timeout
1110

11+
import java.net.InetSocketAddress
1212
import javax.net.ssl.SSLEngine
13-
import scala.concurrent.duration._
13+
import scala.concurrent.duration.*
1414

1515
/**
1616
* Configuration of a [[com.avsystem.commons.redis.RedisClusterClient RedisClusterClient]]
@@ -161,6 +161,7 @@ case class NodeConfig(
161161
* @param debugListener listener for traffic going through this connection. Only for debugging and testing
162162
* purposes
163163
*/
164+
@deprecated("Redis driver is scheduled for removal. It has not been actively tested since v2.21.0. Use a different library, e.g. redisson.", "2.21.0")
164165
case class ConnectionConfig(
165166
initCommands: RedisBatch[Any] = RedisBatch.unit,
166167
sslEngineCreator: OptArg[() => SSLEngine] = OptArg.Empty,

0 commit comments

Comments
 (0)