in src/main/java/org/apache/sling/thumbnails/internal/RenditionSupportImpl.java [94:114]
public void setRendition(@NotNull Resource file, @NotNull String renditionName, @NotNull InputStream contents)
throws PersistenceException {
if (renditionName.indexOf("/") != 0) {
renditionName = "/" + renditionName;
}
try (ResourceResolver serviceResolver = transformationServiceUser.getTransformationServiceUser()) {
Resource renditionFile = ResourceUtil.getOrCreateResource(serviceResolver,
file.getPath() + "/" + thumbnailSupport.getRenditionPath(file.getResourceType()) + renditionName,
Collections.singletonMap(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_FILE),
JcrConstants.NT_UNSTRUCTURED, false);
Map<String, Object> properties = new HashMap<>();
properties.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
properties.put(JcrConstants.JCR_DATA, contents);
ResourceUtil.getOrCreateResource(serviceResolver, renditionFile.getPath() + "/" + JcrConstants.JCR_CONTENT,
properties, JcrConstants.NT_UNSTRUCTURED, true);
} catch (LoginException le) {
throw new PersistenceException("Could not save due to LoginException", le);
}
}