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;
* 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;
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
*/
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");
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();
}
/**
}
/**
- * dependencymanager requirement
+ * dependencymanager requirement
+ *
* @param broker
*/
public void setBroker(BindingAwareBroker broker) {
}
/**
- * 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;
+ }
+}