Persist service references as separate MBeans.
[controller.git] / opendaylight / config / config-util / src / test / java / org / opendaylight / controller / config / util / TestingConfigRegistry.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.controller.config.util;
9
10 import java.util.List;
11 import java.util.Map;
12 import java.util.Set;
13
14 import javax.management.InstanceNotFoundException;
15 import javax.management.ObjectName;
16
17 import org.opendaylight.controller.config.api.ConflictingVersionException;
18 import org.opendaylight.controller.config.api.ModuleIdentifier;
19 import org.opendaylight.controller.config.api.ValidationException;
20 import org.opendaylight.controller.config.api.jmx.CommitStatus;
21 import org.opendaylight.controller.config.api.jmx.ConfigRegistryMXBean;
22 import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
23
24 import com.google.common.collect.Sets;
25
26 public class TestingConfigRegistry implements ConfigRegistryMXBean {
27
28     static final ObjectName conf1, conf2, conf3, run1, run2, run3;
29
30     public static final String moduleName1 = "moduleA";
31     public static final String moduleName2 = "moduleB";
32     public static final String instName1 = "instA";
33     public static final String instName2 = "instB";
34
35     static {
36         conf1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
37                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
38                 + "=" + moduleName1);
39         conf2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
40                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
41                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
42                 + "=" + instName1);
43         conf3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
44                 + ":type=Module," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
45                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
46                 + "=" + instName2);
47         run1 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
48                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
49                 + "=" + moduleName1);
50         run2 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
51                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
52                 + "=" + moduleName1 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
53                 + "=" + instName1);
54         run3 = ObjectNameUtil.createON(ObjectNameUtil.ON_DOMAIN
55                 + ":type=RuntimeBean," + ObjectNameUtil.MODULE_FACTORY_NAME_KEY
56                 + "=" + moduleName2 + "," + ObjectNameUtil.INSTANCE_NAME_KEY
57                 + "=" + instName2);
58     }
59
60     @Override
61     public ObjectName beginConfig() {
62         return null;
63     }
64
65     @Override
66     public CommitStatus commitConfig(ObjectName transactonControllerON)
67             throws ConflictingVersionException, ValidationException {
68         if (transactonControllerON == null) {
69             Exception e = new RuntimeException("message");
70             throw ValidationException.createForSingleException(
71                     new ModuleIdentifier("moduleName", "instanceName"), e);
72         }
73         return null;
74     }
75
76     @Override
77     public List<ObjectName> getOpenConfigs() {
78         return null;
79     }
80
81     @Override
82     public boolean isHealthy() {
83         return false;
84     }
85
86     @Override
87     public Set<String> getAvailableModuleNames() {
88         return null;
89     }
90
91     @Override
92     public Set<ObjectName> lookupConfigBeans() {
93         return Sets.newHashSet(conf1, conf2, conf3);
94     }
95
96     @Override
97     public Set<ObjectName> lookupConfigBeans(String moduleName) {
98         if (moduleName.equals(moduleName1)) {
99             return Sets.newHashSet(conf1, conf2);
100         } else if (moduleName.equals(moduleName2)) {
101             return Sets.newHashSet(conf3);
102         } else {
103             return null;
104         }
105     }
106
107     @Override
108     public Set<ObjectName> lookupConfigBeans(String moduleName,
109             String instanceName) {
110         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
111             return Sets.newHashSet(conf2);
112         } else if (moduleName.equals(moduleName2)
113                 && instanceName.equals(instName2)) {
114             return Sets.newHashSet(conf3);
115         } else {
116             return null;
117         }
118     }
119
120     @Override
121     public ObjectName lookupConfigBean(String moduleName, String instanceName)
122             throws InstanceNotFoundException {
123         if (moduleName.equals(InstanceNotFoundException.class.getSimpleName())) {
124             throw new InstanceNotFoundException();
125         }
126         return conf3;
127     }
128
129     @Override
130     public Set<ObjectName> lookupRuntimeBeans() {
131         return Sets.<ObjectName> newHashSet(run1, run2, run3);
132     }
133
134     @Override
135     public Set<ObjectName> lookupRuntimeBeans(String moduleName,
136             String instanceName) {
137         if (moduleName.equals(moduleName1) && instanceName.equals(instName1)) {
138             return Sets.<ObjectName> newHashSet(run2);
139         } else if (moduleName.equals(moduleName2)
140                 && instanceName.equals(instName2)) {
141             return Sets.<ObjectName> newHashSet(run3);
142         } else {
143             return Sets.<ObjectName> newHashSet();
144         }
145     }
146
147     @Override
148     public void checkConfigBeanExists(ObjectName objectName) throws InstanceNotFoundException {
149         throw new UnsupportedOperationException();
150     }
151
152     @Override
153     public ObjectName lookupConfigBeanByServiceInterfaceName(String serviceInterfaceQName, String refName) {
154         throw new UnsupportedOperationException();
155     }
156
157     @Override
158     public Map<String, Map<String, ObjectName>> getServiceMapping() {
159         throw new UnsupportedOperationException();
160     }
161
162     @Override
163     public Map<String, ObjectName> lookupServiceReferencesByServiceInterfaceName(String serviceInterfaceQName) {
164         throw new UnsupportedOperationException();
165     }
166
167     @Override
168     public Set<String> lookupServiceInterfaceNames(ObjectName objectName) throws InstanceNotFoundException {
169         throw new UnsupportedOperationException();
170     }
171
172     @Override
173     public String getServiceInterfaceName(String namespace, String localName) {
174         throw new UnsupportedOperationException();
175     }
176
177     @Override
178     public Set<String> getAvailableModuleFactoryQNames() {
179         throw new UnsupportedOperationException();
180     }
181
182     @Override
183     public ObjectName getServiceReference(String serviceInterfaceQName, String refName) throws InstanceNotFoundException {
184         throw new UnsupportedOperationException();
185     }
186
187     @Override
188     public void checkServiceReferenceExists(ObjectName objectName) throws InstanceNotFoundException {
189         throw new UnsupportedOperationException();
190     }
191 }