From 48b1e62e2241db42b787ab192cdd695f6ac64601 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Fri, 4 Apr 2025 17:31:50 +0200 Subject: [PATCH] feat: remove obsolete config params (#101) --- README.md | 12 ++---- .../processor/config/AppConfigurationTest.kt | 38 +------------------ .../processor/config/AppConfigProperties.kt | 18 +-------- .../etl/processor/config/AppConfiguration.kt | 14 ------- .../processor/config/AppKafkaConfiguration.kt | 4 +- .../processor/output/KafkaMtbFileSender.kt | 6 +-- 6 files changed, 12 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index d966358..dd465c1 100644 --- a/README.md +++ b/README.md @@ -66,13 +66,11 @@ Ist diese nicht gesetzt. wird intern eine Anonymisierung der Patienten-ID vorgen * `APP_PSEUDONYMIZE_PREFIX`: Standortbezogenes Präfix - `UNKNOWN`, wenn nicht gesetzt * `APP_PSEUDONYMIZE_GENERATOR`: `BUILDIN` oder `GPAS` - `BUILDIN`, wenn nicht gesetzt -**Hinweise**: +**Hinweis** -* Der alte Konfigurationsparameter `APP_PSEUDONYMIZER` mit den Werten `GPAS` oder `BUILDIN` sollte nicht mehr verwendet - werden. -* Die Pseudonymisierung erfolgt im ETL-Prozessor nur für die Patienten-ID. - Andere IDs werden mithilfe des standortbezogenen Präfixes (erneut) anonymisiert, um für den aktuellen Kontext nicht - vergleichbare IDs bereitzustellen. +Die Pseudonymisierung erfolgt im ETL-Prozessor nur für die Patienten-ID. +Andere IDs werden mithilfe des standortbezogenen Präfixes (erneut) anonymisiert, um für den aktuellen Kontext nicht +vergleichbare IDs bereitzustellen. #### Eingebaute Anonymisierung @@ -217,9 +215,7 @@ Folgende Umgebungsvariablen müssen gesetzt sein, damit ein bwHC-MTB-File an DNP Folgende Umgebungsvariablen müssen gesetzt sein, damit ein bwHC-MTB-File an ein Kafka-Topic übermittelt wird: * `APP_KAFKA_OUTPUT_TOPIC`: Zu verwendendes Topic zum Versenden von Anfragen. - Ersetzt ~~`APP_KAFKA_TOPIC`~~, **welches nach Version 0.10 entfernt wird**. * `APP_KAFKA_OUTPUT_RESPONSE_TOPIC`: Topic mit Antworten über den Erfolg des Versendens. Standardwert: `APP_KAFKA_TOPIC` mit Anhang "_response". - Ersetzt ~~`APP_KAFKA_RESPONSE_TOPIC`~~, **welches nach Version 0.10 entfernt wird**. * `APP_KAFKA_GROUP_ID`: Kafka GroupID des Consumers. Standardwert: `APP_KAFKA_TOPIC` mit Anhang "_group". * `APP_KAFKA_SERVERS`: Zu verwendende Kafka-Bootstrap-Server als kommagetrennte Liste diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt index af62bf3..39a0997 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt @@ -182,40 +182,7 @@ class AppConfigurationTest { @Nested @TestPropertySource( properties = [ - "app.pseudonymize.generator=", - "app.pseudonymizer=buildin", - ] - ) - inner class AppConfigurationPseudonymizerBuildinTest(private val context: ApplicationContext) { - - @Test - fun shouldUseConfiguredGenerator() { - assertThat(context.getBean(AnonymizingGenerator::class.java)).isNotNull - } - - } - - @Nested - @TestPropertySource( - properties = [ - "app.pseudonymize.generator=", - "app.pseudonymizer=gpas", - ] - ) - inner class AppConfigurationPseudonymizerGpasTest(private val context: ApplicationContext) { - - @Test - fun shouldUseConfiguredGenerator() { - assertThat(context.getBean(GpasPseudonymGenerator::class.java)).isNotNull - } - - } - - @Nested - @TestPropertySource( - properties = [ - "app.pseudonymize.generator=buildin", - "app.pseudonymizer=", + "app.pseudonymize.generator=buildin" ] ) inner class AppConfigurationPseudonymizeGeneratorBuildinTest(private val context: ApplicationContext) { @@ -230,8 +197,7 @@ class AppConfigurationTest { @Nested @TestPropertySource( properties = [ - "app.pseudonymize.generator=gpas", - "app.pseudonymizer=", + "app.pseudonymize.generator=gpas" ] ) inner class AppConfigurationPseudonymizeGeneratorGpasTest(private val context: ApplicationContext) { diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt index 7a077c3..331c8b5 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfigProperties.kt @@ -21,16 +21,10 @@ package dev.dnpm.etl.processor.config import dev.dnpm.etl.processor.security.Role import org.springframework.boot.context.properties.ConfigurationProperties -import org.springframework.boot.context.properties.DeprecatedConfigurationProperty @ConfigurationProperties(AppConfigProperties.NAME) data class AppConfigProperties( var bwhcUri: String?, - @get:DeprecatedConfigurationProperty( - reason = "Deprecated in favor of 'app.pseudonymize.generator'", - replacement = "app.pseudonymize.generator" - ) - var pseudonymizer: PseudonymGenerator = PseudonymGenerator.BUILDIN, var transformations: List = listOf(), var maxRetryAttempts: Int = 3, var duplicationDetection: Boolean = true @@ -78,18 +72,8 @@ data class RestTargetProperties( data class KafkaProperties( val inputTopic: String?, val outputTopic: String = "etl-processor", - @get:DeprecatedConfigurationProperty( - reason = "Deprecated", - replacement = "outputTopic" - ) - val topic: String = outputTopic, val outputResponseTopic: String = "${outputTopic}_response", - @get:DeprecatedConfigurationProperty( - reason = "Deprecated", - replacement = "outputResponseTopic" - ) - val responseTopic: String = outputResponseTopic, - val groupId: String = "${topic}_group", + val groupId: String = "${outputTopic}_group", val servers: String = "" ) { companion object { diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt index 9002d15..c8f3fba 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt @@ -85,20 +85,6 @@ class AppConfiguration { return AnonymizingGenerator() } - @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "GPAS") - @ConditionalOnMissingBean - @Bean - fun gpasPseudonymGeneratorOnDeprecatedProperty(configProperties: GPasConfigProperties, retryTemplate: RetryTemplate, restTemplate: RestTemplate): Generator { - return GpasPseudonymGenerator(configProperties, retryTemplate, restTemplate) - } - - @ConditionalOnProperty(value = ["app.pseudonymizer"], havingValue = "BUILDIN") - @ConditionalOnMissingBean - @Bean - fun buildinPseudonymGeneratorOnDeprecatedProperty(): Generator { - return AnonymizingGenerator() - } - @Bean fun pseudonymizeService( generator: Generator, diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppKafkaConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppKafkaConfiguration.kt index 80c66d2..de11cbb 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppKafkaConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppKafkaConfiguration.kt @@ -1,7 +1,7 @@ /* * This file is part of ETL-Processor * - * Copyright (c) 2024 Comprehensive Cancer Center Mainfranken, Datenintegrationszentrum Philipps-Universität Marburg and Contributors + * Copyright (c) 2025 Comprehensive Cancer Center Mainfranken, Datenintegrationszentrum Philipps-Universität Marburg and Contributors * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published @@ -71,7 +71,7 @@ class AppKafkaConfiguration { kafkaProperties: KafkaProperties, kafkaResponseProcessor: KafkaResponseProcessor ): KafkaMessageListenerContainer { - val containerProperties = ContainerProperties(kafkaProperties.responseTopic) + val containerProperties = ContainerProperties(kafkaProperties.outputResponseTopic) containerProperties.messageListener = kafkaResponseProcessor return KafkaMessageListenerContainer(consumerFactory, containerProperties) } diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt index 4838689..6391e99 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt @@ -42,7 +42,7 @@ class KafkaMtbFileSender( return try { return retryTemplate.execute { val result = kafkaTemplate.send( - kafkaProperties.topic, + kafkaProperties.outputTopic, key(request), objectMapper.writeValueAsString(Data(request.requestId, request.mtbFile)) ) @@ -72,7 +72,7 @@ class KafkaMtbFileSender( return try { return retryTemplate.execute { val result = kafkaTemplate.send( - kafkaProperties.topic, + kafkaProperties.outputTopic, key(request), objectMapper.writeValueAsString(Data(request.requestId, dummyMtbFile)) ) @@ -91,7 +91,7 @@ class KafkaMtbFileSender( } override fun endpoint(): String { - return "${this.kafkaProperties.servers} (${this.kafkaProperties.topic}/${this.kafkaProperties.responseTopic})" + return "${this.kafkaProperties.servers} (${this.kafkaProperties.outputTopic}/${this.kafkaProperties.outputResponseTopic})" } private fun key(request: MtbFileSender.MtbFileRequest): String {