*/
package org.opendaylight.controller.config.yang.bgp.reconnectstrategy;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.controller.config.yang.netty.eventexecutor.GlobalEventExecutorModuleFactory;
+
import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
import javax.management.ObjectName;
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
-import org.opendaylight.controller.config.yang.netty.eventexecutor.GlobalEventExecutorModuleMXBean;
-
public class GlobalEventExecutorUtil {
- public static ObjectName createInstance(
- final ConfigTransactionJMXClient transaction,
- final String moduleName,
- final String instanceName)
+ public static ObjectName createOrGetInstance(
+ final ConfigTransactionJMXClient transaction)
throws InstanceAlreadyExistsException {
- ObjectName nameCreated = transaction.createModule(
- moduleName, instanceName);
- transaction.newMBeanProxy(nameCreated,
- GlobalEventExecutorModuleMXBean.class);
- return nameCreated;
+ ObjectName on;
+ try {
+ on = transaction.lookupConfigBean(GlobalEventExecutorModuleFactory.NAME, GlobalEventExecutorModuleFactory.SINGLETON_NAME);
+ } catch (InstanceNotFoundException e) {
+ on = transaction.createModule(GlobalEventExecutorModuleFactory.NAME, GlobalEventExecutorModuleFactory.SINGLETON_NAME);
+ }
+ return on;
}
}
*/
package org.opendaylight.controller.config.yang.bgp.reconnectstrategy;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.config.api.ConflictingVersionException;
import org.opendaylight.controller.config.yang.reconnectstrategy.NeverReconnectStrategyModuleFactory;
import org.opendaylight.controller.config.yang.reconnectstrategy.NeverReconnectStrategyModuleMXBean;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
public class NeverReconnectStrategyModuleTest extends AbstractConfigTest {
- private final String instanceName = "never";
+ private final String instanceName = GlobalEventExecutorModuleFactory.SINGLETON_NAME;
private NeverReconnectStrategyModuleFactory factory;
try {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, null, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, null);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
try {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, -1, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, -1);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
public void testCreateBean() throws Exception {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 500);
transaction.validateConfig();
CommitStatus status = transaction.commit();
assertBeanCount(1, factory.getImplementationName());
ConflictingVersionException, ValidationException {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 500);
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
InstanceNotFoundException {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 500);
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
public static ObjectName createInstance(
final ConfigTransactionJMXClient transaction, final String moduleName,
- final String instanceName, final Integer timeout,
- final String eventexecutorModuleName) throws InstanceAlreadyExistsException {
+ final String instanceName, final Integer timeout) throws InstanceAlreadyExistsException {
ObjectName nameCreated = transaction.createModule(
moduleName, instanceName);
NeverReconnectStrategyModuleMXBean mxBean = transaction.newMBeanProxy(
nameCreated, NeverReconnectStrategyModuleMXBean.class);
mxBean.setTimeout(timeout);
- mxBean.setExecutor(GlobalEventExecutorUtil.createInstance(transaction, eventexecutorModuleName, "global-event-executor1"));
+ mxBean.setExecutor(GlobalEventExecutorUtil.createOrGetInstance(transaction));
return nameCreated;
}
*/
package org.opendaylight.controller.config.yang.bgp.reconnectstrategy;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.config.api.ConflictingVersionException;
import org.opendaylight.controller.config.yang.reconnectstrategy.ReconnectImmediatelyStrategyModuleFactory;
import org.opendaylight.controller.config.yang.reconnectstrategy.ReconnectImmediatelyStrategyModuleMXBean;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
public class ReconnectImmediatelyStrategyModuleTest extends AbstractConfigTest {
- private final String instanceName = "immediately";
+ private final String instanceName = GlobalEventExecutorModuleFactory.SINGLETON_NAME;
private ReconnectImmediatelyStrategyModuleFactory factory;
try {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, null, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, null);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
try {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, -1, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, -1);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
public void testCreateBean() throws Exception {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 500);
transaction.validateConfig();
CommitStatus status = transaction.commit();
assertBeanCount(1, factory.getImplementationName());
ConflictingVersionException, ValidationException {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 100, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 100);
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
InstanceNotFoundException {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
- createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, this.executorFactory.getImplementationName());
+ createInstance(transaction, this.factory.getImplementationName(), instanceName, 500);
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
public static ObjectName createInstance(
final ConfigTransactionJMXClient transaction,
final String moduleName,
- final String instanceName, final Integer timeout,
- final String executorModuleName) throws InstanceAlreadyExistsException {
+ final String instanceName, final Integer timeout) throws InstanceAlreadyExistsException {
ObjectName nameCreated = transaction.createModule(
moduleName, instanceName);
ReconnectImmediatelyStrategyModuleMXBean mxBean = transaction
.newMBeanProxy(nameCreated,
ReconnectImmediatelyStrategyModuleMXBean.class);
mxBean.setTimeout(timeout);
- mxBean.setExecutor(GlobalEventExecutorUtil.createInstance(transaction, executorModuleName, "global-event-executor"));
+ mxBean.setExecutor(GlobalEventExecutorUtil.createOrGetInstance(transaction));
return nameCreated;
}
*/
package org.opendaylight.controller.config.yang.bgp.reconnectstrategy;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.math.BigDecimal;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.config.api.ConflictingVersionException;
import org.opendaylight.controller.config.yang.reconnectstrategy.TimedReconnectStrategyModuleFactory;
import org.opendaylight.controller.config.yang.reconnectstrategy.TimedReconnectStrategyModuleMXBean;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+import java.math.BigDecimal;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
public class TimedReconnectStrategyModuleTest extends AbstractConfigTest {
private final String instanceName = "timed";
-
- private final String EXECUTOR_INSTANCE_NAME = "global-event-executor-insatnce";
private TimedReconnectStrategyModuleFactory factory;
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, 100L, null, 500L,
- 10L, 10000L, this.executorFactory.getImplementationName(), EXECUTOR_INSTANCE_NAME);
+ 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, 100L,
- new BigDecimal(0.5), 500L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(0.5), 500L, 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, null, 100L,
- new BigDecimal(1.0), 500L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(1.0), 500L, 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, -1, 100L, new BigDecimal(
- 1.0), 500L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ 1.0), 500L, 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 100, null,
- new BigDecimal(1.0), 100L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(1.0), 100L, 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 100, 300L,
- new BigDecimal(1.0), 100L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(1.0), 100L, 10L, 10000L);
transaction.validateConfig();
fail();
} catch (ValidationException e) {
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, 100L,
- new BigDecimal(1.0), 500L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(1.0), 500L, 10L, 10000L);
transaction.validateConfig();
CommitStatus status = transaction.commit();
assertBeanCount(1, factory.getImplementationName());
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, 100L,
- new BigDecimal(1.0), 500L, 10L, 10000L, this.executorFactory.getImplementationName(),
- EXECUTOR_INSTANCE_NAME);
+ new BigDecimal(1.0), 500L, 10L, 10000L);
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), instanceName, 500, 100L,
new BigDecimal(1.0), new Long(500), new Long(10), new Long(
- 10000), this.executorFactory.getImplementationName(),EXECUTOR_INSTANCE_NAME);
+ 10000));
transaction.commit();
transaction = configRegistryClient.createTransaction();
assertBeanCount(1, factory.getImplementationName());
final String moduleName,
final String instanceName, final Integer connectTime,
final Long minSleep, final BigDecimal sleepFactor,
- final Long maxSleep, final Long maxAttempts, final Long deadline,
- final String executorModuleName, final String executorInstanceName) throws InstanceAlreadyExistsException {
+ final Long maxSleep, final Long maxAttempts, final Long deadline) throws InstanceAlreadyExistsException {
ObjectName nameCreated = transaction.createModule(
moduleName, instanceName);
TimedReconnectStrategyModuleMXBean mxBean = transaction.newMBeanProxy(
mxBean.setMaxSleep(maxSleep);
mxBean.setMinSleep(minSleep);
mxBean.setSleepFactor(sleepFactor);
- mxBean.setExecutor(GlobalEventExecutorUtil.createInstance(transaction, executorModuleName, executorInstanceName));
+ mxBean.setExecutor(GlobalEventExecutorUtil.createOrGetInstance(transaction));
return nameCreated;
}
*/
package org.opendaylight.controller.config.yang.bgp.rib.impl;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.Future;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-
+import com.google.common.collect.Lists;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler;
import org.opendaylight.controller.sal.core.api.data.DataModificationTransaction;
import org.opendaylight.controller.sal.core.api.data.DataProviderService;
-import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.RibId;
import org.opendaylight.yangtools.concepts.Registration;
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.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleListener;
import org.osgi.framework.Filter;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
-import com.google.common.collect.Lists;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.Future;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
public class RIBImplModuleTest extends AbstractConfigTest {
- private static final String INSTANCE_NAME = "bgp-rib-impl";
+ private static final String INSTANCE_NAME = GlobalEventExecutorModuleFactory.SINGLETON_NAME;
private static final String TRANSACTION_NAME = "testTransaction";
private RIBImplModuleFactory factory;
ConfigTransactionJMXClient transaction = configRegistryClient
.createTransaction();
createInstance(transaction, this.factory.getImplementationName(), INSTANCE_NAME, this.dataBrokerFactory.getImplementationName(),
- this.reconnectFactory.getImplementationName(), this.executorFactory.getImplementationName(), this.bgpFactory.getImplementationName(),
+ this.reconnectFactory.getImplementationName(), this.bgpFactory.getImplementationName(),
this.sessionFacotry.getImplementationName(), this.dispactherFactory.getImplementationName(), this.threadgropFactory.getImplementationName(),
this.extensionFactory.getImplementationName(), this.ribExtensionsFactory.getImplementationName(), this.domBrokerFactory.getImplementationName(),
this.dataStroreFactory.getImplementationName());
CommitStatus status = transaction.commit();
Thread.sleep(2000);
assertBeanCount(1, factory.getImplementationName());
- assertStatus(status, 16, 0, 0);
+ assertStatus(status, 15, 0, 0);
}
@After
}
public static ObjectName createInstance(final ConfigTransactionJMXClient transaction, final String moduleName,
- final String instanceName, final String bindingDataModuleName, final String reconnectModueName, final String executorModuleName, final String bgpModuleName,
- final String sessionModuleName, final String dispatcherModuleName, final String threadgroupModuleName, final String extensionModuleName,
- final String ribExtensionsModuleName, final String domBrokerModuleName, final String dataStroreModuleName)
+ final String instanceName, final String bindingDataModuleName, final String reconnectModueName, final String bgpModuleName,
+ final String sessionModuleName, final String dispatcherModuleName, final String threadgroupModuleName, final String extensionModuleName,
+ final String ribExtensionsModuleName, final String domBrokerModuleName, final String dataStroreModuleName)
throws Exception {
ObjectName nameCreated = transaction.createModule(
moduleName, instanceName);
RIBImplModuleMXBean mxBean = transaction.newMXBeanProxy(
nameCreated, RIBImplModuleMXBean.class);
- ObjectName reconnectObjectName = TimedReconnectStrategyModuleTest.createInstance(transaction, reconnectModueName, "session-reconnect-strategy", 100, 1000L, new BigDecimal(1.0), 5000L, 2000L, null, executorModuleName,
- "global-event-executor1");
+ ObjectName reconnectObjectName = TimedReconnectStrategyModuleTest.createInstance(transaction, reconnectModueName, "session-reconnect-strategy", 100, 1000L, new BigDecimal(1.0), 5000L, 2000L, null);
mxBean.setSessionReconnectStrategy(reconnectObjectName);
mxBean.setDataProvider(createDataBrokerInstance(transaction, bindingDataModuleName, "data-broker-impl", domBrokerModuleName, dataStroreModuleName));
- ObjectName reconnectStrategyON = TimedReconnectStrategyModuleTest.createInstance(transaction, reconnectModueName, "tcp-reconnect-strategy", 100, 1000L, new BigDecimal(1.0), 5000L, 2000L, null, executorModuleName,
- "global-event-executor2");
+ ObjectName reconnectStrategyON = TimedReconnectStrategyModuleTest.createInstance(transaction, reconnectModueName, "tcp-reconnect-strategy", 100, 1000L, new BigDecimal(1.0), 5000L, 2000L, null);
mxBean.setTcpReconnectStrategy(reconnectStrategyON);
mxBean.setBgp(Lists.newArrayList(BGPImplModuleTest.createInstance(transaction, bgpModuleName, "bgp-impl1", "localhost", 1, sessionModuleName, dispatcherModuleName, threadgroupModuleName, ribExtensionsModuleName, extensionModuleName)));
mxBean.setExtensions(createRibExtensionsInstance(transaction, ribExtensionsModuleName, "rib-extensions-privider1"));