X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager-facade-xml%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Ffacade%2Fxml%2Fosgi%2FYangStoreActivator.java;h=0578b42701a18c0275eb1885bac1f0d422db0f85;hb=refs%2Fchanges%2F40%2F62940%2F4;hp=8c95a183831a1f91117bc933f9ed81f6833bdd25;hpb=b197d75e803beac663033287d769dce62c108490;p=controller.git diff --git a/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/osgi/YangStoreActivator.java b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/osgi/YangStoreActivator.java index 8c95a18383..0578b42701 100644 --- a/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/osgi/YangStoreActivator.java +++ b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/osgi/YangStoreActivator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2015, 2017 Cisco Systems, Inc. and others. 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, @@ -29,7 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Start yang store service and the XML config manager facade + * Start yang store service and the XML config manager facade. */ public class YangStoreActivator implements BundleActivator { @@ -47,63 +47,67 @@ public class YangStoreActivator implements BundleActivator { LOG.debug("ConfigPersister starting"); this.context = context; - final ServiceTrackerCustomizer schemaServiceTrackerCustomizer = new ServiceTrackerCustomizer() { + final ServiceTrackerCustomizer schemaServiceTrackerCustomizer = + new ServiceTrackerCustomizer() { private final AtomicBoolean alreadyStarted = new AtomicBoolean(false); @Override public YangStoreService addingService(final ServiceReference reference) { LOG.debug("Got addingService(SchemaContextProvider) event"); - if((reference.getProperty(SchemaSourceProvider.class.getName()) == null) && - (reference.getProperty(BindingRuntimeContext.class.getName()) == null)) { + if (reference.getProperty(SchemaSourceProvider.class.getName()) == null + && reference.getProperty(BindingRuntimeContext.class.getName()) == null) { LOG.debug("SchemaContextProvider not from config-manager. Ignoring"); return null; } // Yang store service should not be registered multiple times - if(!this.alreadyStarted.compareAndSet(false, true)) { + if (!this.alreadyStarted.compareAndSet(false, true)) { LOG.warn("Starting yang store service multiple times. Received new service {}", reference); throw new RuntimeException("Starting yang store service multiple times"); } - final SchemaContextProvider schemaContextProvider = reference.getBundle().getBundleContext().getService(reference); + final SchemaContextProvider schemaContextProvider = reference.getBundle().getBundleContext() + .getService(reference); final Object sourceProvider = Preconditions.checkNotNull( - reference.getProperty(SchemaSourceProvider.class.getName()), "Source provider not found"); + reference.getProperty(SchemaSourceProvider.class.getName()), "Source provider not found"); Preconditions.checkArgument(sourceProvider instanceof SchemaSourceProvider); // TODO avoid cast final YangStoreService yangStoreService = new YangStoreService(schemaContextProvider, - ((SchemaSourceProvider) sourceProvider)); + (SchemaSourceProvider) sourceProvider); final BindingRuntimeContext runtimeContext = (BindingRuntimeContext) reference .getProperty(BindingRuntimeContext.class.getName()); LOG.debug("BindingRuntimeContext retrieved as {}", runtimeContext); - if(runtimeContext != null) { + if (runtimeContext != null) { yangStoreService.refresh(runtimeContext); } - YangStoreActivator.this.yangStoreServiceServiceRegistration = context.registerService(YangStoreService.class, yangStoreService, - new Hashtable<>()); + YangStoreActivator.this.yangStoreServiceServiceRegistration = context + .registerService(YangStoreService.class, yangStoreService, new Hashtable<>()); YangStoreActivator.this.configRegistryLookup = new ConfigRegistryLookupThread(yangStoreService); YangStoreActivator.this.configRegistryLookup.start(); return yangStoreService; } @Override - public void modifiedService(final ServiceReference reference, final YangStoreService service) { + public void modifiedService(final ServiceReference reference, + final YangStoreService service) { if (service == null) { return; } LOG.debug("Got modifiedService(SchemaContextProvider) event"); final BindingRuntimeContext runtimeContext = (BindingRuntimeContext) reference - .getProperty(BindingRuntimeContext.class.getName()); + .getProperty(BindingRuntimeContext.class.getName()); LOG.debug("BindingRuntimeContext retrieved as {}", runtimeContext); service.refresh(runtimeContext); } @Override - public void removedService(final ServiceReference reference, final YangStoreService service) { - if(service == null) { + public void removedService(final ServiceReference reference, + final YangStoreService service) { + if (service == null) { return; } @@ -122,10 +126,10 @@ public class YangStoreActivator implements BundleActivator { @Override public void stop(final BundleContext context) throws Exception { - if(this.configRegistryLookup != null) { + if (this.configRegistryLookup != null) { this.configRegistryLookup.interrupt(); } - if(this.osgiRegistrayion != null) { + if (this.osgiRegistrayion != null) { this.osgiRegistrayion.unregister(); } if (this.yangStoreServiceServiceRegistration != null) { @@ -135,7 +139,7 @@ public class YangStoreActivator implements BundleActivator { } /** - * Find ConfigRegistry from config manager in JMX + * Find ConfigRegistry from config manager in JMX. */ private class ConfigRegistryLookupThread extends Thread { public static final int ATTEMPT_TIMEOUT_MS = 1000; @@ -153,20 +157,21 @@ public class YangStoreActivator implements BundleActivator { ConfigRegistryJMXClient configRegistryJMXClient; ConfigRegistryJMXClient configRegistryJMXClientNoNotifications; - int i = 0; + int index = 0; // Config registry might not be present yet, but will be eventually - while(true) { + while (true) { try { configRegistryJMXClient = new ConfigRegistryJMXClient(YangStoreActivator.this.configMBeanServer); - configRegistryJMXClientNoNotifications = ConfigRegistryJMXClient.createWithoutNotifications(YangStoreActivator.this.configMBeanServer); + configRegistryJMXClientNoNotifications = ConfigRegistryJMXClient + .createWithoutNotifications(YangStoreActivator.this.configMBeanServer); break; } catch (final IllegalStateException e) { - ++i; - if (i > SILENT_ATTEMPTS) { - LOG.info("JMX client not created after {} attempts, still trying", i, e); + ++index; + if (index > SILENT_ATTEMPTS) { + LOG.info("JMX client not created after {} attempts, still trying", index, e); } else { - LOG.debug("JMX client could not be created, reattempting, try {}", i, e); + LOG.debug("JMX client could not be created, reattempting, try {}", index, e); } try { Thread.sleep(ATTEMPT_TIMEOUT_MS); @@ -179,17 +184,16 @@ public class YangStoreActivator implements BundleActivator { final ConfigRegistryJMXClient jmxClient = configRegistryJMXClient; final ConfigRegistryJMXClient jmxClientNoNotifications = configRegistryJMXClientNoNotifications; - if (i > SILENT_ATTEMPTS) { - LOG.info("Created JMX client after {} attempts", i); + if (index > SILENT_ATTEMPTS) { + LOG.info("Created JMX client after {} attempts", index); } else { - LOG.debug("Created JMX client after {} attempts", i); + LOG.debug("Created JMX client after {} attempts", index); } - final ConfigSubsystemFacadeFactory configSubsystemFacade = - new ConfigSubsystemFacadeFactory(jmxClient, jmxClientNoNotifications, this.yangStoreService); - YangStoreActivator.this.osgiRegistrayion = YangStoreActivator.this.context.registerService(ConfigSubsystemFacadeFactory.class, configSubsystemFacade, - new Hashtable<>()); + final ConfigSubsystemFacadeFactory configSubsystemFacade = new ConfigSubsystemFacadeFactory(jmxClient, + jmxClientNoNotifications, this.yangStoreService); + YangStoreActivator.this.osgiRegistrayion = YangStoreActivator.this.context + .registerService(ConfigSubsystemFacadeFactory.class, configSubsystemFacade, new Hashtable<>()); } } } -