Merge "Activate Swagger for Lighty"
[transportpce.git] / dmaap-client / src / main / java / org / opendaylight / transportpce / dmaap / client / impl / DmaapClientProvider.java
index 63bee535759a193a9fbd5a6ee41b3654db684f94..51742f2c82eeac1acbc93bbf947ec819cb828fd0 100644 (file)
@@ -9,34 +9,42 @@ package org.opendaylight.transportpce.dmaap.client.impl;
 
 import org.opendaylight.mdsal.binding.api.NotificationService;
 import org.opendaylight.transportpce.dmaap.client.listener.NbiNotificationsListenerImpl;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.NbiNotificationsListener;
+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<NbiNotificationsListener> 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");
     }
-
 }