- String refName = refEntry.getKey();
- Preconditions.checkState(false == refNameToInstance.containsKey(refName),
- "Duplicate reference name to service " + refName + " under service " + serviceName);
- ServiceInstance serviceInstance = ServiceInstance.fromString(refEntry.getValue());
- refNameToInstance.put(refName, serviceInstance);
+ Map<String, Map<String, ServiceInstance>> namespaceToServices = tracker.namespaceToServiceNameToRefNameToInstance.get(namespace);
+ if (namespaceToServices == null) {
+ namespaceToServices = Maps.newHashMap();
+ tracker.namespaceToServiceNameToRefNameToInstance.put(namespace, namespaceToServices);
+ }
+
+ Map<String, ServiceInstance> refNameToInstance = namespaceToServices
+ .get(serviceName);
+ if (refNameToInstance == null) {
+ refNameToInstance = Maps.newHashMap();
+ namespaceToServices.put(serviceName, refNameToInstance);
+ }
+
+ String refName = refEntry.getKey();
+ Preconditions.checkState(false == refNameToInstance.containsKey(refName),
+ "Duplicate reference name to service " + refName + " under service " + serviceName);
+ ServiceInstance serviceInstance = ServiceInstance.fromString(refEntry.getValue());
+ refNameToInstance.put(refName, serviceInstance);