type = Class.forName(interfaceStr);
} catch (ClassNotFoundException e) {
logger.error(e.getMessage());
throw new RuntimeException("can't find service Interface:"+interfaceStr);
}
Service service = new Service("" + i, name);
service.setTypeClass(type);
if (StringUtil.isNotEmpty(overloadStr) && "true".equals(overloadStr.trim())) {
service.setOverload(true);
}
List<Element> versionList = serviceNode.selectNodes("provider");
for (Element element : versionList) {
String version = element.attributeValue("version");
String processor = element.attributeValue("class");
String isDefault = element.attributeValue("default");
Class<?> providerClass = null;
try {
providerClass = Class.forName(processor);
} catch (ClassNotFoundException e) {
logger.error(e.getMessage());
throw new RuntimeException("can't find service provider Class:"+processor);
}
ServiceProvider sv = new ServiceProvider(version, providerClass);
if (StringUtil.isNotEmpty(version) && StringUtil.isNotEmpty(isDefault)
&& "true".equals(isDefault.trim())) {
service.setDefaultVersion(version);
}
service.addServiceProvider(version,sv);
}
slist.add(service);
i++;
}
return slist;