X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-store-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fstore%2Fimpl%2FYangStoreActivator.java;fp=opendaylight%2Fconfig%2Fyang-store-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fstore%2Fimpl%2FYangStoreActivator.java;h=a25b05ab8aa92225df6d1ec1f7782a70efef640b;hp=a358e5f7c1e0bc7080fd674effe18d24ffc9703d;hb=4b66c069b5bd80e18c3c038186d44c52bb689a7b;hpb=4e6f0838e508e0dce5dfa62faa29b43e979f5ef8 diff --git a/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/YangStoreActivator.java b/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/YangStoreActivator.java index a358e5f7c1..a25b05ab8a 100644 --- a/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/YangStoreActivator.java +++ b/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/YangStoreActivator.java @@ -7,50 +7,40 @@ */ package org.opendaylight.controller.config.yang.store.impl; -import java.util.Dictionary; -import java.util.Hashtable; - +import com.google.common.base.Optional; import org.opendaylight.controller.config.yang.store.api.YangStoreService; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import org.osgi.framework.BundleEvent; -import org.osgi.framework.ServiceRegistration; -import org.osgi.util.tracker.BundleTracker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class YangStoreActivator implements BundleActivator { +import java.util.Dictionary; +import java.util.Hashtable; +import java.util.regex.Pattern; - private BundleTracker bundleTracker; - private ServiceRegistration registration; - private static final Logger logger = LoggerFactory - .getLogger(YangStoreActivator.class); +public class YangStoreActivator implements BundleActivator { + private static final Logger logger = LoggerFactory.getLogger(YangStoreActivator.class); @Override public void start(BundleContext context) throws Exception { - ExtenderYangTrackerCustomizer customizerAndService = new ExtenderYangTrackerCustomizer(); - bundleTracker = new BundleTracker(context, BundleEvent.RESOLVED | BundleEvent.UNRESOLVED, customizerAndService); - bundleTracker.open(); - + // get blacklist + Optional maybeBlacklistPattern = Optional.absent(); + String blacklist = context.getProperty("yangstore.blacklist"); + if (blacklist != null) { + try { + maybeBlacklistPattern = Optional.of(Pattern.compile(blacklist)); + } catch (RuntimeException e) { + logger.error("Cannot parse blacklist regex " + blacklist, e); + throw e; + } + } + ExtenderYangTracker extenderYangTracker = new ExtenderYangTracker(maybeBlacklistPattern, context); Dictionary properties = new Hashtable<>(); - registration = context.registerService(YangStoreService.class, - customizerAndService, properties); + context.registerService(YangStoreService.class, extenderYangTracker, properties); } @Override public void stop(BundleContext context) throws Exception { - try { - bundleTracker.close(); - } catch (Exception e) { - logger.warn("Exception while closing bundleTracker", e); - } - if (registration != null) { - try { - registration.unregister(); - } catch (Exception e) { - logger.warn("Exception while unregistring yang store service", - e); - } - } + } }