From: Ed Warnicke Date: Sun, 18 May 2014 17:50:40 +0000 (-0500) Subject: Bug 1029: Remove dead code: clustered-data-store X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~77^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=d43d88377c7e76959eb95987f7b1548df21424a0 Bug 1029: Remove dead code: clustered-data-store opendaylight/md-sal/clustered-data-store/ is dead code that is not being built and hasn't for some time. Its complicating keeping versions up to date and verifying that they are up to date. If in the future it needs to be revived it can be retrieved from git. Change-Id: Ie8365d5cb48e806a9d9a9fc0175478ef21277cbd Signed-off-by: Ed Warnicke --- diff --git a/opendaylight/md-sal/clustered-data-store/implementation/pom.xml b/opendaylight/md-sal/clustered-data-store/implementation/pom.xml deleted file mode 100644 index fe0b516a8b..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/pom.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - 4.0.0 - - org.opendaylight.controller - sal-parent - 1.1-SNAPSHOT - ../.. - - - scm:git:ssh://git.opendaylight.org:29418/controller.git - scm:git:ssh://git.opendaylight.org:29418/controller.git - https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main - HEAD - - - clustered-datastore-implementation - 0.4.1-SNAPSHOT - bundle - - - - - org.apache.felix - maven-bundle-plugin - true - - - - ${project.basedir}/META-INF - - - - org.opendaylight.yangtools - yang-maven-plugin - - - - generate-sources - - - - - - org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - - ${project.build.directory}/generated-sources/config - - - urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang - - - - - org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl - target/site/models - - - true - - - - - - org.opendaylight.controller - yang-jmx-generator-plugin - 0.2.3-SNAPSHOT - - - org.opendaylight.yangtools - maven-sal-api-gen-plugin - ${yangtools.version} - jar - - - - - - - - - com.google.guava - guava - - - org.opendaylight.controller - sal-core-api - - - org.opendaylight.controller - sal-common-util - - - org.opendaylight.controller - config-api - - - - org.opendaylight.controller - sal - - - org.opendaylight.controller - clustering.services - - - junit - junit - test - - - org.mockito - mockito-all - test - - - org.opendaylight.yangtools - yang-binding - - - org.opendaylight.yangtools - yang-data-api - - - - diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModule.java b/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModule.java deleted file mode 100644 index 5fc2c015ed..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModule.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2014 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -/** -* Generated file - -* Generated from: yang module name: odl-sal-dom-clustered-store-cfg yang module local name: dom-clustered-store-impl -* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator -* Generated at: Wed Nov 27 17:09:17 CET 2013 -* -* Do not modify this file unless it is present under src/main directory -*/ -package org.opendaylight.controller.config.yang.md.sal.dom.cluster.store; - -import org.opendaylight.controller.datastore.internal.ClusteredDataStoreManager; -import org.osgi.framework.BundleContext; - -/** -* -*/ -public final class ClusteredDataStoreImplModule extends org.opendaylight.controller.config.yang.md.sal.dom.cluster.store.AbstractClusteredDataStoreImplModule -{ - - private BundleContext bundleContext; - - public ClusteredDataStoreImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(identifier, dependencyResolver); - } - - public ClusteredDataStoreImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, ClusteredDataStoreImplModule oldModule, java.lang.AutoCloseable oldInstance) { - super(identifier, dependencyResolver, oldModule, oldInstance); - } - - @Override - public void validate(){ - super.validate(); - // Add custom validation for module attributes here. - } - - @Override - public java.lang.AutoCloseable createInstance() { - ClusteredDataStoreManager manager = new ClusteredDataStoreManager(); - manager.setContext(bundleContext); - manager.start(); - return manager; - } - - public void setBundleContext(BundleContext bundleContext) { - this.bundleContext = bundleContext; - } -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModuleFactory.java b/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModuleFactory.java deleted file mode 100644 index 40c558726d..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/cluster/store/ClusteredDataStoreImplModuleFactory.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2014 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -/** -* Generated file - -* Generated from: yang module name: odl-sal-dom-clustered-store-cfg yang module local name: dom-clustered-store-impl -* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator -* Generated at: Wed Nov 27 17:09:17 CET 2013 -* -* Do not modify this file unless it is present under src/main directory -*/ -package org.opendaylight.controller.config.yang.md.sal.dom.cluster.store; - -import org.opendaylight.controller.config.api.DependencyResolver; -import org.opendaylight.controller.config.api.DynamicMBeanWithInstance; -import org.opendaylight.controller.config.spi.Module; -import org.osgi.framework.BundleContext; - -/** -* -*/ -public class ClusteredDataStoreImplModuleFactory extends org.opendaylight.controller.config.yang.md.sal.dom.cluster.store.AbstractClusteredDataStoreImplModuleFactory -{ - - @Override - public Module createModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) { - ClusteredDataStoreImplModule module = - (ClusteredDataStoreImplModule) super.createModule(instanceName, dependencyResolver, bundleContext); - module.setBundleContext(bundleContext); - return module; - } - - @Override - public Module createModule(String instanceName, DependencyResolver dependencyResolver, - DynamicMBeanWithInstance old, BundleContext bundleContext) throws Exception { - ClusteredDataStoreImplModule module = - (ClusteredDataStoreImplModule) super.createModule(instanceName, dependencyResolver, old, bundleContext); - module.setBundleContext(bundleContext); - return module; - } - -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/ClusteredDataStore.java b/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/ClusteredDataStore.java deleted file mode 100644 index 1aecb967f1..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/ClusteredDataStore.java +++ /dev/null @@ -1,22 +0,0 @@ - -/* - * Copyright (c) 2013 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - - -package org.opendaylight.controller.datastore; - -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; -import org.opendaylight.controller.md.sal.common.api.data.DataReader; -import org.opendaylight.controller.sal.core.api.data.DataStore; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; - -public interface ClusteredDataStore extends DataStore { - - -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImpl.java b/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImpl.java deleted file mode 100644 index 0809ba347b..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImpl.java +++ /dev/null @@ -1,160 +0,0 @@ - -/* - * Copyright (c) 2013 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.controller.datastore.internal; - -import com.google.common.base.Preconditions; - -import org.opendaylight.controller.clustering.services.CacheConfigException; -import org.opendaylight.controller.clustering.services.CacheExistException; -import org.opendaylight.controller.clustering.services.IClusterGlobalServices; -import org.opendaylight.controller.clustering.services.IClusterServices; -import org.opendaylight.controller.datastore.ClusteredDataStore; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.controller.sal.common.util.Rpcs; -import org.opendaylight.yangtools.yang.common.RpcError; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Collections; -import java.util.EnumSet; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; - -/** - * The ClusteredDataStoreImpl stores global data to be shared across a controller cluster. It uses Clustering Services. - */ -public class ClusteredDataStoreImpl implements ClusteredDataStore { - - - public static final String OPERATIONAL_DATA_CACHE = "clustered_data_store.operational_data_cache"; - public static final String CONFIGURATION_DATA_CACHE = "clustered_data_store.configuration_data_cache"; - - private final ConcurrentMap operationalDataCache; - private final ConcurrentMap configurationDataCache; - - private Logger logger = LoggerFactory.getLogger(ClusteredDataStoreImpl.class); - - public ClusteredDataStoreImpl(IClusterGlobalServices clusterGlobalServices) throws CacheConfigException { - logger.trace("Constructing clustered data store"); - Preconditions.checkNotNull(clusterGlobalServices, "clusterGlobalServices cannot be null"); - - operationalDataCache = getOrCreateCache(clusterGlobalServices, OPERATIONAL_DATA_CACHE); - - Preconditions.checkNotNull(operationalDataCache, "operationalDataCache cannot be null"); - - configurationDataCache = getOrCreateCache(clusterGlobalServices, CONFIGURATION_DATA_CACHE); - - Preconditions.checkNotNull(configurationDataCache, "configurationDataCache cannot be null"); - } - - @Override - public DataCommitTransaction requestCommit(DataModification modification) { - return new ClusteredDataStoreTransaction(modification); - } - - @Override - public CompositeNode readOperationalData(InstanceIdentifier path) { - Preconditions.checkNotNull(path, "path cannot be null"); - return operationalDataCache.get(path); - } - - @Override - public boolean containsConfigurationPath(InstanceIdentifier path) { - return configurationDataCache.containsKey(path); - } - - @Override - public boolean containsOperationalPath(InstanceIdentifier path) { - return operationalDataCache.containsKey(path); - } - - @Override - public Iterable getStoredConfigurationPaths() { - return configurationDataCache.keySet(); - } - - @Override - public Iterable getStoredOperationalPaths() { - return operationalDataCache.keySet(); - } - - - - @Override - public CompositeNode readConfigurationData(InstanceIdentifier path) { - Preconditions.checkNotNull(path, "path cannot be null"); - return configurationDataCache.get(path); - } - - private RpcResult finish(final ClusteredDataStoreTransaction transaction) { - final DataModification modification = transaction.getModification(); - - this.configurationDataCache.putAll(modification.getUpdatedConfigurationData()); - this.operationalDataCache.putAll(modification.getUpdatedOperationalData()); - - for (final InstanceIdentifier removal : modification.getRemovedConfigurationData()) { - this.configurationDataCache.remove(removal); - } - - for (final InstanceIdentifier removal : modification.getRemovedOperationalData()) { - this.operationalDataCache.remove(removal ); - } - - Set _emptySet = Collections.emptySet(); - return Rpcs.getRpcResult(true, null, _emptySet); - } - - private RpcResult rollback(final ClusteredDataStoreTransaction transaction) { - Set _emptySet = Collections.emptySet(); - return Rpcs.getRpcResult(true, null, _emptySet); - } - - - private ConcurrentMap getOrCreateCache(IClusterGlobalServices clusterGlobalServices, String name) throws CacheConfigException { - ConcurrentMap cache = clusterGlobalServices.getCache(name); - - if(cache == null) { - try { - cache = clusterGlobalServices.createCache(name, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL)); - } catch (CacheExistException e) { - cache = clusterGlobalServices.getCache(name); - } - } - return cache; - } - - private class ClusteredDataStoreTransaction implements DataCommitTransaction { - private final DataModification modification; - - public ClusteredDataStoreTransaction(DataModification modification){ - Preconditions.checkNotNull(modification, "modification cannot be null"); - - this.modification = modification; - } - - @Override - public DataModification getModification() { - return this.modification; - } - - @Override - public RpcResult finish() throws IllegalStateException { - return ClusteredDataStoreImpl.this.finish(this); - } - - @Override - public RpcResult rollback() throws IllegalStateException { - return ClusteredDataStoreImpl.this.rollback(this); - } - } -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManager.java b/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManager.java deleted file mode 100644 index b0a099ff90..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManager.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2013 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.controller.datastore.internal; - -import java.util.Hashtable; - -import com.google.common.base.Preconditions; - -import org.opendaylight.controller.clustering.services.CacheConfigException; -import org.opendaylight.controller.clustering.services.IClusterGlobalServices; -import org.opendaylight.controller.datastore.ClusteredDataStore; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.util.tracker.ServiceTracker; -import org.osgi.util.tracker.ServiceTrackerCustomizer; - -public class ClusteredDataStoreManager implements // - ClusteredDataStore, // - ServiceTrackerCustomizer, // - AutoCloseable { - - private ClusteredDataStore clusteredDataStore = null; - private IClusterGlobalServices clusterGlobalServices = null; - private BundleContext context; - - private ServiceReference firstClusterGlobalReference; - private ServiceTracker clusterTracker; - - @Override - public DataCommitTransaction requestCommit( - DataModification modification) { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.requestCommit(modification); - } - - @Override - public CompositeNode readOperationalData(InstanceIdentifier path) { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.readOperationalData(path); - } - - @Override - public CompositeNode readConfigurationData(InstanceIdentifier path) { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.readConfigurationData(path); - } - - public Iterable getStoredConfigurationPaths() { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.getStoredConfigurationPaths(); - } - - public Iterable getStoredOperationalPaths() { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.getStoredOperationalPaths(); - } - - public boolean containsConfigurationPath(InstanceIdentifier path) { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.containsConfigurationPath(path); - } - - public boolean containsOperationalPath(InstanceIdentifier path) { - Preconditions.checkState(clusteredDataStore != null, "clusteredDataStore cannot be null"); - return clusteredDataStore.containsOperationalPath(path); - } - - public void setClusterGlobalServices(IClusterGlobalServices clusterGlobalServices) { - this.clusterGlobalServices = clusterGlobalServices; - try { - // Adding creation of the clustered data store in its own method - // to make the method unit testable - clusteredDataStore = createClusteredDataStore(); - } catch (CacheConfigException e) { - throw new IllegalStateException("could not construct clusteredDataStore"); - } - } - - @Override - public IClusterGlobalServices addingService(ServiceReference reference) { - if (clusterGlobalServices == null) { - setClusterGlobalServices(context.getService(reference)); - return clusterGlobalServices; - } - return null; - } - - @Override - public void modifiedService(ServiceReference reference, IClusterGlobalServices service) { - - } - - @Override - public void removedService(ServiceReference reference, IClusterGlobalServices service) { - if (clusterGlobalServices == service) { - clusterGlobalServices = null; - clusteredDataStore = null; - } - } - - public BundleContext getContext() { - return context; - } - - public void setContext(BundleContext context) { - this.context = context; - } - - - /** - * Function called by the dependency manager when all the required - * dependencies are satisfied - * - */ - public void start() { - if (context != null) { - clusterTracker = new ServiceTracker<>(context, IClusterGlobalServices.class, this); - clusterTracker.open(); - - context.registerService(ClusteredDataStore.class, this, new Hashtable()); - } - } - - protected ClusteredDataStore createClusteredDataStore() throws CacheConfigException { - return new ClusteredDataStoreImpl(clusterGlobalServices); - } - - @Override - public void close() throws Exception { - clusterTracker.close(); - } -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/main/yang/odl-sal-dom-clustered-store-cfg.yang b/opendaylight/md-sal/clustered-data-store/implementation/src/main/yang/odl-sal-dom-clustered-store-cfg.yang deleted file mode 100644 index 95a26d7f41..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/main/yang/odl-sal-dom-clustered-store-cfg.yang +++ /dev/null @@ -1,29 +0,0 @@ -module odl-sal-dom-clustered-store-cfg { - yang-version 1; - namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:cluster:store"; - prefix "binding-impl"; - - import config { prefix config; revision-date 2013-04-05; } - import opendaylight-md-sal-dom {prefix sal;} - - description - "Service definition for MD-SAL Clustered Store."; - - revision "2013-10-28" { - description - "Initial revision"; - } - - identity dom-clustered-store-impl { - base config:module-type; - config:provided-service sal:dom-data-store; - config:java-name-prefix ClusteredDataStoreImpl; - } - - augment "/config:modules/config:module/config:state" { - case dom-clustered-store-impl { - when "/config:modules/config:module/config:type = 'dom-clustered-store-impl'"; - } - } - -} \ No newline at end of file diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImplTest.java b/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImplTest.java deleted file mode 100644 index 4c97b19bac..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreImplTest.java +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (c) 2014 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.controller.datastore.internal; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.opendaylight.controller.clustering.services.CacheConfigException; -import org.opendaylight.controller.clustering.services.CacheExistException; -import org.opendaylight.controller.clustering.services.IClusterGlobalServices; -import org.opendaylight.controller.clustering.services.IClusterServices; -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; - -import java.util.EnumSet; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ClusteredDataStoreImplTest { - @Before - public void setUp(){ - - } - - @Test - public void constructor_WhenPassedANullClusteringServices_ShouldThrowANullPointerException() throws CacheExistException, CacheConfigException { - try { - new ClusteredDataStoreImpl(null); - } catch(NullPointerException npe){ - assertEquals("clusterGlobalServices cannot be null", npe.getMessage()); - } - } - - @Test - public void constructor_WhenClusteringServicesReturnsANullOperationalDataCache_ShouldThrowANullPointerException() throws CacheExistException, CacheConfigException { - try { - new ClusteredDataStoreImpl(mock(IClusterGlobalServices.class)); - } catch(NullPointerException npe){ - assertEquals("operationalDataCache cannot be null", npe.getMessage()); - } - } - - @Test - public void constructor_WhenClusteringServicesReturnsANullOConfigurationDataCache_ShouldThrowANullPointerException() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - // Confused about the following line? - // See this http://stackoverflow.com/questions/10952629/a-strange-generics-edge-case-with-mockito-when-and-generic-type-inference - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(new ConcurrentHashMap()); - - - try { - new ClusteredDataStoreImpl(mockClusterGlobalServices); - } catch(NullPointerException npe){ - assertEquals("configurationDataCache cannot be null", npe.getMessage()); - } - } - - @Test - public void constructor_WhenOperationalDataCacheIsAlreadyPresent_ShouldNotAttemptToCreateCache() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - Mockito.>when(mockClusterGlobalServices.getCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE)).thenReturn(new ConcurrentHashMap()); - Mockito.>when(mockClusterGlobalServices.getCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE)).thenReturn(new ConcurrentHashMap()); - - new ClusteredDataStoreImpl(mockClusterGlobalServices); - - verify(mockClusterGlobalServices, never()).createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL)); - } - - @Test - public void constructor_WhenConfigurationDataCacheIsAlreadyPresent_ShouldNotAttemptToCreateCache() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - Mockito.>when(mockClusterGlobalServices.getCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE)).thenReturn(new ConcurrentHashMap()); - Mockito.>when(mockClusterGlobalServices.getCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE)).thenReturn(new ConcurrentHashMap()); - - new ClusteredDataStoreImpl(mockClusterGlobalServices); - - verify(mockClusterGlobalServices, never()).createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL)); - } - - - @Test - public void constructor_WhenPassedAValidClusteringServices_ShouldNotThrowAnyExceptions() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - new ClusteredDataStoreImpl(mockClusterGlobalServices); - } - - - @Test - public void readOperationalData_WhenPassedANullPath_ShouldThrowANullPointerException() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - try { - store.readOperationalData(null); - } catch(NullPointerException npe){ - assertEquals("path cannot be null", npe.getMessage()); - } - } - - @Test - public void readOperationalData_WhenPassedAKeyThatDoesNotExistInTheCache_ShouldReturnNull() throws CacheExistException, CacheConfigException { - InstanceIdentifier path = InstanceIdentifier.builder().toInstance(); - - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - assertNull(store.readOperationalData(path)); - } - - @Test - public void readOperationalData_WhenPassedAKeyThatDoesExistInTheCache_ShouldReturnTheValueObject() throws CacheExistException, CacheConfigException { - InstanceIdentifier path = InstanceIdentifier.builder().toInstance(); - - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ConcurrentMap mockOperationalDataCache = mock(ConcurrentMap.class); - - CompositeNode valueObject = mock(CompositeNode.class); - - when(mockOperationalDataCache.get(path)).thenReturn(valueObject); - - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockOperationalDataCache); - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(new ConcurrentHashMap()); - - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - assertEquals(valueObject, store.readOperationalData(path)); - } - - - - @Test - public void readConfigurationData_WhenPassedANullPath_ShouldThrowANullPointerException() throws CacheExistException, CacheConfigException { - - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - try { - store.readConfigurationData(null); - } catch(NullPointerException npe){ - assertEquals("path cannot be null", npe.getMessage()); - } - } - - - @Test - public void readConfigurationData_WhenPassedAKeyThatDoesNotExistInTheCache_ShouldReturnNull() throws CacheExistException, CacheConfigException { - InstanceIdentifier path = InstanceIdentifier.builder().toInstance(); - - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - assertNull(store.readConfigurationData(path)); - } - - @Test - public void readConfigurationData_WhenPassedAKeyThatDoesExistInTheCache_ShouldReturnTheValueObject() throws CacheExistException, CacheConfigException { - InstanceIdentifier path = InstanceIdentifier.builder().toInstance(); - - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ConcurrentMap mockConfigurationDataCache = mock(ConcurrentMap.class); - - CompositeNode valueObject = mock(CompositeNode.class); - - when(mockConfigurationDataCache.get(path)).thenReturn(valueObject); - - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mock(ConcurrentMap.class)); - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockConfigurationDataCache); - - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - assertEquals(valueObject, store.readConfigurationData(path)); - } - - - @Test - public void requestCommit_ShouldReturnADataTransaction() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = createClusterGlobalServices(); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - assertNotNull(store.requestCommit(mock(DataModification.class))); - - - } - - @Test - public void finishingADataTransaction_ShouldUpdateTheUnderlyingCache() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - ConcurrentMap mockConfigurationDataCache = mock(ConcurrentMap.class); - ConcurrentMap mockOperationalDataCache = mock(ConcurrentMap.class); - - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockOperationalDataCache); - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockConfigurationDataCache); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - DataModification mockModification = mock(DataModification.class); - - Map configurationData = mock(Map.class); - Map operationalData = mock(Map.class); - - when(mockModification.getUpdatedConfigurationData()).thenReturn(configurationData); - when(mockModification.getUpdatedOperationalData()).thenReturn(operationalData); - - DataCommitHandler.DataCommitTransaction transaction = store.requestCommit(mockModification); - - transaction.finish(); - - verify(mockConfigurationDataCache).putAll(mockModification.getUpdatedConfigurationData()); - verify(mockOperationalDataCache).putAll(mockModification.getUpdatedOperationalData()); - } - - - @Test - public void rollingBackADataTransaction_ShouldDoNothing() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - ConcurrentMap mockConfigurationDataCache = mock(ConcurrentMap.class); - ConcurrentMap mockOperationalDataCache = mock(ConcurrentMap.class); - - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockOperationalDataCache); - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mockConfigurationDataCache); - - ClusteredDataStoreImpl store = new ClusteredDataStoreImpl(mockClusterGlobalServices); - - DataModification mockModification = mock(DataModification.class); - - Map configurationData = mock(Map.class); - Map operationalData = mock(Map.class); - - when(mockModification.getUpdatedConfigurationData()).thenReturn(configurationData); - when(mockModification.getUpdatedOperationalData()).thenReturn(operationalData); - - DataCommitHandler.DataCommitTransaction transaction = store.requestCommit(mockModification); - - transaction.rollback(); - - verify(mockConfigurationDataCache, never()).putAll(mockModification.getUpdatedConfigurationData()); - verify(mockOperationalDataCache, never()).putAll(mockModification.getUpdatedOperationalData()); - - } - - - private IClusterGlobalServices createClusterGlobalServices() throws CacheExistException, CacheConfigException { - IClusterGlobalServices mockClusterGlobalServices = mock(IClusterGlobalServices.class); - - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mock(ConcurrentMap.class)); - Mockito.>when(mockClusterGlobalServices.createCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE, EnumSet.of(IClusterServices.cacheMode.TRANSACTIONAL))).thenReturn(mock(ConcurrentMap.class)); - - return mockClusterGlobalServices; - } -} diff --git a/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManagerTest.java b/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManagerTest.java deleted file mode 100644 index 10f9622c7a..0000000000 --- a/opendaylight/md-sal/clustered-data-store/implementation/src/test/java/org/opendaylight/controller/datastore/internal/ClusteredDataStoreManagerTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2013 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.controller.datastore.internal; - -import java.util.concurrent.ConcurrentHashMap; - -import org.apache.felix.dm.Component; -import org.junit.BeforeClass; -import org.junit.Test; -import org.opendaylight.controller.clustering.services.CacheConfigException; -import org.opendaylight.controller.clustering.services.CacheExistException; -import org.opendaylight.controller.clustering.services.IClusterGlobalServices; -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; - -import static junit.framework.Assert.assertNotNull; -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; - -public class ClusteredDataStoreManagerTest { - - private static ClusteredDataStoreManager clusteredDSMgr = null; - private IClusterGlobalServices icClusterGlbServices = mock(IClusterGlobalServices.class); - - @BeforeClass - public static void construct() { - clusteredDSMgr = new ClusteredDataStoreManager(); - assertNotNull(clusteredDSMgr); - } - - @Test - public void construct_OnSetClusterGlobalServices_AssertNoException() { - doReturn(new ConcurrentHashMap()).when(icClusterGlbServices).getCache(ClusteredDataStoreImpl.CONFIGURATION_DATA_CACHE); - doReturn(new ConcurrentHashMap()).when(icClusterGlbServices).getCache(ClusteredDataStoreImpl.OPERATIONAL_DATA_CACHE); - clusteredDSMgr.setClusterGlobalServices(icClusterGlbServices); - } - - @Test - public void construct_init_AssertNoException() throws CacheExistException, CacheConfigException { - ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class); - - ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager()); - doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(); - clusteredDSManager.start(); - } - - - @Test - public void construct_readOperationalData_AssertNoException() throws CacheExistException, CacheConfigException { - ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class); - - ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager()); - doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(); - Component c = mock(Component.class); - - clusteredDSManager.start(); - clusteredDSManager.setClusterGlobalServices(icClusterGlbServices); - CompositeNode o = mock(CompositeNode.class); - - when(clusteredDSImpl.readOperationalData(any(InstanceIdentifier.class))).thenReturn(o); - assertEquals(o, clusteredDSManager.readOperationalData(any(InstanceIdentifier.class))); - } - - @Test - public void construct_readConfigurationData_AssertNoException() throws CacheExistException, CacheConfigException { - ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class); - - ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager()); - doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(); - Component c = mock(Component.class); - - clusteredDSManager.start(); - clusteredDSManager.setClusterGlobalServices(icClusterGlbServices); - - CompositeNode o = mock(CompositeNode.class); - - when(clusteredDSImpl.readConfigurationData(any(InstanceIdentifier.class))).thenReturn(o); - assertEquals(o, clusteredDSManager.readConfigurationData(any(InstanceIdentifier.class))); - } - - @Test - public void construct_requestCommit_AssertNoException() throws CacheExistException, CacheConfigException { - ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class); - - ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager()); - doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(); - IClusterGlobalServices globalServices = mock(IClusterGlobalServices.class); - clusteredDSManager.setClusterGlobalServices(globalServices); - clusteredDSManager.start(); - DataCommitTransaction dataCommitTransaction = mock(DataCommitTransaction.class); - - when(clusteredDSImpl.requestCommit(any(DataModification.class))).thenReturn(dataCommitTransaction); - assertEquals(dataCommitTransaction, clusteredDSManager.requestCommit(any(DataModification.class))); - } -} diff --git a/opendaylight/md-sal/clustered-data-store/integrationtest/pom.xml b/opendaylight/md-sal/clustered-data-store/integrationtest/pom.xml deleted file mode 100644 index 2d68b47869..0000000000 --- a/opendaylight/md-sal/clustered-data-store/integrationtest/pom.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - 4.0.0 - - org.opendaylight.controller - commons.integrationtest - 0.5.1-SNAPSHOT - ../../../commons/integrationtest - - - scm:git:ssh://git.opendaylight.org:29418/controller.git - scm:git:ssh://git.opendaylight.org:29418/controller.git - https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main - - - clustered-datastore.integrationtest - 0.4.0-SNAPSHOT - - - - - xml-apis - xml-apis - 1.4.01 - - - - - - - com.google.guava - guava - - - org.opendaylight.controller - sal-binding-it - 1.0-SNAPSHOT - - - org.opendaylight.controller - sal-common-api - 1.0-SNAPSHOT - - - org.opendaylight.controller - sal-common-util - 1.0-SNAPSHOT - - - org.opendaylight.controller - sal-common-impl - 1.0-SNAPSHOT - - - org.opendaylight.controller - sal-binding-broker-impl - 1.0-SNAPSHOT - - - xml-apis - xml-apis - - - reflections - org.reflections - - - - - org.opendaylight.controller - sal - 0.7.0-SNAPSHOT - - - org.opendaylight.controller - clustering.services - 0.5.0-SNAPSHOT - - - org.opendaylight.yangtools - yang-binding - - - org.opendaylight.yangtools.thirdparty - antlr4-runtime-osgi-nohead - 4.0 - - - org.opendaylight.controller - protocol_plugins.stub - 0.4.1-SNAPSHOT - - - org.opendaylight.controller - sal.implementation - 0.4.1-SNAPSHOT - - - org.opendaylight.controller - containermanager - 0.5.1-SNAPSHOT - - - org.opendaylight.controller - containermanager.it.implementation - 0.5.1-SNAPSHOT - - - org.opendaylight.controller - clustering.stub - 0.4.1-SNAPSHOT - - - org.opendaylight.controller - clustered-datastore-implementation - 0.4.1-SNAPSHOT - - - org.opendaylight.yangtools.thirdparty - xtend-lib-osgi - 2.4.3 - test - - - org.opendaylight.controller - sal-binding-broker-impl - 1.0-SNAPSHOT - provided - - - org.ops4j.pax.exam - pax-exam-container-native - ${exam.version} - test - - - org.ops4j.pax.exam - pax-exam-junit4 - ${exam.version} - test - - - org.opendaylight.controller - config-netconf-connector - ${netconf.version} - test - - - xml-apis - xml-apis - - - - - org.opendaylight.controller - logback-config - - - org.opendaylight.controller - config-persister-impl - - - org.opendaylight.controller - config-persister-file-xml-adapter - - - org.opendaylight.controller - netconf-impl - ${netconf.version} - - - org.opendaylight.controller - netconf-client - ${netconf.version} - - - org.opendaylight.controller - sal-common - 1.0-SNAPSHOT - - - org.opendaylight.yangtools - yang-common - - - org.opendaylight.yangtools - concepts - - - org.opendaylight.yangtools - yang-data-api - - - org.mockito - mockito-all - 1.9.5 - test - - - org.opendaylight.controller - config-manager - 0.2.3-SNAPSHOT - - - org.opendaylight.controller.model - model-flow-management - 1.0-SNAPSHOT - provided - - - org.opendaylight.yangtools.thirdparty - antlr4-runtime-osgi-nohead - 4.0 - - - org.opendaylight.yangtools.thirdparty - xtend-lib-osgi - 2.4.3 - test - - - org.opendaylight.controller - sal-binding-broker-impl - 1.0-SNAPSHOT - provided - - - org.ops4j.pax.exam - pax-exam-container-native - ${exam.version} - test - - - org.ops4j.pax.exam - pax-exam-junit4 - ${exam.version} - test - - - org.opendaylight.controller - config-netconf-connector - ${netconf.version} - test - - - - org.opendaylight.yangtools - yang-parser-impl - ${yangtools.version} - - - org.opendaylight.yangtools - yang-model-util - ${yangtools.version} - - - - org.opendaylight.controller - logback-config - - - org.opendaylight.controller - config-persister-impl - - - org.opendaylight.controller - netconf-impl - ${netconf.version} - - - org.opendaylight.controller - netconf-client - ${netconf.version} - - - org.ops4j.pax.exam - pax-exam-link-mvn - ${exam.version} - test - - - equinoxSDK381 - org.eclipse.osgi - 3.8.1.v20120830-144521 - test - - - org.slf4j - log4j-over-slf4j - 1.7.2 - - - ch.qos.logback - logback-core - 1.0.9 - - - ch.qos.logback - logback-classic - 1.0.9 - - - org.opendaylight.controller.model - model-flow-service - 1.0-SNAPSHOT - provided - - - org.opendaylight.controller - config-manager - 0.2.3-SNAPSHOT - - - org.opendaylight.controller.model - model-flow-management - 1.0-SNAPSHOT - provided - - - org.opendaylight.yangtools.thirdparty - antlr4-runtime-osgi-nohead - 4.0 - - - - - ../implementation/target/jacoco.exec - ../implementaiton/target/jacoco-it.exec - - - - - org.jacoco - jacoco-maven-plugin - - ../implementation/target/jacoco-it.exec - org.opendaylight.controller.* - - - - pre-test - - prepare-agent - - - - post-test - - true - - - - - - - diff --git a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/java/org/opendaylight/controller/datastore/ClusteredDataStoreIT.java b/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/java/org/opendaylight/controller/datastore/ClusteredDataStoreIT.java deleted file mode 100644 index a1fa9e31b8..0000000000 --- a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/java/org/opendaylight/controller/datastore/ClusteredDataStoreIT.java +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2013 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.controller.datastore; - -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.ops4j.pax.exam.CoreOptions.junitBundles; -import static org.ops4j.pax.exam.CoreOptions.mavenBundle; -import static org.ops4j.pax.exam.CoreOptions.options; -import static org.ops4j.pax.exam.CoreOptions.systemPackages; -import static org.ops4j.pax.exam.CoreOptions.systemProperty; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import javax.inject.Inject; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.controller.test.sal.binding.it.TestHelper; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.ops4j.pax.exam.Configuration; -import org.ops4j.pax.exam.Option; -import org.ops4j.pax.exam.junit.PaxExam; -import org.ops4j.pax.exam.util.Filter; -import org.ops4j.pax.exam.util.PathUtils; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@RunWith(PaxExam.class) -//@ExamReactorStrategy(PerClass.class) -public class ClusteredDataStoreIT { - private Logger log = LoggerFactory.getLogger(ClusteredDataStoreIT.class); - // get the OSGI bundle context - @Inject - private BundleContext bc; - @Inject - @Filter(timeout=60*1000) - private ClusteredDataStore clusteredDS; - - // Configure the OSGi container - @Configuration - public Option[] config() { - return options( - // - systemProperty("logback.configurationFile").value( - "file:" + PathUtils.getBaseDir() + "/src/test/resources/logback.xml"), - // To start OSGi console for inspection remotely - systemProperty("osgi.console").value("2401"), - // Set the systemPackages (used by clustering) - systemPackages("sun.reflect", "sun.reflect.misc", "sun.misc"), - systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("DEBUG"), - // List framework bundles - mavenBundle("equinoxSDK381", "org.eclipse.equinox.console").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.eclipse.equinox.util").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.eclipse.osgi.services").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.eclipse.equinox.ds").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.apache.felix.gogo.command").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.apache.felix.gogo.runtime").versionAsInProject(), - mavenBundle("equinoxSDK381", "org.apache.felix.gogo.shell").versionAsInProject(), - // List logger bundles - mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(), - mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(), - mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(), - mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(), - // needed by statisticsmanager - mavenBundle("org.opendaylight.controller", "containermanager").versionAsInProject(), - mavenBundle("org.opendaylight.controller", "containermanager.it.implementation").versionAsInProject(), - mavenBundle("org.opendaylight.controller", "clustering.services").versionAsInProject(), - mavenBundle("org.opendaylight.controller", "clustering.stub").versionAsInProject(), - - // List all the bundles on which the test case depends - mavenBundle("org.opendaylight.controller", "sal").versionAsInProject(), - TestHelper.baseModelBundles(), - TestHelper.configMinumumBundles(), - TestHelper.bindingIndependentSalBundles(), - TestHelper.bindingAwareSalBundles(), - TestHelper.mdSalCoreBundles(), - mavenBundle("org.opendaylight.controller", "config-api").versionAsInProject(), - mavenBundle("org.opendaylight.controller", "sal.implementation").versionAsInProject(), - mavenBundle("org.opendaylight.controller", "protocol_plugins.stub").versionAsInProject(), - - mavenBundle("org.osgi", "org.osgi.core").versionAsInProject(), - // adding new maven bundles - mavenBundle("org.mockito", "mockito-all").versionAsInProject(), - - // needed by hosttracker - mavenBundle("org.opendaylight.controller", "clustered-datastore-implementation").versionAsInProject(), - mavenBundle("org.jboss.spec.javax.transaction", "jboss-transaction-api_1.1_spec").versionAsInProject(), - mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject(), - mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager").versionAsInProject(), - junitBundles()); - } - - private String stateToString(int state) { - switch (state) { - case Bundle.ACTIVE: - return "ACTIVE"; - case Bundle.INSTALLED: - return "INSTALLED"; - case Bundle.RESOLVED: - return "RESOLVED"; - case Bundle.UNINSTALLED: - return "UNINSTALLED"; - default: - return "Not CONVERTED"; - } - } - - @Test - public void testBundleContextClusteredDS_NotNull() throws Exception { - ServiceReference serviceReference = bc.getServiceReference(ClusteredDataStore.class); - ClusteredDataStore store = ClusteredDataStore.class.cast(bc.getService(serviceReference)); - assertNotNull(store); - } - - @Test - public void testInjected_ClusteredDS_NotNull() { - assertNotNull(clusteredDS); - } - - @Test - public void requestCommit_readConfigurationData_ShouldVerifyDataAndNoException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, mock(CompositeNode.class)); - when(dataModification.getUpdatedConfigurationData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - Object value = clusteredDS.readConfigurationData(key); - Assert.assertNotNull(value); - } - - @Test(expected = NullPointerException.class) - public void requestCommit_ShouldThrowException() { - DataModification dataModification = null; - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - } - - @Test - public void requestCommit_readOperationalData_ShouldVerifyDataAndNoException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, mock(CompositeNode.class)); - when(dataModification.getUpdatedOperationalData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - Object value = clusteredDS.readOperationalData(key); - Assert.assertNotNull(value); - } - - @Test - public void requestCommit_readConfigurationData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, "value"); - when(dataModification.getUpdatedConfigurationData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - list = new ArrayList(); - list.add("key1"); - InstanceIdentifier key1 = new InstanceIdentifier(list); - - Object value = clusteredDS.readConfigurationData(key1); - assertNull(value); - } - - @Test - public void requestCommit_readOperationalData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, mock(CompositeNode.class)); - when(dataModification.getUpdatedOperationalData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - list = new ArrayList(); - list.add("key1"); - InstanceIdentifier key1 = new InstanceIdentifier(list); - - Object value = clusteredDS.readOperationalData(key1); - assertNull(value); - } - - @Test(expected = NullPointerException.class) - public void requestCommit_readConfigurationData_WithNullPathShouldThrowException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, "value"); - when(dataModification.getUpdatedConfigurationData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - Object value = clusteredDS.readConfigurationData(null); - } - - @Test(expected = NullPointerException.class) - public void requestCommit_readOperationalData_WithNullPathShouldThrowException() { - DataModification dataModification = mock(DataModification.class); - HashMap map = new HashMap(); - List list = new ArrayList(); - list.add("key"); - InstanceIdentifier key = new InstanceIdentifier(list); - map.put(key, "value"); - when(dataModification.getOriginalOperationalData()).thenReturn(map); - DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification); - dataCommitTrans.finish(); - Object value = clusteredDS.readOperationalData(null); - } - -} diff --git a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/controller.xml b/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/controller.xml deleted file mode 100644 index 5f43ddc16d..0000000000 --- a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/controller.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:cluster:store?module=odl-sal-dom-clustered-store-cfg&revision=2013-10-28 - - - - - - - - - prefix:dom-clustered-store-impl - - cluster-data-store - - - - - - - - - - - - diff --git a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/logback.xml b/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/logback.xml deleted file mode 100644 index 5246f01d05..0000000000 --- a/opendaylight/md-sal/clustered-data-store/integrationtest/src/test/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index a13d2bb06f..644e904e23 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -57,8 +57,6 @@ remoterpc-routingtable/implementation sal-remoterpc-connector/implementation - sal-rest-docgen