Skip to content

Commit

Permalink
refactor cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewazores committed Feb 15, 2024
1 parent 927fce2 commit 9670ce2
Showing 1 changed file with 34 additions and 57 deletions.
91 changes: 34 additions & 57 deletions src/main/java/io/cryostat/events/S3TemplateService.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,52 +116,45 @@ void onStart(@Observes StartupEvent evt) {
@Override
public Optional<IConstrainedMap<EventOptionID>> getEvents(
String templateName, TemplateType unused) throws FlightRecorderException {
return getObject(templateName)
.map(this::getContents)
.map(
stream -> {
try {
return new EventConfiguration(parseXml(stream))
.getEventOptions(
new SimpleConstrainedMap<>(
UnitLookup.PLAIN_TEXT.getPersister()));
} catch (IOException | ParseException e) {
logger.error(e);
return null;
}
});
try (var stream = getModel(templateName)) {
return Optional.of(
new EventConfiguration(parseXml(stream))
.getEventOptions(
new SimpleConstrainedMap<>(
UnitLookup.PLAIN_TEXT.getPersister())));
} catch (IOException | ParseException e) {
logger.error(e);
return Optional.empty();
}
}

@Override
public List<Template> getTemplates() throws FlightRecorderException {
return convertObjects(getObjects());
}

@Override
public Optional<Document> getXml(String templateName, TemplateType unused)
throws FlightRecorderException {
return getObject(templateName)
.map(this::getContents)
return getObjects().stream()
.map(
stream -> {
try (stream) {
Document doc =
Jsoup.parse(
stream,
StandardCharsets.UTF_8.name(),
"",
Parser.xmlParser());
return doc;
} catch (IOException e) {
t -> {
try {
return convertObject(t);
} catch (InvalidEventTemplateException e) {
logger.error(e);
return null;
}
});
})
.filter(Objects::nonNull)
.toList();
}

@Blocking
private Optional<S3Object> getObject(String name) {
return getObjects().stream().filter(o -> o.key().equals(name)).findFirst();
@Override
public Optional<Document> getXml(String templateName, TemplateType unused)
throws FlightRecorderException {
try (var stream = getModel(templateName)) {
Document doc =
Jsoup.parse(stream, StandardCharsets.UTF_8.name(), "", Parser.xmlParser());
return Optional.of(doc);
} catch (IOException e) {
logger.error(e);
return Optional.empty();
}
}

@Blocking
Expand All @@ -170,20 +163,7 @@ private List<S3Object> getObjects() {
return storage.listObjectsV2(builder.build()).contents();
}

private List<Template> convertObjects(List<S3Object> objects) {
return objects.stream()
.map(
t -> {
try {
return convertObject(t);
} catch (InvalidEventTemplateException e) {
logger.error(e);
return null;
}
})
.toList();
}

@Blocking
private Template convertObject(S3Object object) throws InvalidEventTemplateException {
var req =
GetObjectTaggingRequest.builder()
Expand Down Expand Up @@ -229,8 +209,8 @@ private Template convertObject(S3Object object) throws InvalidEventTemplateExcep
}

@Blocking
private InputStream getContents(S3Object object) {
var req = GetObjectRequest.builder().bucket(eventTemplatesBucket).key(object.key()).build();
private InputStream getModel(String name) {
var req = GetObjectRequest.builder().bucket(eventTemplatesBucket).key(name).build();
return storage.getObject(req);
}

Expand All @@ -253,11 +233,8 @@ private XMLModel parseXml(InputStream inputStream) throws IOException, ParseExce
@Blocking
public Template addTemplate(String templateText)
throws InvalidXmlException, InvalidEventTemplateException, IOException {
try {
XMLModel model =
parseXml(
new ByteArrayInputStream(
templateText.getBytes(StandardCharsets.UTF_8)));
try (var stream = new ByteArrayInputStream(templateText.getBytes(StandardCharsets.UTF_8))) {
XMLModel model = parseXml(stream);

XMLTagInstance configuration = model.getRoot();
XMLAttributeInstance labelAttr = null;
Expand Down

0 comments on commit 9670ce2

Please sign in to comment.