Merge "Prevent ConfigPusher from killing its thread"
[controller.git] / opendaylight / clustering / integrationtest / src / test / java / org / opendaylight / controller / clustering / services_implementation / internal / ClusteringServicesIT.java
index 80f5558bcf853d91e03cf35ed95ceac3bb1419b0..166dec4b480d4ccf85731eaaa2ecd627a31369a0 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * 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.clustering.services_implementation.internal;\r
 \r
 import static org.junit.Assert.assertEquals;\r
@@ -19,7 +26,6 @@ import java.util.Dictionary;
 import java.util.HashSet;\r
 import java.util.Hashtable;\r
 import java.util.Set;\r
-import java.util.List;\r
 import java.util.concurrent.ConcurrentMap;\r
 \r
 import javax.inject.Inject;\r
@@ -39,12 +45,11 @@ import org.opendaylight.controller.clustering.services.ICacheUpdateAware;
 import org.opendaylight.controller.sal.utils.ServiceHelper;\r
 import org.opendaylight.controller.sal.core.UpdateType;\r
 import org.ops4j.pax.exam.Option;\r
-import org.ops4j.pax.exam.junit.Configuration;\r
+import org.ops4j.pax.exam.Configuration;\r
 import org.ops4j.pax.exam.junit.PaxExam;\r
 import org.ops4j.pax.exam.util.PathUtils;\r
 import org.osgi.framework.Bundle;\r
 import org.osgi.framework.BundleContext;\r
-import org.osgi.framework.ServiceReference;\r
 import org.osgi.framework.ServiceRegistration;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
@@ -101,9 +106,10 @@ public class ClusteringServicesIT {
             mavenBundle("org.opendaylight.controller", "sal").versionAsInProject(),\r
             mavenBundle("org.opendaylight.controller",\r
                         "sal.implementation").versionAsInProject(),\r
+            mavenBundle("org.opendaylight.controller", "configuration").versionAsInProject(),\r
             mavenBundle("org.opendaylight.controller", "containermanager").versionAsInProject(),\r
             mavenBundle("org.opendaylight.controller",\r
-                        "containermanager.implementation").versionAsInProject(),\r
+                        "containermanager.it.implementation").versionAsInProject(),\r
             mavenBundle("org.jboss.spec.javax.transaction",\r
                         "jboss-transaction-api_1.1_spec").versionAsInProject(),\r
             mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject(),\r
@@ -111,6 +117,7 @@ public class ClusteringServicesIT {
                         "org.apache.felix.dependencymanager").versionAsInProject(),\r
             mavenBundle("org.apache.felix",\r
                         "org.apache.felix.dependencymanager.shell").versionAsInProject(),\r
+            mavenBundle("eclipselink", "javax.resource").versionAsInProject(),\r
             junitBundles());\r
     }\r
 \r
@@ -134,10 +141,10 @@ public class ClusteringServicesIT {
         assertNotNull(bc);\r
         boolean debugit = false;\r
         Bundle b[] = bc.getBundles();\r
-        for (int i = 0; i < b.length; i++) {\r
-            int state = b[i].getState();\r
+        for (Bundle element : b) {\r
+            int state = element.getState();\r
             if (state != Bundle.ACTIVE && state != Bundle.RESOLVED) {\r
-                log.debug("Bundle:" + b[i].getSymbolicName() + " state:"\r
+                log.debug("Bundle:" + element.getSymbolicName() + " state:"\r
                           + stateToString(state));\r
                 debugit = true;\r
             }\r
@@ -362,6 +369,25 @@ public class ClusteringServicesIT {
             assertTrue(up.value.equals("baz"));\r
             assertTrue(up.cacheName.equals(cache1));\r
 \r
+            /**********************************/\r
+            /* RE-UPDATE AN EXISTING KEY CASE */\r
+            /**********************************/\r
+            // Start monitoring the updates\r
+            res = listener.restart(1);\r
+            // modify the cache\r
+            cm11.put(k1, "baz");\r
+            // Wait\r
+            res.await(100L, TimeUnit.SECONDS);\r
+            // Analyze the updates\r
+            ups = listener.getUpdates();\r
+            assertTrue(ups.size() == 1);\r
+            // Validate we get an update with expect fields\r
+            up = ups.get(0);\r
+            assertTrue(up.t.equals(UpdateType.CHANGED));\r
+            assertTrue(up.key.equals(k1));\r
+            assertTrue(up.value.equals("baz"));\r
+            assertTrue(up.cacheName.equals(cache1));\r
+\r
             /********************************/\r
             /* REMOVAL OF EXISTING KEY CASE */\r
             /********************************/\r