X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fimplementation%2Finternal%2FActivator.java;h=85d239f4b9e1c52a265e2cb685fcb64925dac3d2;hp=6cab6b9b4f8b0cf8c774f021e8487fd13365aedc;hb=eed57e2b0afd50823bc882123b6cbac04bcc48d9;hpb=0406ea14a1a38fbb6ecec173ed42337d9f4ad62c diff --git a/opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java b/opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java index 6cab6b9b4f..85d239f4b9 100644 --- a/opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java +++ b/opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.sal.implementation.internal; +import org.apache.felix.dm.Component; import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase; import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerListener; import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerService; @@ -22,14 +23,15 @@ import org.opendaylight.controller.sal.packet.IListenDataPacket; import org.opendaylight.controller.sal.packet.IPluginInDataPacketService; import org.opendaylight.controller.sal.packet.IPluginOutDataPacketService; import org.opendaylight.controller.sal.reader.IPluginInReadService; +import org.opendaylight.controller.sal.reader.IPluginOutReadService; import org.opendaylight.controller.sal.reader.IReadService; +import org.opendaylight.controller.sal.reader.IReadServiceListener; import org.opendaylight.controller.sal.topology.IListenTopoUpdates; import org.opendaylight.controller.sal.topology.IPluginInTopologyService; import org.opendaylight.controller.sal.topology.IPluginOutTopologyService; import org.opendaylight.controller.sal.topology.ITopologyService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.felix.dm.Component; public class Activator extends ComponentActivatorAbstractBase { protected static final Logger logger = LoggerFactory @@ -125,7 +127,7 @@ public class Activator extends ComponentActivatorAbstractBase { c.add(createContainerServiceDependency(containerName) .setService(IPluginInInventoryService.class) .setCallbacks("setPluginService", "unsetPluginService") - .setRequired(true)); + .setRequired(false)); } if (imp.equals(FlowProgrammerService.class)) { @@ -138,21 +140,29 @@ public class Activator extends ComponentActivatorAbstractBase { .setService(IPluginInFlowProgrammerService.class) .setCallbacks("setService", "unsetService") .setRequired(false)); - c.add(createServiceDependency() + c.add(createContainerServiceDependency(containerName) .setService(IFlowProgrammerListener.class) .setCallbacks("setListener", "unsetListener") .setRequired(false)); } if (imp.equals(ReadService.class)) { - // It is the provider of IReadService - c.setInterface(IReadService.class.getName(), null); + // export services + c.setInterface(new String[] { + IReadService.class.getName(),IPluginOutReadService.class.getName()}, null); // It is also the consumer of IPluginInReadService c.add(createContainerServiceDependency(containerName) .setService(IPluginInReadService.class) .setCallbacks("setService", "unsetService") - .setRequired(true)); + .setRequired(false)); + + //consumes plugins' reader updates + c.add(createContainerServiceDependency(containerName) + .setService(IReadServiceListener.class) + .setCallbacks("setReaderListener", "unsetReaderListener") + .setRequired(false)); + } /************************/