Skip to content

Commit a66bf10

Browse files
committed
refactor!: Introduced AbstractRedisContainer
1 parent 29e6296 commit a66bf10

17 files changed

+116
-423
lines changed
Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,31 @@
11
package com.redis.testcontainers;
22

33
import org.testcontainers.containers.GenericContainer;
4-
import org.testcontainers.containers.wait.strategy.Wait;
4+
import org.testcontainers.shaded.org.apache.commons.lang3.ClassUtils;
55
import org.testcontainers.utility.DockerImageName;
66

7-
abstract class AbstractRedisContainer<C extends AbstractRedisContainer<C>> extends GenericContainer<C>
8-
implements RedisServer {
9-
10-
public static final int REDIS_PORT = 6379;
7+
public abstract class AbstractRedisContainer<C extends AbstractRedisContainer<C>> extends GenericContainer<C> {
118

129
protected AbstractRedisContainer(final DockerImageName dockerImageName) {
13-
this(dockerImageName, REDIS_PORT);
14-
}
15-
16-
protected AbstractRedisContainer(final DockerImageName dockerImageName, int port) {
1710
super(dockerImageName);
18-
withExposedPorts(port);
19-
waitingFor(Wait.forLogMessage(".*Ready to accept connections.*\\n", 1));
2011
}
2112

2213
/**
2314
* Get Redis URI.
2415
*
2516
* @return Redis URI.
2617
*/
27-
@Override
28-
public String getRedisURI() {
29-
return RedisServer.redisURI(this);
18+
public abstract String getRedisURI();
19+
20+
public abstract boolean isCluster();
21+
22+
protected String redisURI(String host, int port) {
23+
return "redis://" + host + ":" + port;
3024
}
3125

3226
@Override
3327
public String toString() {
34-
return RedisServer.toString(this);
28+
return ClassUtils.getShortClassName(getClass());
3529
}
3630

3731
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.redis.testcontainers;
2+
3+
import org.testcontainers.containers.wait.strategy.Wait;
4+
import org.testcontainers.utility.DockerImageName;
5+
import org.testcontainers.utility.MountableFile;
6+
7+
public abstract class AbstractRedisServerContainer<C extends AbstractRedisServerContainer<C>> extends AbstractRedisContainer<C> {
8+
9+
public static final int REDIS_PORT = 6379;
10+
11+
protected AbstractRedisServerContainer(String dockerImageName) {
12+
this(DockerImageName.parse(dockerImageName));
13+
}
14+
15+
protected AbstractRedisServerContainer(final DockerImageName dockerImageName) {
16+
super(dockerImageName);
17+
addExposedPorts(REDIS_PORT);
18+
waitingFor(Wait.forLogMessage(".*Ready to accept connections.*\\n", 1));
19+
}
20+
21+
@SuppressWarnings("unchecked")
22+
public C withKeyspaceNotifications() {
23+
withCopyFileToContainer(MountableFile.forClasspathResource("redis-keyspace-notifications.conf"),
24+
"/data/redis.conf");
25+
withCommand("redis-server", "/data/redis.conf");
26+
return (C) this;
27+
}
28+
29+
/**
30+
* Get Redis URI.
31+
*
32+
* @return Redis URI.
33+
*/
34+
@Override
35+
public String getRedisURI() {
36+
return redisURI(getHost(), getFirstMappedPort());
37+
}
38+
39+
@Override
40+
public boolean isCluster() {
41+
return false;
42+
}
43+
44+
}

core/testcontainers-redis/src/main/java/com/redis/testcontainers/RedisClusterContainer.java

Lines changed: 0 additions & 142 deletions
This file was deleted.
Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,19 @@
11
package com.redis.testcontainers;
22

33
import org.testcontainers.utility.DockerImageName;
4-
import org.testcontainers.utility.MountableFile;
54

6-
public class RedisContainer extends AbstractRedisContainer<RedisContainer> {
5+
public class RedisContainer extends AbstractRedisServerContainer<RedisContainer> {
76

87
public static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("redis");
9-
public static final String DEFAULT_TAG = "6.2.6";
10-
public static final String ENV_ENABLED_SUFFIX = "REDIS";
8+
9+
public static final String DEFAULT_TAG = "latest";
1110

12-
/**
13-
* @deprecated use {@link RedisContainer(DockerImageName)} instead
14-
*/
15-
@Deprecated
16-
public RedisContainer() {
17-
this(DEFAULT_IMAGE_NAME.withTag(DEFAULT_TAG));
11+
public RedisContainer(String dockerImageName) {
12+
super(dockerImageName);
1813
}
1914

2015
public RedisContainer(final DockerImageName dockerImageName) {
2116
super(dockerImageName);
2217
}
2318

24-
/**
25-
* @deprecated use {@link RedisContainer(DockerImageName)} instead
26-
*/
27-
@Deprecated
28-
public RedisContainer(final String tag) {
29-
this(DEFAULT_IMAGE_NAME.withTag(tag));
30-
}
31-
32-
@Override
33-
public boolean isCluster() {
34-
return false;
35-
}
36-
37-
@SuppressWarnings("unchecked")
38-
public <C extends RedisContainer> C withKeyspaceNotifications() {
39-
withCopyFileToContainer(MountableFile.forClasspathResource("redis-keyspace-notifications.conf"),
40-
"/data/redis.conf");
41-
withCommand("redis-server", "/data/redis.conf");
42-
return (C) this;
43-
}
44-
45-
@Override
46-
public boolean isEnabled() {
47-
return RedisServer.isEnabled(ENV_ENABLED_SUFFIX);
48-
}
49-
5019
}

0 commit comments

Comments
 (0)