Example #1
0
		/// <summary>
		/// 获取回调对应的配置文件列表
		/// </summary>
		private static void processFiles(IDictionary<DisconfKey, IList<IDisconfUpdate>> inverseMap, DisconfUpdateService disconfUpdateService, IDisconfUpdate iDisconfUpdate)
		{

			// 反索引
			IList<Type> classes = Arrays.asList(disconfUpdateService.classes());
			foreach (Type curClass in classes)
			{

				// 获取其注解
				DisconfFile disconfFile = curClass.getAnnotation(typeof(DisconfFile));
				if (disconfFile == null)
				{

					LOGGER.error("cannot find DisconfFile annotation for class when set callback: {} ", curClass.ToString());
					continue;
				}

				DisconfKey disconfKey = new DisconfKey(DisConfigTypeEnum.FILE, disconfFile.filename());
				addOne2InverseMap(disconfKey, inverseMap, iDisconfUpdate);
			}

			// 反索引
			IList<string> fileKeyList = Arrays.asList(disconfUpdateService.confFileKeys());
			foreach (string fileKey in fileKeyList)
			{

				DisconfKey disconfKey = new DisconfKey(DisConfigTypeEnum.FILE, fileKey);
				addOne2InverseMap(disconfKey, inverseMap, iDisconfUpdate);
			}

		}
Example #2
0
		/// <summary>
		/// 将一个配置回调item写到map里
		/// </summary>
		private static void addOne2InverseMap(DisconfKey disconfKey, IDictionary<DisconfKey, IList<IDisconfUpdate>> inverseMap, IDisconfUpdate iDisconfUpdate)
		{

			// 忽略的key 应该忽略掉
			if (DisClientConfig.Instance.IgnoreDisconfKeySet.Contains(disconfKey.Key))
			{
				return;
			}

			IList<IDisconfUpdate> serviceList;

			if (inverseMap.ContainsKey(disconfKey))
			{
				inverseMap[disconfKey].Add(iDisconfUpdate);
			}
			else
			{
				serviceList = new List<IDisconfUpdate>();
				serviceList.Add(iDisconfUpdate);
				inverseMap[disconfKey] = serviceList;
			}
		}
Example #3
0
		/// <summary>
		/// 获取回调对应配置项列表
		/// </summary>
		private static void processItems(IDictionary<DisconfKey, IList<IDisconfUpdate>> inverseMap, DisconfUpdateService disconfUpdateService, IDisconfUpdate iDisconfUpdate)
		{

			IList<string> itemKeys = Arrays.asList(disconfUpdateService.itemKeys());

			// 反索引
			foreach (string key in itemKeys)
			{

				DisconfKey disconfKey = new DisconfKey(DisConfigTypeEnum.ITEM, key);
				addOne2InverseMap(disconfKey, inverseMap, iDisconfUpdate);
			}
		}