String wsdlURL = artifact.getLocation();
URLConnection connection = new URL(wsdlURL).openConnection();
connection.setUseCaches(false);
InputStream xsdInputStream = connection.getInputStream();
try {
XSDHelper xsdHelper = helperContext.getXSDHelper();
List<Type> sdoTypes = xsdHelper.define(xsdInputStream, wsdlURL);
for (Type t : sdoTypes) {
importSDO.setNamespace(t.getURI());
break;
}
importSDO.getTypes().addAll(sdoTypes);
} finally {
xsdInputStream.close();
}
importSDO.setUnresolved(false);
} else {
error(context.getMonitor(), "FailToResolveLocation", resolver, location);
//ContributionResolveException loaderException = new ContributionResolveException("Fail to resolve location: " + location);
//throw loaderException;
}
} catch (IOException e) {
ContributionResolveException ce = new ContributionResolveException(e);
error(context.getMonitor(), "ContributionResolveException", resolver, ce);
//throw ce;
}
} else {
String ns = importSDO.getNamespace();
if (ns != null) {
XSDefinition xsd = xsdFactory.createXSDefinition();
xsd.setUnresolved(true);
xsd.setNamespace(ns);
xsd = resolver.resolveModel(XSDefinition.class, xsd, context);
if (!xsd.isUnresolved()) {
XSDHelper xsdHelper = helperContext.getXSDHelper();
xsdHelper.define(xsd.getLocation().toString());
}
}
}
}