/**
  * 根据名称和版本得到服务
  *
  * @param name
  * @param version
  * @return
  */
 protected <T extends Pluggable> T getInstance(
     Class<T> clazz, String type, String name, String version, String xpId) {
   try {
     T t = (T) instances.get(type + "-" + name + "-" + version + "-" + xpId);
     if (t == null) {
       TypePluginFactory factory = getFactory(type);
       t = factory.getSingleInstances(clazz, name, version, xpId);
       instances.put(type + "-" + name + "-" + version + "-" + xpId, t);
     }
     return t;
   } catch (Exception e) {
     throw new RuntimeException(e);
   }
 }
 /**
  * 得到当前的插件工程类
  *
  * @return
  * @throws IOException
  */
 protected TypePluginFactory getFactory(String type) throws IOException {
   return TypePluginFactory.getFactory(CoreConfigUtils.create(), type);
 }