Merge "BUG 2661 - sonar issues in openflowplugin artifact - anonymous class2."
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / sal / OpenflowPluginProvider.java
index 6c7de9d5adff50eaaef1029c6eb7765f399ad386..3ca9a2676d0afa0ca0687797b64e40d4c1ebcef8 100644 (file)
@@ -8,20 +8,18 @@
 package org.opendaylight.openflowplugin.openflow.md.core.sal;
 
 import java.util.Collection;
-import java.util.Collections;
-
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
+import org.opendaylight.openflowplugin.extension.api.ExtensionConverterRegistrator;
 import org.opendaylight.openflowplugin.openflow.md.core.MDController;
-import org.opendaylight.openflowplugin.openflow.md.core.cmd.MessageCountCommandProvider;
-import org.opendaylight.openflowplugin.openflow.md.queue.MessageObservatory;
-import org.opendaylight.openflowplugin.openflow.md.queue.MessageSpyCounterImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.RpcService;
+import org.opendaylight.openflowplugin.openflow.md.core.extension.ExtensionConverterManager;
+import org.opendaylight.openflowplugin.openflow.md.core.extension.ExtensionConverterManagerImpl;
+import org.opendaylight.openflowplugin.api.statistics.MessageCountDumper;
+import org.opendaylight.openflowplugin.api.statistics.MessageObservatory;
+import org.opendaylight.openflowplugin.statistics.MessageSpyCounterImpl;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -30,9 +28,9 @@ import org.slf4j.LoggerFactory;
  * OFPlugin provider implementation
  */
 public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseable {
-    
-    private static Logger LOG = LoggerFactory.getLogger(OpenflowPluginProvider.class);
-    
+
+    private static final Logger LOG = LoggerFactory.getLogger(OpenflowPluginProvider.class);
+
     private BindingAwareBroker broker;
 
     private BundleContext context;
@@ -40,13 +38,22 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab
     private Collection<SwitchConnectionProvider> switchConnectionProviders;
 
     private MDController mdController;
-    
-    private MessageCountCommandProvider messageCountCommandProvider;
 
-    private MessageObservatory<OfHeader, DataObject> messageCountProvider;
-    
+    private MessageObservatory<DataContainer> messageCountProvider;
+
     private SalRegistrationManager registrationManager;
-    
+
+    private ExtensionConverterManager extensionConverterManager;
+
+    /**
+     * Initialization of services and msgSpy counter
+     */
+    public void initialization() {
+        messageCountProvider = new MessageSpyCounterImpl();
+        extensionConverterManager = new ExtensionConverterManagerImpl();
+        this.registerProvider();
+    }
+
     /**
      * @param switchConnectionProvider
      */
@@ -61,32 +68,19 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab
         return context;
     }
 
-    /**
-     * dependencymanager requirement 
-     * @param context
-     * 
-     * @deprecated we should stop relying on osgi to provide cli interface for messageCounter 
-     */
-    @Deprecated
-    public void setContext(BundleContext context) {
-        this.context = context;
-    }
-
     @Override
     public void onSessionInitiated(ProviderContext session) {
         LOG.debug("onSessionInitiated");
-        messageCountProvider = new MessageSpyCounterImpl();
         registrationManager = new SalRegistrationManager();
         registrationManager.onSessionInitiated(session);
         mdController = new MDController();
         mdController.setSwitchConnectionProviders(switchConnectionProviders);
         mdController.setMessageSpyCounter(messageCountProvider);
+        mdController.setExtensionConverterProvider(extensionConverterManager);
         mdController.init();
         mdController.start();
-        messageCountCommandProvider = new MessageCountCommandProvider(context, messageCountProvider);
-        messageCountCommandProvider.onSessionInitiated(session);
     }
-    
+
     @Override
     public void close() {
         LOG.debug("close");
@@ -94,23 +88,6 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab
         mdController = null;
         registrationManager.close();
         registrationManager = null;
-        messageCountCommandProvider.close();
-        messageCountCommandProvider = null;
-    }
-
-    @Override
-    public void onSessionInitialized(ConsumerContext session) {
-        // NOOP
-    }
-
-    @Override
-    public Collection<? extends ProviderFunctionality> getFunctionality() {
-        return Collections.emptySet();
-    }
-
-    @Override
-    public java.util.Collection<? extends RpcService> getImplementations() {
-        return Collections.emptySet();
     }
 
     /**
@@ -121,7 +98,8 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab
     }
 
     /**
-     * dependencymanager requirement 
+     * dependencymanager requirement
+     *
      * @param broker
      */
     public void setBroker(BindingAwareBroker broker) {
@@ -129,27 +107,38 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab
     }
 
     /**
-     * dependencymanager requirement 
+     * dependencymanager requirement
+     *
      * @param brokerArg
      */
     public void unsetBroker(BindingAwareBroker brokerArg) {
         this.broker = null;
     }
 
-    private boolean hasAllDependencies(){
-        if(this.broker != null && this.switchConnectionProviders != null) {
+    private boolean hasAllDependencies() {
+        if (this.broker != null && this.switchConnectionProviders != null) {
             return true;
         }
         return false;
     }
-    
+
     /**
      * register providers for md-sal
      */
-    public void registerProvider() {
-        //FIXME: is it needed
-        if(hasAllDependencies()) {
-            this.broker.registerProvider(this,context);
+    private void registerProvider() {
+        if (hasAllDependencies()) {
+            this.broker.registerProvider(this, context);
         }
     }
- }
+
+    public MessageCountDumper getMessageCountDumper() {
+        return messageCountProvider;
+    }
+
+    /**
+     * @return the extensionConverterRegistry
+     */
+    public ExtensionConverterRegistrator getExtensionConverterRegistrator() {
+        return extensionConverterManager;
+    }
+}