}
@Override
public ModelResponse<String> invoke(ModelRequest request) {
ModelResponse<String> response = new ModelResponse<String>();
Transaction t = newTransaction("ModelService", getClass().getSimpleName());
try {
URL url = buildUrl(request);
t.addData(url.toString());
InputStream in = Urls.forIO().connectTimeout(1000).readTimeout(5000).openStream(url.toExternalForm());
GZIPInputStream gzip = new GZIPInputStream(in);
String xml = Files.forIO().readFrom(gzip, "utf-8");
int len = xml == null ? 0 : xml.length();
t.addData("length", len);
if (len > 0) {
String report = buildModel(xml);
response.setModel(report);
t.addData("hit", "true");
}
t.setStatus(Message.SUCCESS);
} catch (Exception e) {
t.setStatus(Message.SUCCESS);
} finally {
t.complete();
}
return response;
}