public Resource installTransform(Resource r, final ExtensionMetadata metadata) {
if (!hasFileBeenModified(r) || ignoreResource(r)) {
return null;
}
final String filename = r.getFilename();
final TransformExtensionsManager mgr = client.newServerConfigManager().newTransformExtensionsManager();
final String transformName = getExtensionNameFromFile(r);
logger.info(String.format("Loading %s transform from resource %s", transformName, filename));
StringHandle h = new StringHandle(readAndReplaceTokens(r));
executeTask(() -> {
if (FilenameUtil.isXslFile(filename)) {
mgr.writeXSLTransform(transformName, h, metadata);
} else if (FilenameUtil.isJavascriptFile(filename)) {
mgr.writeJavascriptTransform(transformName, h, metadata);
} else {
mgr.writeXQueryTransform(transformName, h, metadata);
}
});
updateTimestamp(r);
return r;
}