1
1
package com .dimafeng .testcontainers
2
2
3
3
import org .testcontainers .containers .{KafkaContainer => JavaKafkaContainer }
4
+ import org .testcontainers .utility .DockerImageName
4
5
5
- class KafkaContainer (confluentPlatformVersion : Option [ String ] = None ,
6
- externalZookeeper : Option [ String ] = None ) extends SingleContainer [JavaKafkaContainer ] {
6
+ case class KafkaContainer (dockerImageName : DockerImageName = DockerImageName .parse( KafkaContainer .defaultDockerImageName)
7
+ ) extends SingleContainer [JavaKafkaContainer ] {
7
8
8
- @ deprecated(" Please use reflective methods of the scala container or `configure` method" )
9
- val kafkaContainer : JavaKafkaContainer = {
10
- if (confluentPlatformVersion.isEmpty) {
11
- new JavaKafkaContainer ()
12
- } else {
13
- new JavaKafkaContainer (confluentPlatformVersion.get)
14
- }
15
- }
16
-
17
- if (externalZookeeper.isEmpty) {
18
- kafkaContainer.withEmbeddedZookeeper()
19
- } else {
20
- kafkaContainer.withExternalZookeeper(externalZookeeper.get)
21
- }
22
-
23
- override val container : JavaKafkaContainer = kafkaContainer
9
+ override val container : JavaKafkaContainer = new JavaKafkaContainer (dockerImageName)
24
10
25
11
def bootstrapServers : String = container.getBootstrapServers
26
12
}
27
13
28
14
object KafkaContainer {
29
15
16
+ val defaultImage = " confluentinc/cp-kafka"
30
17
val defaultTag = " 5.2.1"
18
+ val defaultDockerImageName = s " $defaultImage: $defaultTag"
31
19
32
- def apply (confluentPlatformVersion : String = null ,
33
- externalZookeeper : String = null ): KafkaContainer = {
34
- new KafkaContainer (Option (confluentPlatformVersion), Option (externalZookeeper))
35
- }
36
-
37
- case class Def (
38
- confluentPlatformVersion : String = defaultTag,
39
- externalZookeeper : Option [String ] = None
40
- ) extends ContainerDef {
20
+ case class Def (dockerImageName : DockerImageName = DockerImageName .parse(KafkaContainer .defaultDockerImageName)
21
+ ) extends ContainerDef {
41
22
42
23
override type Container = KafkaContainer
43
24
44
25
override def createContainer (): KafkaContainer = {
45
- new KafkaContainer (
46
- confluentPlatformVersion = Some (confluentPlatformVersion),
47
- externalZookeeper = externalZookeeper
48
- )
26
+ new KafkaContainer (dockerImageName)
49
27
}
50
28
}
51
- }
29
+ }
0 commit comments