Initial merge of vpnservice code
[netvirt.git] / vpnservice / fcapsmanager / alarmmanager / src / main / java / org / opendaylight / vpnservice / fcapsmanager / alarmmanager / AlarmNotificationListeners.java
diff --git a/vpnservice/fcapsmanager/alarmmanager/src/main/java/org/opendaylight/vpnservice/fcapsmanager/alarmmanager/AlarmNotificationListeners.java b/vpnservice/fcapsmanager/alarmmanager/src/main/java/org/opendaylight/vpnservice/fcapsmanager/alarmmanager/AlarmNotificationListeners.java
deleted file mode 100644 (file)
index 7cb8785..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.vpnservice.fcapsmanager.alarmmanager;
-
-import javax.management.*;
-import java.lang.management.ManagementFactory;
-import java.util.*;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.opendaylight.vpnservice.fcapsmanager.AlarmServiceFacade;
-
-public class AlarmNotificationListeners implements Runnable {
-    static Logger s_logger = LoggerFactory.getLogger(AlarmNotificationListeners.class);
-    private MBeanServer mbs = null;
-    private static String DOMAIN = "SDNC.FM";
-
-    private final DelegateListener delegateListener = new DelegateListener();
-    private BundleContext context = null;
-
-    public AlarmNotificationListeners(BundleContext context) {
-        this.context=context;
-    }
-
-    /**
-     * Platform dependent bundle injects its handle and it is retrieved in the method
-     */
-    private AlarmServiceFacade getAlarmServiceSPI (){
-        AlarmServiceFacade service =null;
-        if(context != null) {
-            try {
-                ServiceReference<?> serviceReference = context.
-                        getServiceReference(AlarmServiceFacade.class.getName());
-                service = (AlarmServiceFacade) context.
-                        getService(serviceReference);
-            }catch (NullPointerException ex){
-                service = null;
-            }catch (Exception e){
-                s_logger.error("Exception {} occurred in getting AlarmServiceSPI",e);
-            }
-        }
-        return service;
-    }
-
-    /**
-     * Gets register notification when a mbean is registered in platform Mbeanserver and checks if it is alarm mbean and add attribute notification listener to it.
-     * Gets attribute notification when alarm mbean is updated by the application.
-     */
-    public class DelegateListener implements NotificationListener {
-        public void handleNotification(Notification notification, Object obj) {
-            if (notification instanceof MBeanServerNotification) {
-                MBeanServerNotification msnotification =
-                        (MBeanServerNotification) notification;
-                String nType = msnotification.getType();
-                ObjectName mbn = msnotification.getMBeanName();
-
-                if (nType.equals("JMX.mbean.registered")) {
-                    if (mbn.toString().contains(DOMAIN)) {
-                        s_logger.debug("Received registeration of Mbean "+mbn);
-                        try {
-                            mbs.addNotificationListener(mbn,delegateListener, null, null);
-                            s_logger.debug("Added attribute notification listener for Mbean "+ mbn);
-                        } catch (InstanceNotFoundException e) {
-                            s_logger.error("Exception while adding attribute notification of mbean {}", e);
-                        }
-                    }
-                }
-
-                if (nType.equals("JMX.mbean.unregistered")) {
-                    if (mbn.toString().contains(DOMAIN)) {
-                        s_logger.debug("Time: " + msnotification.getTimeStamp() + "MBean " + msnotification.getMBeanName()+" unregistered successfully");
-                    }
-                }
-            }
-            else if (notification instanceof AttributeChangeNotification) {
-                AttributeChangeNotification acn =
-                        (AttributeChangeNotification) notification;
-
-                s_logger.debug("Received attribute notification of Mbean: "
-                        + notification.getSource()
-                        + " for attribute:" + acn.getAttributeName() );
-
-                if(acn.getAttributeName().toString().equals("raiseAlarmObject")){
-
-                    String value=acn.getNewValue().toString();
-                    value = value.replace(value.charAt(0), ' ');
-                    value = value.replace(value.charAt(value.lastIndexOf("]")), ' ');
-
-                    String[] args =value.split(",");
-                    s_logger.debug("Receive attribute value :"+args[0].trim()+args[1].trim()+args[2].trim());
-                    if(getAlarmServiceSPI() != null ) {
-                        getAlarmServiceSPI().raiseAlarm(args[0].trim(),args[1].trim(),args[2].trim());
-                    } else {
-                        s_logger.debug("Alarm service not available");
-                    }
-
-                } else if(acn.getAttributeName().toString().equals("clearAlarmObject")){
-
-                    String value=acn.getNewValue().toString();
-                    value = value.replace(value.charAt(0), ' ');
-                    value = value.replace(value.charAt(value.lastIndexOf("]")), ' ');
-
-                    String[] args =value.split(",");
-                    s_logger.debug("Receive attribute value :"+args[0].trim()+args[1].trim()+args[2].trim());
-                    if(getAlarmServiceSPI() != null )
-                        getAlarmServiceSPI().clearAlarm(args[0].trim(), args[1].trim(), args[2].trim());
-                    else
-                        s_logger.debug("Alarm service not available");
-                }
-            }
-        }
-    }
-
-    /**
-     * Gets the platform MBeanServer instance and registers to get notification whenever alarm mbean is registered in the mbeanserver
-     */
-    @Override
-    public void run() {
-        mbs = ManagementFactory.getPlatformMBeanServer();
-
-        queryMbeans();
-
-        ObjectName delegate = null;
-        try {
-            delegate = new ObjectName("JMImplementation:type=MBeanServerDelegate");
-        } catch (MalformedObjectNameException e) {
-            e.printStackTrace();
-        }
-        NotificationFilterSupport filter = new NotificationFilterSupport();
-        filter.enableType("JMX.mbean.registered");
-        filter.enableType("JMX.mbean.unregistered");
-
-        try {
-            mbs.addNotificationListener(delegate, delegateListener, filter, null);
-            s_logger.debug("Added registeration listener for Mbean {}",delegate);
-        } catch (InstanceNotFoundException e) {
-            s_logger.error("Failed to add registeration listener {}", e);
-        }
-
-        waitForNotification();
-    }
-
-    /**
-     *  Pre-provisioning case to handle all alarm mbeans which are registered before installation of framework bundle
-     *  Queries the platform Mbeanserver to retrieve registered alarm mbean and add attribute notification listener to it
-     */
-    public void queryMbeans() {
-
-        Set<ObjectName> names =
-                new TreeSet<ObjectName>(mbs.queryNames(null, null));
-        s_logger.debug("Queried MBeanServer for MBeans:");
-        for (ObjectName beanName : names) {
-            if(beanName.toString().contains(DOMAIN)){
-                try {
-                    mbs.addNotificationListener(beanName,delegateListener, null, null);
-                    s_logger.debug("Added attribute notification listener for Mbean "+ beanName);
-                } catch (InstanceNotFoundException e) {
-                    s_logger.error("Failed to add attribute notification for Mbean {}", e);
-                }
-            }
-        }
-    }
-    public void waitForNotification() {
-        while(true){
-            try {
-                Thread.sleep(50);
-            }
-            catch(Exception ex){
-                ex.printStackTrace();
-            }
-        }
-    }
-}
\ No newline at end of file