From 0c51ad4d13ab3908cc5c579a55a9e5c364c5adfe Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Thu, 16 Mar 2023 15:44:31 +0100 Subject: [PATCH] Remove dmaap-blueprint.xml file Convert DmaapClientProvider into a Component. JIRA: TRNSPRTPCE-736 Signed-off-by: Gilles Thouenon Change-Id: I7dd15f32a597dfee0e2ee77e90fe17f17a40c627 (cherry picked from commit 8cde36c2ece92e26e0ebee020525ba5ab08d18f3) --- dmaap-client/pom.xml | 8 ++++ .../client/impl/DmaapClientProvider.java | 39 +++++++++++-------- .../OSGI-INF/blueprint/dmaap-blueprint.xml | 25 ------------ .../client/impl/DmaapClientProviderTest.java | 8 ++-- 4 files changed, 34 insertions(+), 46 deletions(-) delete mode 100644 dmaap-client/src/main/resources/OSGI-INF/blueprint/dmaap-blueprint.xml diff --git a/dmaap-client/pom.xml b/dmaap-client/pom.xml index e4e2e7bfd..7834390a5 100644 --- a/dmaap-client/pom.xml +++ b/dmaap-client/pom.xml @@ -99,6 +99,14 @@ jakarta.ws.rs jakarta.ws.rs-api + + org.osgi + org.osgi.service.component.annotations + + + org.osgi + org.osgi.service.metatype.annotations + diff --git a/dmaap-client/src/main/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProvider.java b/dmaap-client/src/main/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProvider.java index 482a46b78..51742f2c8 100644 --- a/dmaap-client/src/main/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProvider.java +++ b/dmaap-client/src/main/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProvider.java @@ -11,32 +11,40 @@ import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.transportpce.dmaap.client.listener.NbiNotificationsListenerImpl; import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NbiNotificationsListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.metatype.annotations.AttributeDefinition; +import org.osgi.service.metatype.annotations.ObjectClassDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Component(configurationPid = "org.opendaylight.transportpce.dmaap") public class DmaapClientProvider { + + @ObjectClassDefinition + public @interface Configuration { + @AttributeDefinition + String dmaapBaseUrl() default "http://localhost:8080"; + @AttributeDefinition + String dmaapUsername() default ""; + @AttributeDefinition + String dmaapPassword() default ""; + } + private static final Logger LOG = LoggerFactory.getLogger(DmaapClientProvider.class); private ListenerRegistration listenerRegistration; - private NotificationService notificationService; - private final String baseUrl; - private final String username; - private final String password; - public DmaapClientProvider(NotificationService notificationService, String baseUrl, - String username, String password) { - this.notificationService = notificationService; - this.baseUrl = baseUrl; - this.username = username; - this.password = password; + @Activate + public DmaapClientProvider(@Reference NotificationService notificationService, Configuration config) { + this(notificationService, config.dmaapBaseUrl(), config.dmaapUsername(), config.dmaapPassword()); } - /** - * Method called when the blueprint container is created. - */ - public void init() { - LOG.info("DmaapClientProvider Session Initiated"); + public DmaapClientProvider(NotificationService notificationService, String baseUrl, + String username, String password) { listenerRegistration = notificationService.registerNotificationListener( new NbiNotificationsListenerImpl(baseUrl, username, password)); + LOG.info("DmaapClientProvider Session Initiated"); } /** @@ -46,5 +54,4 @@ public class DmaapClientProvider { listenerRegistration.close(); LOG.info("DmaapClientProvider Closed"); } - } diff --git a/dmaap-client/src/main/resources/OSGI-INF/blueprint/dmaap-blueprint.xml b/dmaap-client/src/main/resources/OSGI-INF/blueprint/dmaap-blueprint.xml deleted file mode 100644 index ece6f2140..000000000 --- a/dmaap-client/src/main/resources/OSGI-INF/blueprint/dmaap-blueprint.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dmaap-client/src/test/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProviderTest.java b/dmaap-client/src/test/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProviderTest.java index 6c66201aa..79f7edcf3 100644 --- a/dmaap-client/src/test/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProviderTest.java +++ b/dmaap-client/src/test/java/org/opendaylight/transportpce/dmaap/client/impl/DmaapClientProviderTest.java @@ -31,11 +31,9 @@ public class DmaapClientProviderTest { @Test void testInitRegisterNbiNotificationsToRpcRegistry() { - DmaapClientProvider provider = - new DmaapClientProvider(notificationService, "http://localhost", "username", "password"); - provider.init(); - (verify(notificationService, times(1))) - .registerNotificationListener(Mockito.any(NbiNotificationsListenerImpl.class)); + new DmaapClientProvider(notificationService, "http://localhost", "username", "password"); + verify(notificationService, times(1)) + .registerNotificationListener(Mockito.any(NbiNotificationsListenerImpl.class)); } } -- 2.36.6