use of org.codice.ddf.catalog.async.data.api.internal.ProcessUpdateItem in project ddf by codice.
the class ProcessingPostIngestPlugin method createUpdateRequest.
private ProcessRequest<ProcessUpdateItem> createUpdateRequest(UpdateResponse updateResponse) {
List<Update> updates = updateResponse.getUpdatedMetacards();
List<ProcessUpdateItem> processUpdateItems = new ArrayList<>();
for (Update update : updates) {
Metacard oldCard = update.getOldMetacard();
Metacard newCard = update.getNewMetacard();
ProcessUpdateItem processItem = new ProcessUpdateItemImpl(getProcessResource(newCard, getSubject(updateResponse)), newCard, oldCard, false);
processUpdateItems.add(processItem);
}
return new ProcessRequestImpl(processUpdateItems, putPostProcessCompleteFlagAndGet(updateResponse.getProperties()));
}
use of org.codice.ddf.catalog.async.data.api.internal.ProcessUpdateItem in project ddf by codice.
the class InMemoryProcessingFramework method submitUpdate.
@Override
public void submitUpdate(ProcessRequest<ProcessUpdateItem> input) {
if (postProcessPlugins == null || postProcessPlugins.isEmpty()) {
LOGGER.debug("postProcessPlugins is empty. Not starting post process thread");
} else {
threadPool.submit(() -> {
ProcessRequest<ProcessUpdateItem> request = input;
for (PostProcessPlugin plugin : postProcessPlugins) {
try {
request = plugin.processUpdate(request);
} catch (PluginExecutionException e) {
LOGGER.debug("Unable to process update request through plugin: {}", plugin.getClass().getCanonicalName(), e);
}
}
storeProcessRequest(request);
closeInputStream(request);
});
}
}
Aggregations