X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Ftestingservices%2Fthreadpool%2Ftest%2FSimpleConfigurationTest.java;h=c20d3bfc04090bafbc1b4406c03453c7c353f225;hb=3a71a222b896b9d07e638af62300180799bdac67;hp=6372cb35c2ae87b17b1930f2c9a2291c4a8c96e9;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa;p=controller.git diff --git a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java index 6372cb35c2..c20d3bfc04 100644 --- a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java +++ b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java @@ -10,25 +10,22 @@ package org.opendaylight.controller.config.manager.testingservices.threadpool.te import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static org.junit.matchers.JUnitMatchers.containsString; +import com.google.common.collect.Sets; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ThreadPoolExecutor; - import javax.management.DynamicMBean; import javax.management.InstanceAlreadyExistsException; import javax.management.InstanceNotFoundException; import javax.management.MBeanException; import javax.management.ObjectName; import javax.management.ReflectionException; -import javax.management.RuntimeMBeanException; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -37,15 +34,13 @@ import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.ValidationException.ExceptionMessageWithStackTrace; import org.opendaylight.controller.config.api.jmx.CommitStatus; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; -import org.opendaylight.controller.config.manager.impl.AbstractConfigWithJolokiaTest; +import org.opendaylight.controller.config.manager.impl.AbstractConfigTest; import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPool; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPoolConfigMXBean; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPoolModuleFactory; -import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingThreadPoolIfc; import org.opendaylight.controller.config.util.ConfigTransactionClient; import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; -import org.opendaylight.controller.config.util.jolokia.ConfigTransactionJolokiaClient; /** * Tests basic functionality of configuration registry: @@ -59,8 +54,8 @@ import org.opendaylight.controller.config.util.jolokia.ConfigTransactionJolokiaC * Only one bean is being configured - {@link TestingThreadPoolIfc} which has no * dependencies. */ -public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { - private final int numberOfThreads = 5; +public class SimpleConfigurationTest extends AbstractConfigTest { + private static final int numberOfThreads = 5; private final int numberOfThreads2 = 10; private static final String fixed1 = "fixed1"; private static final List emptyONs = Collections @@ -72,7 +67,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { @Before public void setUp() { - super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver( + super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext, new TestingFixedThreadPoolModuleFactory())); } @@ -100,7 +95,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { return fixed1names; } - private ObjectName createFixedThreadPool( + static ObjectName createFixedThreadPool( ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException, InstanceNotFoundException { transaction.assertVersion(0, 1); @@ -135,16 +130,10 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { testValidation(transaction); } - @Test - public void testValidationUsingJolokiaClient() throws Exception { - ConfigTransactionClient transaction = configRegistryJolokiaClient - .createTransaction(); - testValidation(transaction); - } private void testValidation(ConfigTransactionClient transaction) throws InstanceAlreadyExistsException, ReflectionException, - InstanceNotFoundException, MBeanException { + InstanceNotFoundException, MBeanException, ConflictingVersionException { ObjectName fixed1names = transaction.createModule( TestingFixedThreadPoolModuleFactory.NAME, fixed1); // call validate on config bean @@ -152,8 +141,8 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { platformMBeanServer.invoke(fixed1names, "validate", new Object[0], new String[0]); fail(); - } catch (RuntimeMBeanException e) { - RuntimeException targetException = e.getTargetException(); + } catch (MBeanException e) { + Exception targetException = e.getTargetException(); assertNotNull(targetException); assertEquals(ValidationException.class, targetException.getClass()); } @@ -223,11 +212,9 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { ObjectName fixed1name = firstCommit(); // 2, check that configuration was copied to platform - DynamicMBean dynamicMBean = configRegistryClient.newMBeanProxy( - ObjectNameUtil.withoutTransactionName(fixed1name), - DynamicMBean.class); - dynamicMBean.getMBeanInfo(); - assertEquals(numberOfThreads, dynamicMBean.getAttribute("ThreadCount")); + ObjectName on = ObjectNameUtil.withoutTransactionName(fixed1name); + platformMBeanServer.getMBeanInfo(on); + assertEquals(numberOfThreads, platformMBeanServer.getAttribute(on, "ThreadCount")); // 3, shutdown fixed1 in new transaction assertFalse(TestingFixedThreadPool.allExecutors.get(0).isShutdown()); @@ -256,15 +243,14 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // 4, check assertEquals(2, configRegistryClient.getVersion()); - assertEquals(1, TestingFixedThreadPool.allExecutors.size()); - assertTrue(TestingFixedThreadPool.allExecutors.get(0).isShutdown()); + assertEquals(0, TestingFixedThreadPool.allExecutors.size()); // dynamic config should be removed from platform try { - dynamicMBean.getMBeanInfo(); + platformMBeanServer.getMBeanInfo(on); fail(); } catch (Exception e) { - assertTrue(e.getCause() instanceof InstanceNotFoundException); + assertTrue(e instanceof InstanceNotFoundException); } } @@ -288,7 +274,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // commit transaction.commit(); // check that first threadpool is closed - checkThreadPools(2, numberOfThreads2); + checkThreadPools(1, numberOfThreads2); } private void checkThreadPools(int expectedTotalNumberOfExecutors, @@ -318,7 +304,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // commit CommitStatus commitStatus = transaction.commit(); // check that new threadpool is created and old one is closed - checkThreadPools(2, numberOfThreads); + checkThreadPools(1, numberOfThreads); CommitStatus expected = new CommitStatus(emptyONs, emptyONs, fixed1List); assertEquals(expected, commitStatus); } @@ -336,26 +322,19 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { } @Test - public void testAbort() { + public void testAbort() throws Exception { ConfigTransactionJMXClient transaction = configRegistryClient .createTransaction(); assertEquals(1, configRegistryClient.getOpenConfigs().size()); transaction.abortConfig(); + assertEquals(0, configRegistryClient.getOpenConfigs().size()); try { - transaction.createModule(TestingFixedThreadPoolModuleFactory.NAME, - fixed1); - fail(); - } catch (Exception e) { - assertTrue(e.getCause() instanceof InstanceNotFoundException); - } - try { - transaction.validateConfig(); + platformMBeanServer.getMBeanInfo(transaction.getObjectName()); fail(); - } catch (Exception e) { - assertTrue(e.getCause() instanceof InstanceNotFoundException); + }catch(InstanceNotFoundException e){ + assertEquals("org.opendaylight.controller:TransactionName=ConfigTransaction-0-1,type=ConfigTransaction", e.getMessage()); } - assertEquals(0, configRegistryClient.getOpenConfigs().size()); } @Test @@ -394,68 +373,13 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { } } - @Test - public void testOptimisticLock_ConfigTransactionJolokiaClient() - throws Exception { - ConfigTransactionJolokiaClient transaction1 = configRegistryJolokiaClient - .createTransaction(); - ConfigTransactionJolokiaClient transaction2 = configRegistryJolokiaClient - .createTransaction(); - transaction2.assertVersion(0, 2); - transaction2.commit(); - try { - transaction1.commit(); - fail(); - } catch (ConflictingVersionException e) { - assertEquals( - "Optimistic lock failed. Expected parent version 2, was 0", - e.getMessage()); - } - } @Test - public void testOptimisticLock_ConfigRegistryJolokiaClient() - throws Exception { - ConfigTransactionJolokiaClient transaction1 = configRegistryJolokiaClient - .createTransaction(); - ConfigTransactionJolokiaClient transaction2 = configRegistryJolokiaClient - .createTransaction(); - transaction2.assertVersion(0, 2); - transaction2.commit(); - try { - configRegistryJolokiaClient.commitConfig(transaction1 - .getObjectName()); - fail(); - } catch (ConflictingVersionException e) { - assertEquals( - "Optimistic lock failed. Expected parent version 2, was 0", - e.getMessage()); - } - } + public void testQNames() { + Set availableModuleFactoryQNames = configRegistryClient.getAvailableModuleFactoryQNames(); + String expected = "(namespace?revision=2012-12-12)name"; - @Test - public void testUsingJolokia() throws Exception { - ConfigTransactionJolokiaClient transactionClient = configRegistryJolokiaClient - .createTransaction(); - - ObjectName name = transactionClient.createModule( - TestingFixedThreadPoolModuleFactory.NAME, fixed1); - - try { - transactionClient.validateConfig(); - fail(); - } catch (ValidationException e) { - assertThat( - e.getMessage(), - containsString("Parameter 'threadCount' must be greater than 0")); - } - - transactionClient.setAttribute(name, "ThreadCount", numberOfThreads); - // commit - CommitStatus commitStatus = transactionClient.commit(); - CommitStatus expected = new CommitStatus(Arrays.asList(ObjectNameUtil - .withoutTransactionName(name)), emptyONs, emptyONs); - assertEquals(expected, commitStatus); + assertEquals(Sets.newHashSet(expected), availableModuleFactoryQNames); } }