@@ -4,22 +4,27 @@ import org.apache.commons.lang3.StringUtils
44import org.neo4j.kernel.configuration.Config
55
66
7- private const val streamsConfigPrefix = " streams."
8- private const val streamsSinkTopicPrefix = " sink.topic.cypher."
7+ private object StreamsSinkConfigurationConstants {
8+ const val STREAMS_CONFIG_PREFIX : String = " streams."
9+ const val STREAMS_SINK_TOPIC_CYPHER_PREFIX : String = " sink.topic.cypher."
10+ const val ENABLED = " sink.enabled"
11+ }
912
10- data class StreamsSinkConfiguration (val sinkPollingInterval : Long = Long .MAX_VALUE ,
13+ data class StreamsSinkConfiguration (val enabled : Boolean = true ,
14+ val sinkPollingInterval : Long = Long .MAX_VALUE ,
1115 val topics : Map <String , String > = emptyMap()) {
1216
1317 companion object {
1418 fun from (cfg : Config ): StreamsSinkConfiguration {
1519 val default = StreamsSinkConfiguration ()
1620 val config = cfg.raw
17- .filterKeys { it.startsWith(streamsConfigPrefix ) }
18- .mapKeys { it.key.substring(streamsConfigPrefix .length) }
21+ .filterKeys { it.startsWith(StreamsSinkConfigurationConstants . STREAMS_CONFIG_PREFIX ) }
22+ .mapKeys { it.key.substring(StreamsSinkConfigurationConstants . STREAMS_CONFIG_PREFIX .length) }
1923 val topics = config
20- .filterKeys { it.startsWith(streamsSinkTopicPrefix) }
21- .mapKeys { it.key.replace(streamsSinkTopicPrefix, StringUtils .EMPTY ) }
22- return default.copy(sinkPollingInterval = config.getOrDefault(" sink.polling.interval" , default.sinkPollingInterval).toString().toLong(),
24+ .filterKeys { it.startsWith(StreamsSinkConfigurationConstants .STREAMS_SINK_TOPIC_CYPHER_PREFIX ) }
25+ .mapKeys { it.key.replace(StreamsSinkConfigurationConstants .STREAMS_SINK_TOPIC_CYPHER_PREFIX , StringUtils .EMPTY ) }
26+ return default.copy(enabled = config.getOrDefault(StreamsSinkConfigurationConstants .ENABLED , default.enabled).toString().toBoolean(),
27+ sinkPollingInterval = config.getOrDefault(" sink.polling.interval" , default.sinkPollingInterval).toString().toLong(),
2328 topics = topics)
2429 }
2530 }
0 commit comments