Skip to content

Commit 98ea3ab

Browse files
committed
🎨 Sonar issues
1 parent c2ba7be commit 98ea3ab

File tree

5 files changed

+64
-69
lines changed

5 files changed

+64
-69
lines changed

src/main/kotlin/io/github/tobi/laa/spring/boot/embedded/redis/cluster/RedisClusterClient.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ import io.github.tobi.laa.spring.boot.embedded.redis.RedisClient
44
import redis.clients.jedis.JedisCluster
55
import redis.clients.jedis.Protocol
66

7-
internal class RedisClusterClient(private val jedisCluster: JedisCluster) : RedisClient {
7+
internal class RedisClusterClient(private val jedisCluster: JedisCluster) : RedisClient, AutoCloseable by jedisCluster {
88

99
override fun flushAll(): String {
1010
jedisCluster.clusterNodes.values.forEach { it.resource.sendCommand(Protocol.Command.FLUSHALL) }
1111
return ""
1212
}
1313

1414
override fun get(key: String): String = jedisCluster[key]
15-
16-
override fun close(): Unit = jedisCluster.close()
1715
}

src/main/kotlin/io/github/tobi/laa/spring/boot/embedded/redis/cluster/RedisClusterContextCustomizer.kt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import kotlin.streams.toList
2525
private const val CLUSTER_IP = "127.0.0.1"
2626

2727
internal class RedisClusterContextCustomizer(
28-
private val config: EmbeddedRedisCluster,
29-
private val portProvider: PortProvider = PortProvider()
28+
private val config: EmbeddedRedisCluster,
29+
private val portProvider: PortProvider = PortProvider()
3030
) : ContextCustomizer {
3131

3232
private val log = LoggerFactory.getLogger(javaClass)
@@ -56,9 +56,9 @@ internal class RedisClusterContextCustomizer(
5656
val shards = config.shards.map { createShard(it, ports) }
5757
val nodes = shards.map { it.second + it.first }.flatten().toList()
5858
val replicasPortsByMainNodePort =
59-
shards.associate { s -> s.first.ports().first() to s.second.map { it.ports() }.flatten().toSet() }
59+
shards.associate { s -> s.first.ports().first() to s.second.map { it.ports() }.flatten().toSet() }
6060
val cluster =
61-
RedisShardedCluster(nodes, replicasPortsByMainNodePort, Duration.ofSeconds(config.initializationTimeout))
61+
RedisShardedCluster(nodes, replicasPortsByMainNodePort, Duration.ofSeconds(config.initializationTimeout))
6262
return cluster
6363
}
6464

@@ -80,38 +80,38 @@ internal class RedisClusterContextCustomizer(
8080
}
8181

8282
private fun createShard(
83-
shard: EmbeddedRedisCluster.Shard,
84-
ports: Iterator<Int>
83+
shard: EmbeddedRedisCluster.Shard,
84+
ports: Iterator<Int>
8585
): Pair<RedisServer, List<RedisServer>> {
8686
val name = shard.name.ifEmpty { BirdNameProvider.next() }
8787

8888
val mainNodeBuilder = createNodeBuilder(ports.next())
8989
customizer.forEach { c -> c.customizeMainNode(mainNodeBuilder, config, name) }
9090

91-
val replicaBuilders = range(0, shard.replicas).mapToObj { _ -> createNodeBuilder(ports.next()) }.toList()
91+
val replicaBuilders = 1.rangeTo(shard.replicas).map { _ -> createNodeBuilder(ports.next()) }.toList()
9292
customizer.forEach { c -> c.customizeReplicas(replicaBuilders, config, name) }
9393

9494
return mainNodeBuilder.build() to replicaBuilders.map { it.build() }
9595
}
9696

9797
private fun createNodeBuilder(port: Int): RedisServerBuilder {
9898
val builder = newRedisServer()
99-
.bind(CLUSTER_IP)
100-
.port(port)
101-
.setting("cluster-enabled yes")
102-
.setting("cluster-config-file nodes-replica-$port.conf")
103-
.setting("cluster-node-timeout 5000")
104-
.setting("appendonly no")
99+
.bind(CLUSTER_IP)
100+
.port(port)
101+
.setting("cluster-enabled yes")
102+
.setting("cluster-config-file nodes-replica-$port.conf")
103+
.setting("cluster-node-timeout 5000")
104+
.setting("appendonly no")
105105
if (config.executeInDirectory.isNotEmpty()) {
106106
builder.executableProvider(newJarResourceProvider(File(config.executeInDirectory)))
107107
}
108108
return builder
109109
}
110110

111111
private fun parseAddresses(cluster: RedisShardedCluster): List<Pair<String, Int>> =
112-
cluster.servers()
113-
.map { CLUSTER_IP to it.ports().first() }
114-
.toList()
112+
cluster.servers()
113+
.map { CLUSTER_IP to it.ports().first() }
114+
.toList()
115115

116116
private fun createClient(addresses: List<Pair<String, Int>>): RedisClient {
117117
val jedisCluster = JedisCluster(addresses.map { HostAndPort(it.first, it.second) }.toSet())
@@ -120,16 +120,16 @@ internal class RedisClusterContextCustomizer(
120120

121121
private fun setSpringProperties(context: ConfigurableApplicationContext, addresses: List<Pair<String, Int>>) {
122122
TestPropertyValues.of(
123-
mapOf(
124-
"spring.data.redis.cluster.nodes" to addresses.joinToString(",") { createAddress(it.first, it.second) }
125-
)
123+
mapOf(
124+
"spring.data.redis.cluster.nodes" to addresses.joinToString(",") { createAddress(it.first, it.second) }
125+
)
126126
).applyTo(context.environment)
127127
}
128128

129129
private fun addShutdownListener(
130-
context: ConfigurableApplicationContext,
131-
cluster: RedisShardedCluster,
132-
client: RedisClient
130+
context: ConfigurableApplicationContext,
131+
cluster: RedisShardedCluster,
132+
client: RedisClient
133133
) {
134134
context.addApplicationListener { event ->
135135
if (event is ContextClosedEvent) {

src/main/kotlin/io/github/tobi/laa/spring/boot/embedded/redis/highavailability/RedisHighAvailabilityClient.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@ package io.github.tobi.laa.spring.boot.embedded.redis.highavailability
33
import io.github.tobi.laa.spring.boot.embedded.redis.RedisClient
44
import redis.clients.jedis.JedisSentinelPool
55

6-
internal class RedisHighAvailabilityClient(private val jedisSentinelPool: JedisSentinelPool) : RedisClient {
6+
internal class RedisHighAvailabilityClient(private val jedisSentinelPool: JedisSentinelPool) : RedisClient,
7+
AutoCloseable by jedisSentinelPool {
78

89
override fun flushAll(): String = jedisSentinelPool.resource.flushAll()
910

1011
override fun get(key: String): String = jedisSentinelPool.resource[key]
11-
12-
override fun close(): Unit = jedisSentinelPool.close()
1312
}

src/main/kotlin/io/github/tobi/laa/spring/boot/embedded/redis/highavailability/RedisHighAvailabilityContextCustomizer.kt

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,21 @@ private const val DEFAULT_BIND = "127.0.0.1"
3232
private const val QUORUM_SIZE = (1 / 2) + 1 // quorom size for one main node
3333

3434
internal class RedisHighAvailabilityContextCustomizer(
35-
private val config: EmbeddedRedisHighAvailability,
36-
private val portProvider: PortProvider = PortProvider()
35+
private val config: EmbeddedRedisHighAvailability,
36+
private val portProvider: PortProvider = PortProvider()
3737
) : ContextCustomizer {
3838

3939
private val log = LoggerFactory.getLogger(javaClass)
4040

4141
private val manuallySpecifiedPorts =
42-
config.ports.filter { it != 0 }.toSet() + config.sentinels.map { it.port }.filter { it != 0 }.toSet()
42+
config.ports.filter { it != 0 }.toSet() + config.sentinels.map { it.port }.filter { it != 0 }.toSet()
4343
private val name = config.name.ifEmpty { BirdNameProvider.next() }.replace(Regex("[^a-zA-Z0-9]"), "")
4444
private var nodeProvider: NodeProvider? = null
4545
private val customizer = config.customizer.map { c -> c.createInstance() }.toList()
4646
private val executableProvider = if (config.executeInDirectory.isNotEmpty()) {
4747
val osArch = detectOSandArchitecture()
4848
val resourcePath = newProvidedVersionsMap()[osArch]
49-
?: throw UnsupportedOperationException("Unsupported OS: $osArch")
49+
?: throw UnsupportedOperationException("Unsupported OS: $osArch")
5050
val executable = Path(config.executeInDirectory, resourcePath)
5151
ExecutableProvider {
5252
if (exists(executable)) {
@@ -91,9 +91,9 @@ internal class RedisHighAvailabilityContextCustomizer(
9191

9292
private fun createReplicas(mainNode: Pair<Node, RedisServer>): List<RedisServer> {
9393
val replicaBuilders =
94-
IntStream.range(0, config.replicas)
95-
.mapToObj { _ -> createReplicaBuilder(mainNode.first) }
96-
.toList()
94+
1.rangeTo(config.replicas)
95+
.map { _ -> createReplicaBuilder(mainNode.first) }
96+
.toList()
9797
customizer.forEach { c -> c.customizeReplicas(replicaBuilders, config) }
9898

9999
return replicaBuilders.map { it.build() }
@@ -103,8 +103,8 @@ internal class RedisHighAvailabilityContextCustomizer(
103103
nodeProvider = nodeProvider()
104104
val nextNode = nodeProvider!!.next()
105105
val builder = RedisServer.newRedisServer()
106-
.bind(nextNode.bind)
107-
.port(nextNode.port)
106+
.bind(nextNode.bind)
107+
.port(nextNode.port)
108108
builder.executableProvider(executableProvider)
109109
customizer.forEach { c -> c.customizeMainNode(builder, config) }
110110
val mainNode = builder.build()
@@ -115,13 +115,13 @@ internal class RedisHighAvailabilityContextCustomizer(
115115
}
116116

117117
private fun createReplicaBuilder(
118-
mainNode: Node
118+
mainNode: Node
119119
): RedisServerBuilder {
120120
val nextNode = nodeProvider!!.next()
121121
val builder = RedisServer.newRedisServer()
122-
.bind(nextNode.bind)
123-
.port(nextNode.port)
124-
.slaveOf(mainNode.bind, mainNode.port)
122+
.bind(nextNode.bind)
123+
.port(nextNode.port)
124+
.slaveOf(mainNode.bind, mainNode.port)
125125
builder.executableProvider(executableProvider)
126126
return builder
127127
}
@@ -151,54 +151,54 @@ internal class RedisHighAvailabilityContextCustomizer(
151151
}
152152

153153
private fun createSentinel(
154-
sentinelConfig: EmbeddedRedisHighAvailability.Sentinel,
155-
mainNode: Pair<Node, RedisServer>
154+
sentinelConfig: EmbeddedRedisHighAvailability.Sentinel,
155+
mainNode: Pair<Node, RedisServer>
156156
): RedisSentinel {
157157
val builder = RedisSentinel.newRedisSentinel()
158-
.bind(sentinelConfig.bind.ifEmpty { DEFAULT_BIND })
159-
.port(if (sentinelConfig.port == 0) unspecifiedUnusedPort(true) else sentinelConfig.port)
160-
.setting("sentinel monitor $name ${mainNode.first.bind} ${mainNode.first.port} $QUORUM_SIZE")
161-
.setting("sentinel down-after-milliseconds $name ${sentinelConfig.downAfterMillis}")
162-
.setting("sentinel failover-timeout $name ${sentinelConfig.failOverTimeoutMillis}")
163-
.setting("sentinel parallel-syncs $name ${sentinelConfig.parallelSyncs}")
158+
.bind(sentinelConfig.bind.ifEmpty { DEFAULT_BIND })
159+
.port(if (sentinelConfig.port == 0) unspecifiedUnusedPort(true) else sentinelConfig.port)
160+
.setting("sentinel monitor $name ${mainNode.first.bind} ${mainNode.first.port} $QUORUM_SIZE")
161+
.setting("sentinel down-after-milliseconds $name ${sentinelConfig.downAfterMillis}")
162+
.setting("sentinel failover-timeout $name ${sentinelConfig.failOverTimeoutMillis}")
163+
.setting("sentinel parallel-syncs $name ${sentinelConfig.parallelSyncs}")
164164
builder.executableProvider(executableProvider)
165165
customizer.forEach { c -> c.customizeSentinels(builder, config, sentinelConfig) }
166166
return builder.build()
167167
}
168168

169169
private fun parseSentinelAddresses(redisHighAvailability: RedisCluster): List<Pair<String, Int>> =
170-
redisHighAvailability.sentinels()
171-
.map { parseBindAddress(it) to it.ports().first() }
172-
.toList()
170+
redisHighAvailability.sentinels()
171+
.map { parseBindAddress(it) to it.ports().first() }
172+
.toList()
173173

174174
private fun createClient(sentinelAddresses: List<Pair<String, Int>>): RedisClient {
175175
val jedisSentinelPool =
176-
JedisSentinelPool(name, sentinelAddresses.map { createAddress(it.first, it.second) }.toSet())
176+
JedisSentinelPool(name, sentinelAddresses.map { createAddress(it.first, it.second) }.toSet())
177177
return RedisHighAvailabilityClient(jedisSentinelPool)
178178
}
179179

180180
private fun setSpringProperties(
181-
context: ConfigurableApplicationContext,
182-
sentinelAddresses: List<Pair<String, Int>>
181+
context: ConfigurableApplicationContext,
182+
sentinelAddresses: List<Pair<String, Int>>
183183
) {
184184
val nodes = sentinelAddresses.joinToString(",") {
185185
createAddress(
186-
it.first,
187-
it.second
186+
it.first,
187+
it.second
188188
)
189189
}
190190
TestPropertyValues.of(
191-
mapOf(
192-
"spring.data.redis.sentinel.master" to name,
193-
"spring.data.redis.sentinel.nodes" to nodes
194-
)
191+
mapOf(
192+
"spring.data.redis.sentinel.master" to name,
193+
"spring.data.redis.sentinel.nodes" to nodes
194+
)
195195
).applyTo(context.environment)
196196
}
197197

198198
private fun addShutdownListener(
199-
context: ConfigurableApplicationContext,
200-
redisHighAvailability: RedisCluster,
201-
client: RedisClient
199+
context: ConfigurableApplicationContext,
200+
redisHighAvailability: RedisCluster,
201+
client: RedisClient
202202
) {
203203
context.addApplicationListener { event ->
204204
if (event is ContextClosedEvent) {
@@ -235,8 +235,8 @@ internal class RedisHighAvailabilityContextCustomizer(
235235

236236
internal data class Node(val port: Int, val bind: String) {
237237
constructor(node: RedisServer) : this(
238-
node.ports().first(),
239-
parseBindAddress(node)
238+
node.ports().first(),
239+
parseBindAddress(node)
240240
)
241241
}
242242

src/main/kotlin/io/github/tobi/laa/spring/boot/embedded/redis/standalone/RedisStandaloneClient.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package io.github.tobi.laa.spring.boot.embedded.redis.standalone
33
import io.github.tobi.laa.spring.boot.embedded.redis.RedisClient
44
import redis.clients.jedis.JedisPooled
55

6-
internal class RedisStandaloneClient(private val jedisPooled: JedisPooled) : RedisClient {
6+
internal class RedisStandaloneClient(private val jedisPooled: JedisPooled) : RedisClient, AutoCloseable by jedisPooled {
77

88
override fun flushAll(): String = jedisPooled.flushAll()
99

1010
override fun get(key: String): String = jedisPooled[key]
11-
12-
override fun close(): Unit = jedisPooled.close()
1311
}

0 commit comments

Comments
 (0)