* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.mef.nrp.impl;
+package org.opendaylight.unimgr.mef.nrp.impl;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriver;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverAmbiguousException;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverBuilder;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverNotFoundException;
+import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverRepoService;
import org.opendaylight.yang.gen.v1.uri.onf.coremodel.corenetworkmodule.objectclasses.rev160413.GFcPort;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
+ * Default application repo that is populated with the application driver builders registered as OSGi services.
+ *
* @author alex.feigin@hpe.com
+ * @author bartosz.michalik@amartus.com [modifications]
*/
public class ActivationDriverRepoServiceImpl implements ActivationDriverRepoService {
private static final Logger LOG = LoggerFactory.getLogger(ActivationDriverRepoServiceImpl.class);
- private Collection<ActivationDriverBuilder> builders = ConcurrentHashMap.newKeySet();
-
+ private final Collection<ActivationDriverBuilder> builders;
- /* (non-Javadoc)
- * @see org.mef.nrp.impl.ActivationDriverRepoService#bindBuilder(org.mef.nrp.impl.ActivationDriverBuilder)
- */
- @Override
- public void bindBuilder(ActivationDriverBuilder builder) {
- if (builder == null) {
- return;
- }
- LOG.info("ActivationDriverRepoService.bindBuilder got [{}] instance", builder.getClass().getSimpleName());
- builders.add(builder);
+ public ActivationDriverRepoServiceImpl() {
+ this.builders = Collections.emptyList();
}
- /* (non-Javadoc)
- * @see org.mef.nrp.impl.ActivationDriverRepoService#unbindBuilder(org.mef.nrp.impl.ActivationDriverBuilder)
- */
- @Override
- public void unbindBuilder(ActivationDriverBuilder builder) {
- if (builder == null) {
- return;
- }
- LOG.info("ActivationDriverRepoService.unbindBuilder got [{}] instance", builder.getClass().getSimpleName());
- builders.remove(builder);
+ public ActivationDriverRepoServiceImpl(List<ActivationDriverBuilder> builders) {
+ LOG.debug("Activation drivers initialized");
+ this.builders = builders;
}
protected ActivationDriver getDriver(Function<ActivationDriverBuilder, Optional<ActivationDriver>> driver) {
return drivers.get(0);
}
- public ActivationDriver getDriver(GFcPort aPort, GFcPort zPort, ActivationDriverBuilder.BuilderContext context) {
- return getDriver(x -> x.driverFor(aPort, zPort, context));
+ public ActivationDriver getDriver(GFcPort portA, GFcPort portZ, ActivationDriverBuilder.BuilderContext context) {
+ return getDriver(x -> x.driverFor(portA, portZ, context));
}
public ActivationDriver getDriver(GFcPort port, ActivationDriverBuilder.BuilderContext context) {
return getDriver(x -> x.driverFor(port, context));
}
+
+ public void bind(ActivationDriverBuilder builder) {
+ LOG.debug("builder {} bound", builder);
+ }
+
+ public void unbind(ActivationDriverBuilder builder) {
+ LOG.debug("builder {} unbound", builder);
+ }
}