Skip to content

Commit 1685403

Browse files
author
Thomas Heslin
committed
Added extension method for filtering servers down to EmbeddedK or EmbeddedZ.
1 parent 4c41672 commit 1685403

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

embedded-kafka/src/main/scala/net/manub/embeddedkafka/EmbeddedKafka.scala

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@ object EmbeddedKafka extends EmbeddedKafkaSupport {
9797
* Stops all in memory Zookeeper instances, preserving the logs directories.
9898
*/
9999
def stopZooKeeper(): Unit = {
100-
val factories = servers
101-
.filter(_.isInstanceOf[EmbeddedZ])
102-
.asInstanceOf[Seq[EmbeddedZ]]
100+
val factories = servers.toFilteredSeq[EmbeddedZ](isEmbeddedZ)
103101

104102
factories
105103
.foreach(_.stop(false))
@@ -111,9 +109,7 @@ object EmbeddedKafka extends EmbeddedKafkaSupport {
111109
* Stops all in memory Kafka instances, preserving the logs directories.
112110
*/
113111
def stopKafka(): Unit = {
114-
val brokers = servers
115-
.filter(_.isInstanceOf[EmbeddedK])
116-
.asInstanceOf[Seq[EmbeddedK]]
112+
val brokers = servers.toFilteredSeq[EmbeddedK](isEmbeddedK)
117113

118114
brokers
119115
.foreach(_.stop(false))
@@ -122,13 +118,17 @@ object EmbeddedKafka extends EmbeddedKafkaSupport {
122118
}
123119

124120
/**
125-
* Returns whether the in memory Kafka and Zookeeper are running.
121+
* Returns whether the in memory Kafka and Zookeeper are both running.
126122
*/
127-
def isRunning: Boolean =
128-
servers
129-
.filter(_.isInstanceOf[EmbeddedK])
130-
.asInstanceOf[Seq[EmbeddedK]]
131-
.exists(_.factory.isDefined)
123+
def isRunning: Boolean = servers.toFilteredSeq[EmbeddedK](isEmbeddedK).exists(_.factory.isDefined)
124+
125+
private def isEmbeddedK(server: EmbeddedServer): Boolean = server.isInstanceOf[EmbeddedK]
126+
private def isEmbeddedZ(server: EmbeddedServer): Boolean = server.isInstanceOf[EmbeddedZ]
127+
128+
implicit class ServerOps(servers: Seq[EmbeddedServer]) {
129+
def toFilteredSeq[T <: EmbeddedServer](filter: EmbeddedServer => Boolean): Seq[T] =
130+
servers.filter(filter).asInstanceOf[Seq[T]]
131+
}
132132
}
133133

134134
sealed trait EmbeddedKafkaSupport {

0 commit comments

Comments
 (0)