From c2434b9be6c8befbaa964ecfbade22b4ae98ef32 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Tue, 3 Feb 2026 10:50:03 +0100 Subject: [PATCH] Fix duplicate bean exceptions after spring-boot 3.2 update - spring-boot 3.2 seems to be stricter as to how beans may be declared - to avoid DuplicateBeanExceptions, @Component and @Service annotations are removed from some classes in favor of solely relying on their @Bean declarations in @Configuration classes Issue-ID: AAI-4223 Change-Id: I4bb53680bc86f4ff34a6c32d9273c69b34f5ba1d Signed-off-by: Fiete Ostkamp --- aai-core/src/main/java/org/onap/aai/kafka/DeltaProducer.java | 2 -- .../src/main/java/org/onap/aai/kafka/DeltaProducerService.java | 2 -- .../src/main/java/org/onap/aai/kafka/NotificationProducer.java | 2 -- .../main/java/org/onap/aai/kafka/NotificationProducerService.java | 2 -- .../src/main/java/org/onap/aai/config/ConfigConfiguration.java | 4 +++- .../src/main/java/org/onap/aai/setup/SchemaConfigVersions.java | 7 ------- 6 files changed, 3 insertions(+), 16 deletions(-) diff --git a/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducer.java b/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducer.java index d1b74fd2..0ae9d788 100644 --- a/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducer.java +++ b/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducer.java @@ -21,9 +21,7 @@ package org.onap.aai.kafka; import org.onap.aai.domain.deltaEvent.DeltaEvent; -import org.springframework.stereotype.Service; -@Service public interface DeltaProducer { public void sendNotification(DeltaEvent notificationEvent); } diff --git a/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducerService.java b/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducerService.java index c84391fb..be5632b5 100644 --- a/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducerService.java +++ b/aai-core/src/main/java/org/onap/aai/kafka/DeltaProducerService.java @@ -23,11 +23,9 @@ package org.onap.aai.kafka; import org.onap.aai.domain.deltaEvent.DeltaEvent; import org.springframework.beans.factory.annotation.Value; import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; -@Service @RequiredArgsConstructor public class DeltaProducerService implements DeltaProducer { diff --git a/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducer.java b/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducer.java index 3c739174..8eccd3b1 100644 --- a/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducer.java +++ b/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducer.java @@ -22,9 +22,7 @@ package org.onap.aai.kafka; import org.onap.aai.domain.notificationEvent.NotificationEvent; import org.onap.aai.rest.notification.UEBNotification; -import org.springframework.stereotype.Service; -@Service public interface NotificationProducer { public void sendNotification(NotificationEvent notificationEvent); public void sendUEBNotification(UEBNotification uebNotification); diff --git a/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducerService.java b/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducerService.java index 44a03ba1..ad81ff4e 100644 --- a/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducerService.java +++ b/aai-core/src/main/java/org/onap/aai/kafka/NotificationProducerService.java @@ -24,11 +24,9 @@ import org.onap.aai.domain.notificationEvent.NotificationEvent; import org.onap.aai.rest.notification.UEBNotification; import org.springframework.beans.factory.annotation.Value; import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; -@Service @RequiredArgsConstructor public class NotificationProducerService implements NotificationProducer { diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/config/ConfigConfiguration.java b/aai-schema-ingest/src/main/java/org/onap/aai/config/ConfigConfiguration.java index 3723a0c8..7eef7a4f 100644 --- a/aai-schema-ingest/src/main/java/org/onap/aai/config/ConfigConfiguration.java +++ b/aai-schema-ingest/src/main/java/org/onap/aai/config/ConfigConfiguration.java @@ -29,6 +29,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.PropertySource; @Configuration @@ -37,8 +38,9 @@ import org.springframework.context.annotation.PropertySource; @PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound = true) public class ConfigConfiguration { - @Bean(name = "schemaConfigVersions") + @Primary @ConditionalOnMissingBean + @Bean(name = "schemaConfigVersions") public SchemaConfigVersions schemaConfigVersions() { return new SchemaConfigVersions(); } diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaConfigVersions.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaConfigVersions.java index 6f899d76..1ef09b3c 100644 --- a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaConfigVersions.java +++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaConfigVersions.java @@ -26,14 +26,7 @@ import java.util.stream.Collectors; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; -@Component("schemaConfigVersions") -@ConditionalOnExpression("'${schema.translator.list:config}'.contains('config') || '${schema.service.versions.override:false}'.equals('true')") -@PropertySource(value = "classpath:schema-ingest.properties", ignoreResourceNotFound = true) -@PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound = true) public class SchemaConfigVersions extends SchemaVersions { @Value("#{'${schema.version.list:''}'.split(',')}") -- 2.16.6