/* * 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.config.util; import com.google.common.collect.Sets; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; import org.opendaylight.controller.config.api.ConflictingVersionException; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.jmx.CommitStatus; import org.opendaylight.controller.config.api.jmx.ConfigRegistryMXBean; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; public class TestingConfigRegistry implements ConfigRegistryMXBean { static final ObjectName conf1, conf2, conf3, run1, run2, run3; public static String check; public static boolean checkBool; private Map map = new HashMap<>(); public static final String moduleName1 = "moduleA"; public static final String moduleName2 = "moduleB"; public static final String instName1 = "instA"; public static final String instName2 = "instB"; public static final String refName1 = "refA"; public static final String refName2 = "refB"; public static final String serviceQName1 = "qnameA"; public static final String serviceQName2 = "qnameB"; static { conf1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName1 + "," + ObjectNameUtil.SERVICE_QNAME_KEY + "=" + serviceQName1 + "," + ObjectNameUtil.REF_NAME_KEY + "=" + refName1); conf2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instName1 + "," + ObjectNameUtil.SERVICE_QNAME_KEY + "=" + serviceQName2 + "," + ObjectNameUtil.REF_NAME_KEY + "=" + refName1); conf3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instName2); run1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName1); run2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instName1); run3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY + "=" + instName2); check = null; checkBool = false; } @Override public ObjectName beginConfig() { return conf2; } @Override public CommitStatus commitConfig(final ObjectName transactonControllerON) throws ConflictingVersionException, ValidationException { if (transactonControllerON == null) { Exception e = new RuntimeException("message"); throw ValidationException.createForSingleException( new ModuleIdentifier("moduleName", "instanceName"), e); } return null; } @Override public List getOpenConfigs() { return null; } @Override public boolean isHealthy() { return false; } @Override public Set getAvailableModuleNames() { return null; } @Override public Set lookupConfigBeans() { return Sets.newHashSet(conf1, conf2, conf3); } @Override public Set lookupConfigBeans(final String moduleName) { if (moduleName.equals(moduleName1)) { return Sets.newHashSet(conf1, conf2); } else if (moduleName.equals(moduleName2)) { return Sets.newHashSet(conf3); } else { return null; } } @Override public Set lookupConfigBeans(final String moduleName, final String instanceName) { if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) { return Sets.newHashSet(conf2); } else if (moduleName.equals(moduleName2) && instanceName.equals(instName2)) { return Sets.newHashSet(conf3); } else { return null; } } @Override public ObjectName lookupConfigBean(final String moduleName, final String instanceName) throws InstanceNotFoundException { if (moduleName.equals(InstanceNotFoundException.class.getSimpleName())) { throw new InstanceNotFoundException(); } return conf3; } @Override public Set lookupRuntimeBeans() { return Sets. newHashSet(run1, run2, run3); } @Override public Set lookupRuntimeBeans(final String moduleName, final String instanceName) { if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) { return Sets. newHashSet(run2); } else if (moduleName.equals(moduleName2) && instanceName.equals(instName2)) { return Sets. newHashSet(run3); } else { return Sets. newHashSet(); } } @Override public void checkConfigBeanExists(final ObjectName objectName) throws InstanceNotFoundException { Set configBeans = Sets. newHashSet(run1, run2, run3); if(configBeans.size()>0){ checkBool = true; } } @Override public ObjectName lookupConfigBeanByServiceInterfaceName(final String serviceInterfaceQName, final String refName) { if (serviceInterfaceQName.equals(serviceQName1) && refName.equals(refName1)) { return conf1; } else{ return null; } } @Override public Map> getServiceMapping() { return null; } @Override public Map lookupServiceReferencesByServiceInterfaceName(final String serviceInterfaceQName) { if(serviceInterfaceQName.equals(serviceQName1)){ map.put("conf1", conf1); } else if(serviceInterfaceQName.equals(serviceQName2)){ map.put("conf2", conf2); } else{ map.put("conf3", conf3); } return map; } @Override public Set lookupServiceInterfaceNames(final ObjectName objectName) throws InstanceNotFoundException { return Sets. newHashSet(serviceQName1, serviceQName2); } @Override public String getServiceInterfaceName(final String namespace, final String localName) { return null; } @Override public Set getAvailableModuleFactoryQNames() { return Sets. newHashSet(moduleName1, moduleName2); } @Override public ObjectName getServiceReference(final String serviceInterfaceQName, final String refName) throws InstanceNotFoundException { return conf1; } @Override public void checkServiceReferenceExists(final ObjectName objectName) throws InstanceNotFoundException { throw new UnsupportedOperationException(); } }