use of org.craftercms.studio.api.v1.exception.AssetProcessingException in project studio by craftercms.
the class AbstractAssetProcessor method processAsset.
@Override
public Asset processAsset(ProcessorConfiguration config, Matcher inputPathMatcher, Asset input) throws AssetProcessingException {
try {
String outputRepoPath = getOutputRepoPath(config, inputPathMatcher);
if (StringUtils.isEmpty(outputRepoPath)) {
// No output repo path means write to the same input. So move the original file to a tmp location
// and make the output file be the input file
Path inputFilePath = moveToTmpFile(input.getRepoPath(), input.getFilePath());
Path outputFilePath = input.getFilePath();
Asset output = new Asset(input.getRepoPath(), outputFilePath);
logger.info("Asset processing: Type = {}, Input = {}, Output = {}", config.getType(), input, output);
try {
doProcessAsset(inputFilePath, outputFilePath, config.getParams());
} finally {
Files.delete(inputFilePath);
}
return output;
} else {
Path inputFilePath = input.getFilePath();
Path outputFilePath = createTmpFile(outputRepoPath);
Asset output = new Asset(outputRepoPath, outputFilePath);
logger.info("Asset processing: Type = {}, Input = {}, Output = {}", config.getType(), input, output);
doProcessAsset(inputFilePath, outputFilePath, config.getParams());
return output;
}
} catch (Exception e) {
throw new AssetProcessingException("Error while executing asset processor of type '" + config.getType() + "'", e);
}
}
use of org.craftercms.studio.api.v1.exception.AssetProcessingException in project studio by craftercms.
the class AssetProcessorPipelineImpl method processAsset.
@Override
public List<Asset> processAsset(ProcessorPipelineConfiguration config, Asset input) throws AssetProcessingException {
Matcher inputPatMatcher = matchForProcessing(config, input);
if (inputPatMatcher != null) {
Set<Asset> outputs = new LinkedHashSet<>();
Asset originalInput = input;
Map<ProcessorConfiguration, AssetProcessor> processors = getProcessors(config);
if (config.isKeepOriginal()) {
outputs.add(originalInput);
}
for (Map.Entry<ProcessorConfiguration, AssetProcessor> entry : processors.entrySet()) {
Asset output = entry.getValue().processAsset(entry.getKey(), inputPatMatcher, input);
outputs.add(output);
input = output;
}
if (!config.isKeepOriginal() && outputs.contains(originalInput)) {
outputs.remove(originalInput);
}
return new ArrayList<>(outputs);
} else {
return Collections.emptyList();
}
}
use of org.craftercms.studio.api.v1.exception.AssetProcessingException in project studio by craftercms.
the class AssetProcessorResolverImpl method getProcessor.
@Override
public AssetProcessor getProcessor(ProcessorConfiguration config) throws AssetProcessingException {
String beanName = String.format(beanNameFormat, config.getType());
AssetProcessor processor = applicationContext.getBean(beanName, AssetProcessor.class);
if (processor != null) {
return processor;
} else {
throw new AssetProcessingConfigurationException("Invalid processor type: " + config.getType());
}
}
Aggregations