package org.opendaylight.controller.clustering.services_implementation.internal;
import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
-import org.opendaylight.controller.sal.core.IContainerAware;
import org.opendaylight.controller.clustering.services.ICacheUpdateAware;
import org.opendaylight.controller.clustering.services.IClusterContainerServices;
public void configureGlobalInstance(Component c, Object imp) {
if (imp.equals(ClusterManager.class)) {
// export the service for Apps and Plugins
- c.setInterface(new String[] { IClusterServices.class.getName(), IContainerAware.class.getName() }, null);
+ c.setInterface(new String[] { IClusterServices.class.getName() }, null);
}
if (imp.equals(ClusterGlobalManager.class)) {
}
super.unsetCacheUpdateAware(props, s);
}
+
+ @Override
+ public void removeContainerCaches(String containerName) {
+ logger.debug("Removing caches for container {}", containerName);
+ for (String cacheName : clusterService.getCacheList(containerName)) {
+ clusterService.destroyCache(containerName, cacheName);
+ }
+ }
+
}
import org.opendaylight.controller.clustering.services.IGetUpdates;
import org.opendaylight.controller.clustering.services.IListenRoleChange;
import org.opendaylight.controller.clustering.services.ListenRoleChangeAddException;
-import org.opendaylight.controller.sal.core.IContainerAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ClusterManager implements IClusterServices, IContainerAware {
+public class ClusterManager implements IClusterServices {
protected static final Logger logger = LoggerFactory
.getLogger(ClusterManager.class);
private DefaultCacheManager cm;
return null;
}
for (String cacheName : manager.getCacheNames()) {
+ if (!manager.isRunning(cacheName)) continue;
if (cacheName.startsWith("{" + containerName + "}_")) {
String[] res = cacheName.split("[{}]");
if (res.length >= 4 && res[1].equals(containerName)
}
}
}
-
- private void removeContainerCaches(String containerName) {
- logger.info("Destroying caches for container {}", containerName);
- for (String cacheName : this.getCacheList(containerName)) {
- this.destroyCache(containerName, cacheName);
- }
- }
-
- @Override
- public void containerCreate(String arg0) {
- // no op
- }
-
- @Override
- public void containerDestroy(String container) {
- removeContainerCaches(container);
- }
}
public abstract class ClusterManagerCommon implements IClusterServicesCommon {
protected String containerName = null;
- private IClusterServices clusterService = null;
+ protected IClusterServices clusterService = null;
protected static final Logger logger = LoggerFactory
.getLogger(ClusterManagerCommon.class);
private ConcurrentMap<String, GetUpdatesContainer> cacheUpdateAware =