From f245f14291248f4aa9af9b23403000c7028a14c2 Mon Sep 17 00:00:00 2001 From: Brage Date: Wed, 19 Jul 2023 03:02:52 +0200 Subject: [PATCH] Lib update test --- Reader/build.gradle.kts | 2 +- Reader/settings.gradle.kts | 1 + .../content/reader/streams/StreamsReader.kt | 89 +++++++++---------- 3 files changed, 42 insertions(+), 50 deletions(-) diff --git a/Reader/build.gradle.kts b/Reader/build.gradle.kts index 111e86df..46867666 100644 --- a/Reader/build.gradle.kts +++ b/Reader/build.gradle.kts @@ -23,7 +23,7 @@ repositories { } dependencies { - implementation("no.iktdev.streamit.library:streamit-library-kafka:0.0.2-alpha23") + implementation("no.iktdev.streamit.library:streamit-library-kafka:0.0.2-alpha26") implementation("no.iktdev:exfl:0.0.4-SNAPSHOT") implementation("com.github.pgreze:kotlin-process:1.3.1") diff --git a/Reader/settings.gradle.kts b/Reader/settings.gradle.kts index db9bf9a3..b01a11b8 100644 --- a/Reader/settings.gradle.kts +++ b/Reader/settings.gradle.kts @@ -3,3 +3,4 @@ rootProject.name = "Reader" include(":CommonCode") project(":CommonCode").projectDir = File("../CommonCode") +include(":streamit-library-kafka") \ No newline at end of file diff --git a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/streams/StreamsReader.kt b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/streams/StreamsReader.kt index 8664fc32..8b1f6110 100644 --- a/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/streams/StreamsReader.kt +++ b/Reader/src/main/kotlin/no/iktdev/streamit/content/reader/streams/StreamsReader.kt @@ -29,58 +29,49 @@ class StreamsReader { init { - val listener = StreamReaderListener(CommonConfig.kafkaTopic, defaultConsumer, listOf(EVENT_READER_RECEIVED_FILE.event)) - listener.listen() - - /*object: EventMessageListener(CommonConfig.kafkaTopic, defaultConsumer, listOf(EVENT_READER_RECEIVED_FILE.event)) { + object: SimpleMessageListener(CommonConfig.kafkaTopic, defaultConsumer, listOf(EVENT_READER_RECEIVED_FILE.event)) { override fun onMessage(data: ConsumerRecord) { + logger.info { "RECORD: ${data.key()}" } + logger.info { "Active filters: ${this.accepts.joinToString(",") }}" } + if (data.value().status.statusType != StatusType.SUCCESS) { + logger.info { "Ignoring event: ${data.key()} as status is not Success!" } + return + } + val dataValue = data.value().dataAs(FileWatcher.FileResult::class.java) + if (dataValue == null) { + logger.info { "Ignoring event: ${data.key()} as values is not of expected type!" } + return + } + logger.info { "Preparing Probe for ${dataValue.file}" } + val output = mutableListOf() + val d = Daemon(executable = ReaderEnv.ffprobe, parameters = listOf("-v", "quiet", "-print_format", "json", "-show_streams", dataValue.file), daemonInterface = object: + IDaemon { + override fun onOutputChanged(line: String) { + output.add(line) + } + + override fun onStarted() { + logger.info { "Probe started for ${dataValue.file}" } + } + + override fun onError() { + logger.error { "An error occurred for ${dataValue.file}" } + } + + override fun onEnded() { + logger.info { "Probe ended for ${dataValue.file}" } + } + + }) + val resultCode = runBlocking { + d.run() + } + + val message = Message(status = Status( statusType = if (resultCode == 0) StatusType.SUCCESS else StatusType.ERROR), data = output.joinToString("\n")) + messageProducer.sendMessage(KnownEvents.EVENT_READER_RECEIVED_STREAMS.event, message) } - }.listen()*/ + }.listen() } - inner class StreamReaderListener(topic: String, consumer: DefaultConsumer, accepts: List): SimpleMessageListener(topic = topic, consumer = consumer, accepts = accepts) { - override fun onMessage(data: ConsumerRecord) { - logger.info { "RECORD: ${data.key()}" } - logger.info { "Active filters: ${this.accepts.joinToString(",") }}" } - if (data.value().status.statusType != StatusType.SUCCESS) { - logger.info { "Ignoring event: ${data.key()} as status is not Success!" } - return - } - val dataValue = data.value().dataAs(FileWatcher.FileResult::class.java) - - if (dataValue == null) { - logger.info { "Ignoring event: ${data.key()} as values is not of expected type!" } - return - } - logger.info { "Preparing Probe for ${dataValue.file}" } - val output = mutableListOf() - val d = Daemon(executable = ReaderEnv.ffprobe, parameters = listOf("-v", "quiet", "-print_format", "json", "-show_streams", dataValue.file), daemonInterface = object: - IDaemon { - override fun onOutputChanged(line: String) { - output.add(line) - } - - override fun onStarted() { - logger.info { "Probe started for ${dataValue.file}" } - } - - override fun onError() { - logger.error { "An error occurred for ${dataValue.file}" } - } - - override fun onEnded() { - logger.info { "Probe ended for ${dataValue.file}" } - } - - }) - val resultCode = runBlocking { - d.run() - } - - val message = Message(status = Status( statusType = if (resultCode == 0) StatusType.SUCCESS else StatusType.ERROR), data = output.joinToString("\n")) - messageProducer.sendMessage(KnownEvents.EVENT_READER_RECEIVED_STREAMS.event, message) - } - - } } \ No newline at end of file