-/*\r
- * Copyright IBM Corporation, 2013. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-package org.opendaylight.controller.networkconfig.neutron.implementation;\r
-\r
-import java.util.Hashtable;\r
-import java.util.Dictionary;\r
-import org.apache.felix.dm.Component;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-\r
-import org.opendaylight.controller.clustering.services.IClusterContainerServices;\r
-import org.opendaylight.controller.networkconfig.neutron.INeutronFloatingIPCRUD;\r
-import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkCRUD;\r
-import org.opendaylight.controller.networkconfig.neutron.INeutronPortCRUD;\r
-import org.opendaylight.controller.networkconfig.neutron.INeutronRouterCRUD;\r
-import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetCRUD;\r
-import org.opendaylight.controller.networkconfig.neutron.implementation.NeutronFloatingIPInterface;\r
-import org.opendaylight.controller.networkconfig.neutron.implementation.NeutronNetworkInterface;\r
-import org.opendaylight.controller.networkconfig.neutron.implementation.NeutronPortInterface;\r
-import org.opendaylight.controller.networkconfig.neutron.implementation.NeutronRouterInterface;\r
-import org.opendaylight.controller.networkconfig.neutron.implementation.NeutronSubnetInterface;\r
-import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;\r
-\r
-public class Activator extends ComponentActivatorAbstractBase {\r
- protected static final Logger logger = LoggerFactory\r
- .getLogger(Activator.class);\r
-\r
- /**\r
- * Function called when the activator starts just after some\r
- * initializations are done by the\r
- * ComponentActivatorAbstractBase.\r
- *\r
- */\r
- public void init() {\r
-\r
- }\r
-\r
- /**\r
- * Function called when the activator stops just before the\r
- * cleanup done by ComponentActivatorAbstractBase\r
- *\r
- */\r
- public void destroy() {\r
-\r
- }\r
-\r
- /**\r
- * Function that is used to communicate to dependency manager the\r
- * list of known implementations for services inside a container\r
- *\r
- *\r
- * @return An array containing all the CLASS objects that will be\r
- * instantiated in order to get an fully working implementation\r
- * Object\r
- */\r
- public Object[] getImplementations() {\r
- Object[] res = { NeutronFloatingIPInterface.class,\r
- NeutronRouterInterface.class,\r
- NeutronPortInterface.class,\r
- NeutronSubnetInterface.class,\r
- NeutronNetworkInterface.class };\r
- return res;\r
- }\r
-\r
- /**\r
- * Function that is called when configuration of the dependencies\r
- * is required.\r
- *\r
- * @param c dependency manager Component object, used for\r
- * configuring the dependencies exported and imported\r
- * @param imp Implementation class that is being configured,\r
- * needed as long as the same routine can configure multiple\r
- * implementations\r
- * @param containerName The containerName being configured, this allow\r
- * also optional per-container different behavior if needed, usually\r
- * should not be the case though.\r
- */\r
- public void configureInstance(Component c, Object imp, String containerName) {\r
- if (imp.equals(NeutronFloatingIPInterface.class)) {\r
- // export the service\r
- c.setInterface(\r
- new String[] { INeutronFloatingIPCRUD.class.getName() }, null);\r
- Dictionary<String, String> props = new Hashtable<String, String>();\r
- props.put("salListenerName", "neutron");\r
- c.add(createContainerServiceDependency(containerName)\r
- .setService(IClusterContainerServices.class)\r
- .setCallbacks("setClusterContainerService",\r
- "unsetClusterContainerService").setRequired(true));\r
- }\r
- if (imp.equals(NeutronRouterInterface.class)) {\r
- // export the service\r
- c.setInterface(\r
- new String[] { INeutronRouterCRUD.class.getName() }, null);\r
- Dictionary<String, String> props = new Hashtable<String, String>();\r
- props.put("salListenerName", "neutron");\r
- c.add(createContainerServiceDependency(containerName)\r
- .setService(IClusterContainerServices.class)\r
- .setCallbacks("setClusterContainerService",\r
- "unsetClusterContainerService").setRequired(true));\r
- }\r
- if (imp.equals(NeutronPortInterface.class)) {\r
- // export the service\r
- c.setInterface(\r
- new String[] { INeutronPortCRUD.class.getName() }, null);\r
- Dictionary<String, String> props = new Hashtable<String, String>();\r
- props.put("salListenerName", "neutron");\r
- c.add(createContainerServiceDependency(containerName)\r
- .setService(IClusterContainerServices.class)\r
- .setCallbacks("setClusterContainerService",\r
- "unsetClusterContainerService").setRequired(true));\r
- }\r
- if (imp.equals(NeutronSubnetInterface.class)) {\r
- // export the service\r
- c.setInterface(\r
- new String[] { INeutronSubnetCRUD.class.getName() }, null);\r
- Dictionary<String, String> props = new Hashtable<String, String>();\r
- props.put("salListenerName", "neutron");\r
- c.add(createContainerServiceDependency(containerName)\r
- .setService(IClusterContainerServices.class)\r
- .setCallbacks("setClusterContainerService",\r
- "unsetClusterContainerService").setRequired(true));\r
- }\r
- if (imp.equals(NeutronNetworkInterface.class)) {\r
- // export the service\r
- c.setInterface(\r
- new String[] { INeutronNetworkCRUD.class.getName() }, null);\r
- Dictionary<String, String> props = new Hashtable<String, String>();\r
- props.put("salListenerName", "neutron");\r
- c.add(createContainerServiceDependency(containerName)\r
- .setService(IClusterContainerServices.class)\r
- .setCallbacks("setClusterContainerService",\r
- "unsetClusterContainerService").setRequired(true));\r
- }\r
- }\r
-}\r
+/*
+ * Copyright IBM Corporation, 2013. 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.controller.networkconfig.neutron.implementation;
+
+import java.util.Hashtable;
+import java.util.Dictionary;
+
+import org.apache.felix.dm.Component;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.controller.clustering.services.IClusterContainerServices;
+import org.opendaylight.controller.configuration.IConfigurationContainerAware;
+import org.opendaylight.controller.networkconfig.neutron.INeutronFloatingIPCRUD;
+import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkCRUD;
+import org.opendaylight.controller.networkconfig.neutron.INeutronPortCRUD;
+import org.opendaylight.controller.networkconfig.neutron.INeutronRouterCRUD;
+import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetCRUD;
+import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
+
+public class Activator extends ComponentActivatorAbstractBase {
+ protected static final Logger logger = LoggerFactory
+ .getLogger(Activator.class);
+
+ /**
+ * Function called when the activator starts just after some
+ * initializations are done by the
+ * ComponentActivatorAbstractBase.
+ *
+ */
+ @Override
+ public void init() {
+
+ }
+
+ /**
+ * Function called when the activator stops just before the
+ * cleanup done by ComponentActivatorAbstractBase
+ *
+ */
+ @Override
+ public void destroy() {
+
+ }
+
+ /**
+ * Function that is used to communicate to dependency manager the
+ * list of known implementations for services inside a container
+ *
+ *
+ * @return An array containing all the CLASS objects that will be
+ * instantiated in order to get an fully working implementation
+ * Object
+ */
+ @Override
+ public Object[] getImplementations() {
+ Object[] res = { NeutronFloatingIPInterface.class,
+ NeutronRouterInterface.class,
+ NeutronPortInterface.class,
+ NeutronSubnetInterface.class,
+ NeutronNetworkInterface.class };
+ return res;
+ }
+
+ /**
+ * Function that is called when configuration of the dependencies
+ * is required.
+ *
+ * @param c dependency manager Component object, used for
+ * configuring the dependencies exported and imported
+ * @param imp Implementation class that is being configured,
+ * needed as long as the same routine can configure multiple
+ * implementations
+ * @param containerName The containerName being configured, this allow
+ * also optional per-container different behavior if needed, usually
+ * should not be the case though.
+ */
+ @Override
+ public void configureInstance(Component c, Object imp, String containerName) {
+ if (imp.equals(NeutronFloatingIPInterface.class)) {
+ // export the service
+ c.setInterface(
+ new String[] { INeutronFloatingIPCRUD.class.getName(),
+ IConfigurationContainerAware.class.getName()}, null);
+ Dictionary<String, String> props = new Hashtable<String, String>();
+ props.put("salListenerName", "neutron");
+ c.add(createContainerServiceDependency(containerName)
+ .setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService",
+ "unsetClusterContainerService").setRequired(true));
+ }
+ if (imp.equals(NeutronRouterInterface.class)) {
+ // export the service
+ c.setInterface(
+ new String[] { INeutronRouterCRUD.class.getName(),
+ IConfigurationContainerAware.class.getName()}, null);
+ Dictionary<String, String> props = new Hashtable<String, String>();
+ props.put("salListenerName", "neutron");
+ c.add(createContainerServiceDependency(containerName)
+ .setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService",
+ "unsetClusterContainerService").setRequired(true));
+ }
+ if (imp.equals(NeutronPortInterface.class)) {
+ // export the service
+ c.setInterface(
+ new String[] { INeutronPortCRUD.class.getName(),
+ IConfigurationContainerAware.class.getName()}, null);
+ Dictionary<String, String> props = new Hashtable<String, String>();
+ props.put("salListenerName", "neutron");
+ c.add(createContainerServiceDependency(containerName)
+ .setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService",
+ "unsetClusterContainerService").setRequired(true));
+ }
+ if (imp.equals(NeutronSubnetInterface.class)) {
+ // export the service
+ c.setInterface(
+ new String[] { INeutronSubnetCRUD.class.getName(),
+ IConfigurationContainerAware.class.getName()}, null);
+ Dictionary<String, String> props = new Hashtable<String, String>();
+ props.put("salListenerName", "neutron");
+ c.add(createContainerServiceDependency(containerName)
+ .setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService",
+ "unsetClusterContainerService").setRequired(true));
+ }
+ if (imp.equals(NeutronNetworkInterface.class)) {
+ // export the service
+ c.setInterface(
+ new String[] { INeutronNetworkCRUD.class.getName(),
+ IConfigurationContainerAware.class.getName()}, null);
+ Dictionary<String, String> props = new Hashtable<String, String>();
+ props.put("salListenerName", "neutron");
+ c.add(createContainerServiceDependency(containerName)
+ .setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService",
+ "unsetClusterContainerService").setRequired(true));
+ }
+ }
+}