From 6bac1c4287c6e55a890cd1302c98bce6365b63fe Mon Sep 17 00:00:00 2001 From: alandavis Date: Tue, 12 Jul 2022 10:18:15 +0100 Subject: [PATCH] Save point: [skip ci] * Moved iptc reference info to model rather than having a separate models directory * Use InputStream and OutputStream in metadata extractors rather than Files. --- .../transform/base/TransformManager.java | 7 +- .../AbstractMetadataExtractor.java | 85 +++------ .../HtmlMetadataExtractor.java | 18 +- .../RFC822MetadataExtractor.java | 169 +++++++++--------- .../AbstractTikaMetadataExtractor.java | 167 +++++++++-------- {models => model/iptc}/README.md | 0 {models => model/iptc}/iptc-model-context.xml | 0 {models => model}/iptc/iptc-model.properties | 0 .../iptc/iptc-model_cs.properties | 0 .../iptc/iptc-model_da.properties | 0 .../iptc/iptc-model_de.properties | 0 .../iptc/iptc-model_es.properties | 0 .../iptc/iptc-model_fi.properties | 0 .../iptc/iptc-model_fr.properties | 0 .../iptc/iptc-model_it.properties | 0 .../iptc/iptc-model_ja.properties | 0 .../iptc/iptc-model_nb.properties | 0 .../iptc/iptc-model_nl.properties | 0 .../iptc/iptc-model_pl.properties | 0 .../iptc/iptc-model_pt_BR.properties | 0 .../iptc/iptc-model_ru.properties | 0 .../iptc/iptc-model_sv.properties | 0 .../iptc/iptc-model_zh_CN.properties | 0 {models => model}/iptc/iptcModel.xml | 0 24 files changed, 211 insertions(+), 235 deletions(-) rename {models => model/iptc}/README.md (100%) rename {models => model/iptc}/iptc-model-context.xml (100%) rename {models => model}/iptc/iptc-model.properties (100%) rename {models => model}/iptc/iptc-model_cs.properties (100%) rename {models => model}/iptc/iptc-model_da.properties (100%) rename {models => model}/iptc/iptc-model_de.properties (100%) rename {models => model}/iptc/iptc-model_es.properties (100%) rename {models => model}/iptc/iptc-model_fi.properties (100%) rename {models => model}/iptc/iptc-model_fr.properties (100%) rename {models => model}/iptc/iptc-model_it.properties (100%) rename {models => model}/iptc/iptc-model_ja.properties (100%) rename {models => model}/iptc/iptc-model_nb.properties (100%) rename {models => model}/iptc/iptc-model_nl.properties (100%) rename {models => model}/iptc/iptc-model_pl.properties (100%) rename {models => model}/iptc/iptc-model_pt_BR.properties (100%) rename {models => model}/iptc/iptc-model_ru.properties (100%) rename {models => model}/iptc/iptc-model_sv.properties (100%) rename {models => model}/iptc/iptc-model_zh_CN.properties (100%) rename {models => model}/iptc/iptcModel.xml (100%) diff --git a/engines/base/src/main/java/org/alfresco/transform/base/TransformManager.java b/engines/base/src/main/java/org/alfresco/transform/base/TransformManager.java index 66560209..680e3195 100644 --- a/engines/base/src/main/java/org/alfresco/transform/base/TransformManager.java +++ b/engines/base/src/main/java/org/alfresco/transform/base/TransformManager.java @@ -38,7 +38,8 @@ public interface TransformManager { /** * Allows a {@link CustomTransformer} to use a local source {@code File} rather than the supplied {@code InputStream}. - * The file will be deleted once the request is completed. + * The file will be deleted once the request is completed. To avoid creating extra files, if a File has already + * been created by the base t-engine, it is returned. * If possible this method should be avoided as it is better not to leave content on disk. * @throws IllegalStateException if this method has already been called. */ @@ -46,14 +47,14 @@ public interface TransformManager /** * Allows a {@link CustomTransformer} to use a local target {@code File} rather than the supplied {@code OutputStream}. - * The file will be deleted once the request is completed. + * The file will be deleted once the request is completed. To avoid creating extra files, if a File has already + * been created by the base t-engine, it is returned. * If possible this method should be avoided as it is better not to leave content on disk. * @throws IllegalStateException if this method has already been called. A call to {@link #respondWithFragment(Integer)} * allows the method to be called again. */ File createTargetFile(); - // TODO: Do we want to support the following? /** * Allows a single transform request to have multiple transform responses. For example images from a video at * different time offsets or different pages of a document. Following a call to this method a transform response is diff --git a/engines/base/src/main/java/org/alfresco/transform/base/metadataExtractors/AbstractMetadataExtractor.java b/engines/base/src/main/java/org/alfresco/transform/base/metadataExtractors/AbstractMetadataExtractor.java index 9ed892bc..7d765f92 100644 --- a/engines/base/src/main/java/org/alfresco/transform/base/metadataExtractors/AbstractMetadataExtractor.java +++ b/engines/base/src/main/java/org/alfresco/transform/base/metadataExtractors/AbstractMetadataExtractor.java @@ -33,7 +33,6 @@ import org.alfresco.transform.base.CustomTransformer; import org.alfresco.transform.base.TransformManager; import org.slf4j.Logger; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -64,19 +63,17 @@ import static org.alfresco.transform.base.metadataExtractors.AbstractMetadataExt * * The transform results in a Map of extracted properties encoded as json being returned to the content repository. * * To support the same functionality as metadata extractors configured inside the content repository, - * extra key value pairs may be returned from {@link #extractMetadata}. These are: + * extra key value pairs may be returned from {@link #extractMetadata(String, InputStream, String, OutputStream, Map, TransformManager)}. + * These are: *